
    0Phq                       d dl Z d dlmZ d dlZd dlZd dlZd dlmZ	 d dl
mZmZmZ d dlmZmZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZmZmZ d d
lmZ d dlm Z m!Z!m"Z"m#Z# d dl$m%Z% d dl&m'Z' d dl(m)Z)m*Z*m+Z+m,Z, d Z- G d dej.                  Z/ G d dej0                  Z1 G d dej2                  Z3d Z.d Z0d Z2d Z4d Z5d Z6 ej7        ddgddgddgddgddgddgg          Z8g d Z9 ej7        ddgddgd!dgg          Z:g d"Z; ej7        ddgd#d$gd%d&gddgd'd$gd&d&gddgd d(gddgg	          Z<d)gd!z  d*gd!z  z   d+gd!z  z   Z= ej7        d%d$gddgd dgg          Z>g d,Z? ej7        g d-g d-g d.g d.g d/g d/g d0g d0g          Z@ ej7        g d1          ZA ej7        g d2g d3g d4g d5g d6g d7g d8g d9g          ZB ej7        g d1          ZC ejD                    ZE ej7        ddgddgddgddgddgddgg          ZFg d ZGg d:ZHdd<ZId= ZJejK        L                    d>e.e4e0e5g          ejK        L                    d?g d@          dA                         ZMejK        L                    d>e.e4e0e5g          dB             ZNejK        L                    d>e.e4e0e5g          dC             ZOejK        L                    d>e.e4e0e5e2e6g          dD             ZPejK        L                    d>e.e4e0e5e2e6g          dE             ZQejK        L                    d>e.e4e0e5g          dF             ZRejK        L                    d>e.e4e0e5g          dG             ZSejK        L                    d>e.e4e0e5g          dH             ZTejK        L                    d>e.e4e0e5g          dI             ZUejK        L                    d>e.e4e0e5g          dJ             ZVejK        L                    d>e.e4e0e5g          dK             ZWejK        L                    d>e.e4g          dL             ZXejK        L                    d>e.e4e2e6g          dM             ZYejK        L                    dNe.dO ejZ        dP          ife4dO ejZ        dP          ife2dQ ejZ        dP          ife6dQ ejZ        dP          ifg          dR             Z[ejK        L                    d>e.e4e0e5g          dS             Z\ejK        L                    dNe.dOd ife4dOd ife2dQd ife6dQd ifg          dT             Z]ejK        L                    d>e.e4g          dU             Z^ejK        L                    d>e.e4g          dV             Z_ejK        L                    d>e.e4g          dW             Z`ejK        L                    d>e.e4g          dX             ZaejK        L                    d>e.e4g          dY             ZbejK        L                    d>e.e4g          dZ             ZcejK        L                    d>e.e4g          d[             ZdejK        L                    d>e.e4g          d\             ZeejK        L                    d>e.e4g          d]             ZfejK        L                    d>e.e4g          d^             ZgejK        L                    d>e.e4g          d_             ZhejK        L                    d>e.e4g          d`             ZiejK        L                    d>e.e4g          da             ZjejK        L                    d>e.e4g          db             ZkejK        L                    d>e.e4g          dc             ZlejK        L                    d>e.e4g          dd             ZmejK        L                    d>e.e4g          de             ZnejK        L                    d>e.e4g          df             ZoejK        L                    d>e.e4e2e6g          dg             ZpejK        L                    d>e.e4g          dh             ZqejK        L                    d>e.e4g          di             ZrejK        L                    d>e.e4g          dj             ZsejK        L                    d>e.e4g          dk             ZtejK        L                    d>e.e4g          dl             ZuejK        L                    d>e.e4g          ejK        L                    d?g d@          dm                         ZvejK        L                    d>e.e4g          dn             ZwejK        L                    d>e.e4g          do             ZxejK        L                    d>e.e4g          dp             ZyejK        L                    d>e0e5g          dq             ZzejK        L                    d>e0e5g          dr             Z{ejK        L                    d>e0e5g          ds             Z|ejK        L                    d>e0e5g          dt             Z}ejK        L                    d>e0e5g          du             Z~ejK        L                    d>e0e5g          dv             ZejK        L                    d>e0e5g          dw             ZejK        L                    d>e0e5g          dx             ZejK        L                    d>e0e5g          dy             ZejK        L                    d>e0e5g          ejK        L                    d?g d@          dz                         ZejK        L                    d>e0e5g          d{             Zdd|ZejK        L                    d>e2e6g          d}             ZejK        L                    d>e2e6g          ejK        L                    d?g d@          d~                         ZejK        L                    d>e2e6g          d             ZejK        L                    d>e2e6g          d             ZejK        L                    d>e2e6g          ejK        L                    d?g d@          d                         ZejK        L                    d>e2e6g          d             ZejK        L                    d>e2e6g          d             ZejK        L                    d>e2e6g          d             ZejK        L                    d>e2e6g          d             Zd Zd Zd Zd Zd ZejK        L                    dg d          d             Zd Zd Zd Zd Zd Zd Zd Zd Zd ZejK        L                    dg d          d             ZejK        L                    dej.        ej0        g          d             Zd Zd ZejK        L                    de.e0g          d             ZejK        L                    de.e4e0e5e2e6g          ejK        L                    dej        ej        f          d                         ZejK        L                    de.e4e0e5e2e6g          d             ZejK        L                    de.e0e2g          d             Zd ZdS )    N)Mock)datasetslinear_modelmetrics)cloneis_classifier)ConvergenceWarning)Nystroem)	_sgd_fast)_stochastic_gradient)RandomizedSearchCVShuffleSplitStratifiedShuffleSplit)make_pipeline)LabelEncoderMinMaxScalerStandardScalerscale)OneClassSVM)get_tags)assert_allcloseassert_almost_equalassert_array_almost_equalassert_array_equalc                 @    d| vrd| d<   d| vrd | d<   d| vrd| d<   d S d S )Nrandom_state*   tolmax_iter    kwargss    c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/linear_model/tests/test_sgd.py_update_kwargsr%       sN    V##!#~Fuz      c                   <     e Zd Z fdZ fdZ fdZ fdZ xZS )_SparseSGDClassifierc                 h    t          j        |          } t                      j        ||g|R i |S N)sp
csr_matrixsuperfitselfXyargskw	__class__s        r$   r.   z_SparseSGDClassifier.fit+   s:    M!uww{1a-$---"---r&   c                 h    t          j        |          } t                      j        ||g|R i |S r*   )r+   r,   r-   partial_fitr/   s        r$   r7   z _SparseSGDClassifier.partial_fit/   s;    M!"uww"1a5$555"555r&   c                 n    t          j        |          }t                                          |          S r*   )r+   r,   r-   decision_functionr0   r1   r5   s     r$   r9   z&_SparseSGDClassifier.decision_function3   s*    M!ww((+++r&   c                 n    t          j        |          }t                                          |          S r*   )r+   r,   r-   predict_probar:   s     r$   r<   z"_SparseSGDClassifier.predict_proba7   s*    M!ww$$Q'''r&   )__name__
__module____qualname__r.   r7   r9   r<   __classcell__)r5   s   @r$   r(   r(   *   s        . . . . .6 6 6 6 6, , , , ,( ( ( ( ( ( ( ( (r&   r(   c                        e Zd Zd Zd Zd ZdS )_SparseSGDRegressorc                 b    t          j        |          }t          j        j        | ||g|R i |S r*   )r+   r,   r   SGDRegressorr.   r0   r1   r2   r3   r4   s        r$   r.   z_SparseSGDRegressor.fit=   s9    M!(,T1aE$EEE"EEEr&   c                 b    t          j        |          }t          j        j        | ||g|R i |S r*   )r+   r,   r   rD   r7   rE   s        r$   r7   z_SparseSGDRegressor.partial_fitA   s9    M!(4T1aM$MMM"MMMr&   c                 `    t          j        |          }t          j        j        | |g|R i |S r*   )r+   r,   r   rD   r9   r0   r1   r3   r4   s       r$   r9   z%_SparseSGDRegressor.decision_functionE   s7    M!(:4PTPPPRPPPr&   Nr=   r>   r?   r.   r7   r9   r!   r&   r$   rB   rB   <   sL        F F FN N NQ Q Q Q Qr&   rB   c                        e Zd Zd Zd Zd ZdS )_SparseSGDOneClassSVMc                 `    t          j        |          }t          j        j        | |g|R i |S r*   )r+   r,   r   SGDOneClassSVMr.   rH   s       r$   r.   z_SparseSGDOneClassSVM.fitL   s7    M!*.tQDDDDDDDr&   c                 `    t          j        |          }t          j        j        | |g|R i |S r*   )r+   r,   r   rM   r7   rH   s       r$   r7   z!_SparseSGDOneClassSVM.partial_fitP   s7    M!*6tQLLLLLLLr&   c                 `    t          j        |          }t          j        j        | |g|R i |S r*   )r+   r,   r   rM   r9   rH   s       r$   r9   z'_SparseSGDOneClassSVM.decision_functionT   s7    M!*<T1RtRRRrRRRr&   NrI   r!   r&   r$   rK   rK   K   sL        E E EM M MS S S S Sr&   rK   c                  B    t          |            t          j        di | S Nr!   )r%   r   SGDClassifierr"   s    r$   rR   rR   Y   s'    6%/////r&   c                  B    t          |            t          j        di | S rQ   )r%   r   rD   r"   s    r$   rD   rD   ^   s'    6$..v...r&   c                  B    t          |            t          j        di | S rQ   )r%   r   rM   r"   s    r$   rM   rM   c   s'    6&00000r&   c                  8    t          |            t          di | S rQ   )r%   r(   r"   s    r$   SparseSGDClassifierrV   h   s$    6))&)))r&   c                  8    t          |            t          di | S rQ   )r%   rB   r"   s    r$   SparseSGDRegressorrX   m   s$    6(((((r&   c                  8    t          |            t          di | S rQ   )r%   rK   r"   s    r$   SparseSGDOneClassSVMrZ   r   s$    6 **6***r&         )r]   r]   r]   r^   r^   r^      )r]   r^   r^   g            ?g      g      ?g      ?      onetwothree)rb   rc   rd   )r]   r]   r   r   r   r   )r   r   r]   r   r   r   )r   r   r   r   r]   r]   )r   r   r   r]   r   r   )r]   r]   r]   r]   r^   r^   r^   r^   )r]   ?皙?r   r   r   )r]   zG?g\(\?r   r   r   )r]   Q?g)\(?r   r   r   )r]   Q?Gz?r   r   r   )r   r   r   g{Gz?ri   r]   )r   r   r   gHzG?rg   r]   )r   r   r   ri   gffffff?r]   )r   r   r   g(\?r]   r]   )r   r]   r]           c                    | t          j        |j        d                   }n|}t          j        |j        d                   }|}	d}
d}| t          t          fv rd}t          |          D ]q\  }}t          j        ||          }||	z  }|||         z
  }|d||z  z
  z  }|||z  |z   z  }|	||z   |z  z  }	||z  }||z  }||dz   z  }|
|z  }
|
|	z  }
|
|dz   z  }
r||
fS )Nr]   rk         ?{Gz?)npzerosshaperV   rX   	enumeratedot)klassr1   r2   etaalphaweight_initintercept_initweightsaverage_weights	interceptaverage_interceptdecayientrypgradients                   r$   asgdr      s7   (171:&&hqwqz**OIE $&8999aLL % %5F5'""	Yqt83#+&&S8^e+,,sX~&..	17"1s7"QY&QW$---r&   c                 P    | ddd|          }|                     ||            | ddd|          }|                     |||j                                        |j                                                    | dddd|          }|                     ||           |j        |j        k    sJ t          |j        |j                   |                    d           |                     ||           |j        |j        k    sJ t          |j        |j                   d S )	Nrn   F)rv   eta0shufflelearning_rateMbP?	coef_initrx   T)rv   r   r   
warm_startr   rv   )r.   coef_copy
intercept_t_r   
set_params)rt   r1   Ylrclfclf2clf3s          r$   _test_warm_startr      s*   
%duB
G
G
GCGGAqMMM5u4bIIIDHHQSY^^--cn>Q>Q>S>SHTTT 5uR  D 	HHQNNN7cfdj#)444OO%O   HHQNNN7dgdj$*55555r&   rt   r   )constantoptimal
invscalingadaptivec                 >    t          | t          t          |           d S r*   )r   r1   r   rt   r   s     r$   test_warm_startr      s    
 UAq"%%%%%r&   c                 |    | dd          }|                     t          t                     t          j        t                    d d t          j        f         }t          j        ||f         }t          j        t                    5  |                     t          |           d d d            d S # 1 swxY w Y   d S )Nrn   Frv   r   )
r.   r1   r   ro   arraynewaxisc_pytestraises
ValueError)rt   r   Y_s      r$   test_input_formatr      s    
 %dE
*
*
*CGGAqMMM	!QQQ
]	#B	r2vB	z	"	"  2                 s   B11B58B5c                 8    | dd          }t          |          }|                    d           |                    t          t                      | dd          }|                    t          t                     t          |j        |j                   d S )Nrn   l1)rv   penaltyl2)r   )r   r   r.   r1   r   r   r   rt   r   r   s      r$   
test_cloner     s    
 %dD
)
)
)C
**CNN4N   GGAqMMM5tT***DHHQNNNsy$*-----r&   c                     | dd          }|                     t          t                     t          |d          sJ t          |d          sJ t          |d          sJ t          |d          sJ  |             }|                     t          t                     t          |d          rJ t          |d          rJ t          |d          rJ t          |d          rJ d S )NTrn   )averager   _average_coef_average_intercept_standard_intercept_standard_coef)r.   r1   r   hasattrrt   r   s     r$   test_plain_has_no_average_attrr     s    %4
(
(
(CGGAqMMM3(((((3,-----3-.....3()))))
%''CGGAqMMMsO,,,,,s011111s122222s,-------r&   c                     | d          } |             }t          d          D ]}t          |          rs|                    t          t          t          j        t                               |                    t          t          t          j        t                               |                    t          t                     |                    t          t                     t          |j        |j        d           | t          t          t          t          fv rt          |j        |j        d           d S | t          t           fv rt#          |j        |j                   d S d S )NiX  r   d   classes   decimal)ranger   r7   r1   r   ro   uniquer   r   rR   rV   rD   rX   r   r   rM   rZ   r   offset_)rt   clf1r   _s       r$   %test_late_onset_averaging_not_reachedr   :  s?    5D577D3ZZ # # 	#Q29Q<<888Q29Q<<8888Q"""Q""""dj$*bAAAA 3\CUVVVDOT_bIIIIII	>#78	8	8dl33333 
9	8r&   c           	      0   d}d}t          j        t                    }d||dk    <   d||dk    <    | ddd	||dd
          } | d
dd	||dd
          }|                    t          |           |                    t          |           t          | t          ||||j                                        |j                  \  }}t          |j                                        |                                d           t          |j        |d           d S )Nr   -C6?      r]   rm   r^      r   squared_errorF)r   r   lossr   rv   r   r   )rw   rx   r   r   )ro   r   r   r.   r1   r   r   ravelr   r   r   )rt   r   rv   Y_encoder   r   rz   r|   s           r$   !test_late_onset_averaging_reachedr   W  sH    DEx{{H"HX]!HX]5   D 5   D 	HHQHHQ)-	J$$&&* * *&O& dj..00/2G2G2I2ISUVVVV):BGGGGGGr&   c                     t           j        t           j        dk             }t           j        t           j        dk             }dD ]3}d} | |d|                              ||          }|j        |k     sJ 4d S )Nr   TF  r   )early_stoppingr   r   )irisdatatargetr.   n_iter_)rt   r1   r   r   r   r   s         r$   test_early_stoppingr     s     		$+/"ADK!O$A' & &e>thOOOSSq
 
 {X%%%%%& &r&   c                     | dddd          }|                     t          j        t          j                    | dddd          }|                     t          j        t          j                   |j        |j        k    sJ d S )Nr   rn   r   r   )r   r   r   r   r   )r.   r   r   r   r   )rt   r   r   s      r$   "test_adaptive_longer_than_constantr     s     5z$MMMDHHTY$$$5z$MMMDHHTY$$$<$,&&&&&&r&   c           
         t           j        t           j        }}d}d}d}d} | dt          j                            |          |ddd ||          }|                    ||           |j        |k    sJ  | dt          j                            |          ddd ||	          }t          |          rt          ||
          }	nt          ||
          }	t          |	                    ||                    \  }
}t          j        |
          }
|                    ||
         ||
                    |j        |k    sJ t          |j        |j                   d S )N皙?r   F
   Tr   rn   )r   r   validation_fractionr   r   r   r   r   )r   r   r   r   r   r   r   )	test_sizer   )r   r   r   ro   randomRandomStater.   r   r   r   r   nextsplitsortr   r   )rt   r1   r   r   seedr   r   r   r   cv	idx_trainidx_vals               r$   )test_validation_set_not_used_for_trainingr     sw    9dkqADGH5Y**400/ 	 	 	D 	HHQNNN<8####5Y**400   D T L#.APTUUU$7dKKKbhhq!nn--Iw	""IHHQy\1Y<(((<8####tz4:.....r&   c                      t           j        t           j        cdD ]0 fddD             }t          |t	          |                     1d S )Nr   c                 `    g | ]*} |d d                                         j        +S )r   r   )r   n_iter_no_changer   r   )r.   r   ).0r   r1   r   r   rt   s     r$   
<listcomp>z)test_n_iter_no_change.<locals>.<listcomp>  sZ     

 

 

 ! E-!1	   SAYY

 

 

r&   )r^   r_   r   )r   r   r   r   sorted)rt   n_iter_listr1   r   r   s   ` @@@r$   test_n_iter_no_changer     s     9dkDAq' = =

 

 

 

 

 

 

 %/

 

 

 	;{(;(;<<<<= =r&   c                      | dd          }t          j        t                    5  |                    t          t
                     d d d            d S # 1 swxY w Y   d S )NTrj   )r   r   )r   r   r   r.   X3Y3r   s     r$   )test_not_enough_sample_for_early_stoppingr     s    
 %t
>
>
>C	z	"	"  B                 s   !AAAc           	          dD ]`} | ddd|dd          }|                     t          t                     t          |                    t
                    t                     ad S )N)hingesquared_hingelog_lossmodified_huberr   rn   Tr   )r   rv   fit_interceptr   r   r   )r.   r1   r   r   predictTtrue_result)rt   r   r   s      r$   test_sgd_clfr     sv     I 8 8e
 
 
 	13;;q>>;77778 8r&   c                     t          j        t          d          5   |                                 t          t
          t          j        d                     ddd           dS # 1 swxY w Y   dS )z1Check that the shape of `coef_init` is validated.z)Provided coef_init does not match datasetmatchr_   r   N)r   r   r   r.   r1   r   ro   rp   rt   s    r$   test_provide_coefr    s    
 
z)T	U	U	U 4 4AqBHTNN3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   =A&&A*-A*zklass, fit_paramsrx   r  offset_initc                      |             }t          j        t          d          5   |j        t          t
          fi | ddd           dS # 1 swxY w Y   dS )z:Check that `intercept_init` or `offset_init` is validated.zdoes not match datasetr   Nr   r   r   r.   r1   r   )rt   
fit_paramssgd_estimators      r$   test_set_intercept_offsetr
    s     EGGM	z)A	B	B	B . .!Q--*---. . . . . . . . . . . . . . . . . .s   AAAc                     d}t          j        t          |          5   | d                              t          t
                     ddd           dS # 1 swxY w Y   dS )zSCheck that we raise an error for `early_stopping` used with
    `partial_fit`.
    z/early_stopping should be False with partial_fitr   T)r   N)r   r   r   r7   r1   r   )rt   err_msgs     r$   (test_sgd_early_stopping_with_partial_fitr    s     @G	z	1	1	1 5 5T"""..q!4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s   +AAAc                 H      |             j         t          t          fi | dS )zdCheck that we can pass a scaler with binary classification to
    `intercept_init` or `offset_init`.N)r.   X5Y5)rt   r  s     r$    test_set_intercept_offset_binaryr  $  s,     EEGGKB%%*%%%%%r&   c           
         d}d}d}d}t           j                            d          }|                    ||f          }|                    |          } | dd||d	d
d	d          }t          j        ||          }	t          j        |	          }	|                    ||	           t          | ||	||          \  }
}|
                    d
d          }
t          |j
        |
d           t          |j        |d           d S )N皙?       @   r   r   sizer   r   Tr]   Fr   r   r   rv   r   r   r   r   r\      r   )ro   r   r   normalrs   signr.   r   reshaper   r   r   r   )rt   ru   rv   	n_samples
n_featuresrngr1   wr   r2   rz   r|   s               r$   &test_average_binary_computed_correctlyr!  3  s    CEIJ
)


"
"C

J/
00A



##A
% 	 	 	C 	q!A


AGGAqMMM)-eQ3)F)F&O&%--a44Oci"EEEE(92FFFFFFr&   c                 b    |                                  t          t                    } |                                  t          t          |j                    |                                  t          t
                    } |                                  t          t
          |j                   d S )Nrx   )r.   r  r  r   r1   r   r   s     r$   test_set_intercept_to_interceptr$  U  s|     %''++b"

C	EGGKKBs~K666
%''++a

C	EGGKK1S^K44444r&   c                      | dd          }t          j        t                    5  |                    t          t          j        d                     d d d            d S # 1 swxY w Y   d S )Nrn   r  rv   r   	   )r   r   r   r.   X2ro   onesr   s     r$   test_sgd_at_least_two_labelsr*  _  s     %dR
(
(
(C	z	"	"    BGAJJ                                   s   .A""A&)A&c                     d}t          j        t          |          5   | d                              t          t
          t          j        t
                               d d d            d S # 1 swxY w Y   d S )Na`  class_weight 'balanced' is not supported for partial_fit\. In order to use 'balanced' weights, use compute_class_weight\('balanced', classes=classes, y=y\). In place of y you can use a large enough sample of the full training set target to properly estimate the class frequency distributions\. Pass the resulting weights as the class_weight parameter\.r   balanced)class_weightr   )r   r   r   r7   r1   r   ro   r   )rt   regexs     r$   &test_partial_fit_weight_class_balancedr/  g  s    	 
 
z	/	/	/ O O:&&&221a12NNNO O O O O O O O O O O O O O O O O Os   AA//A36A3c                 H    | dd                               t          t                    }|j        j        dk    sJ |j        j        dk    sJ |                    ddgg          j        dk    sJ |                    t                    }t          |t                     d S )Nrn   r  r&  r_   r^   r  r   r]   r_   r.   r(  Y2r   rq   r   r9   r   T2r   true_result2rt   r   preds      r$   test_sgd_multiclassr9  x  s     %dR
(
(
(
,
,R
4
4C9?f$$$$>4''''  1a&**0F::::;;r??Dt\*****r&   c           
         d}d} | dd||dddd          }t          j        t                    }|                    t          |           t          j        |          }t          |          D ]\  }}t          j        |j        d	                   }d
|||k    <   t          | t          |||          \  }	}
t          |	|j        |         d           t          |
|j        |         d           d S )Nr   rn   r   r   Tr]   Fr  r   r\   r   r   )ro   r   r4  r.   r(  r   rr   r)  rq   r   r   r   r   r   )rt   ru   rv   r   np_Y2r   r~   cly_iaverage_coefr|   s              r$   test_sgd_multiclass_averager?    s   
CE
% 	 	 	C HRLLEGGBiG7## N N2gek!n%%ERK*.ub#sE*J*J''!,	!bIIII-s~a/@"MMMMMN Nr&   c                 \    | dd          }|                     t          t          t          j        d          t          j        d                     |j        j        dk    sJ |j        j        s
J d            |                    t                    }t          |t                     d S )Nrn   r  r&  r1  r_   r   r  )r.   r(  r4  ro   rp   r   rq   r   r   r5  r   r6  r7  s      r$   "test_sgd_multiclass_with_init_coefrA    s     %dR
(
(
(CGGBbhv..rx{{GKKK9?f$$$$>%%%%%;;r??Dt\*****r&   c                 J    | ddd                               t          t                    }|j        j        dk    sJ |j        j        dk    sJ |                    ddgg          j        dk    sJ |                    t                    }t          |t                     d S )	Nrn   r  r^   )rv   r   n_jobsr1  r  r   r2  r3  r7  s      r$   test_sgd_multiclass_njobsrD    s     %dR
2
2
2
6
6r2
>
>C9?f$$$$>4''''  1a&**0F::::;;r??Dt\*****r&   c                     |             }t          j        t                    5  |                    t          t
          t          j        d                     d d d            n# 1 swxY w Y    |                                 t          t
          t          j        d                    } |             }t          j        t                    5  |                    t          t
          t          j        d                     d d d            n# 1 swxY w Y    |                                 t          t
          t          j        d                    }d S )N)r^   r^   r  r1  r]   r#  r  )r   r   r   r.   r(  r4  ro   rp   r   s     r$   test_set_coef_multiclassrG    s|   
 %''C	z	"	" 4 4B"(6"2"23334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 %''++b"(8(8+
9
9C %''C	z	"	" 7 7Brx~~6667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 %''++b"RXd^^+
<
<CCCs#   5A%%A),A)5DDDc                    t           j        j        D ]e}t          |          }|dv r%t          |d          sJ t          |d          sJ <d                    |          }t          |d          rJ t          |d          rJ t          j        t          d          5 }|j         d d d            n# 1 swxY w Y   t          |j
        j        t                    sJ |t          |j
        j                  v sJ t          j        t          d          5 }|j         d d d            n# 1 swxY w Y   t          |j
        j        t                    sJ |t          |j
        j                  v sJ gd S )	N)r   r   r   r<   predict_log_probaz5probability estimates are not available for loss={!r}z has no attribute 'predict_proba'r   z$has no attribute 'predict_log_proba')r   rR   loss_functionsr   formatr   r   AttributeErrorr<   
isinstancevalue	__cause__strrJ  )rt   r   r   	inner_msg	exec_infos        r$   $test_sgd_predict_proba_method_accessrT    s!    *9 ? ?&&&1113000003 3444444OVV I sO44444s$788888&H   "!!" " " " " " " " " " " " " " "
 io7HHHHHIO$= > >>>>>&L   &%%& & & & & & & & & & & & & & & io7HHHHHIO$= > >>>>>>1? ?s$   "B66B:	=B:	D..D2	5D2	c                 4	   t          dddd                               t          t                    }t	          |d          rJ t	          |d          rJ dD ]} | |dd          }|                    t          t                     |                    d	d
gg          }|d         dk    sJ |                    ddgg          }|d         dk     sJ t          j        d          5  |                    d	d
gg          }|d         |d         k    sJ |                    ddgg          }|d         |d         k     sJ 	 d d d            n# 1 swxY w Y    | ddd                              t          t                    }|                    ddgddgg          }|                    ddgddgg          }t          t          j        |d          t          j        |d                     t          |d                                         d           t          j        |d         dk              sJ |                    ddgg          }|                    ddgg          }t          t          j        |d                   t          j        |d                              |                    d	d
gg          }|                    d	d
gg          }t%          t          j        |          |           |                    ddgg          }|                    ddgg          }t%          t          j        |          |            | ddd          }|                    t          t                     |                    d	d
gg          }|                    d	d
gg          }| t(          k    r1t          j        |d          t          j        |d          k    sJ n0t          j        |d          t          j        |d          k    sJ t                              d          }|                    |g          }t          j        |dk               r2|                    |g          }t%          |d         dgd	z             d S d S )Nr   rn   r   )r   rv   r   r   r<   rJ  rI  )r   rv   r   r_   r^   r   r]   r`   r\   ignore)divide)r   r   r   r  皙333333?皙?r]   )axisr   r   gUUUUUU?)rR   r.   r1   r   r   r<   ro   errstaterJ  r(  r4  r9   r   argmaxr   sumallargsortr   logrV   argminmean)rt   r   r   r   dlpxs          r$   test_sgd_probarh    s    WD24
H
H
H
L
LQPQ
R
RCsO,,,,,s/00000 / % %eTB77711vh''w}}}}Bxj))w}}}} [))) 	% 	%%%1vh//AT7QtW$$$$%%Bxj11AT7QtW$$$$$		% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% %Ztb
9
9
9
=
=b"
E
ECT{S#J788AC;c
344Ary+++RYqq-A-A-ABBB!

A&&&6!A$!)B8*%%ABxj))Arz!A$''AaD)9)9:::			Ax	(	(BAq6(##AbfQii,,,			Rz	*	*BB8*%%AbfQii,,,
 %%TB
?
?
?CGGBOOO1vh''AAq6(##A###y###ry';';';;;;;;y###ry';';';;;;;
 	
AAqc""A	va"f~~ 7qc""!!A$	A666667 7s   *AEE	E	c                 h   t          t                    }t          j                            d          }t          j        |          }|                    |           t          |d d f         }t          |         } | ddddd d          }|                    ||           t          |j
        ddd	f         t          j        d
                     |                    |          }t          ||           |                                 t          j        |j
                  sJ |                    |          }t          ||           t!          j        t!          j        |                    }t          j        |j
                  sJ |                    |          }t          ||           d S )N   r   r[  F  )r   rv   r   r   r   r   r   r]   r\   )   )lenX4ro   r   r   aranger   Y4r.   r   r   rp   r   sparsifyr+   issparsepickleloadsdumps)rt   nr  idxr1   r   r   r8  s           r$   test_sgd_l1rx  4  s|    	BA
)


#
#C
)A,,CKK
36
A
3A
%  C GGAqMMMsyAbD)28D>>:::;;q>>DtQ LLNNN;sy!!!!!;;q>>DtQ ,v|C((
)
)C;sy!!!!!;;q>>DtQr&   c                    t          j        ddgddgddgddgddgg          }g d} | ddd	d 
          }|                    ||           t          |                    ddgg          t          j        dg                      | ddd	ddi
          }|                    ||           t          |                    ddgg          t          j        dg                     d S )Nr   r   皙rm   rk   r]   r]   r]   r\   r\   r  r   F)rv   r   r   r-  r[  r]   r   r\   ro   r   r.   r   r   rt   r1   r2   r   s       r$   test_class_weightsr~  Y  s     	4,q	D$<#sc3ZPQQAA
%cDD
Q
Q
QCGGAqMMMs{{S$K=1128QC==AAA %cDQPUJ
W
W
WCGGAqMMM s{{S$K=1128RD>>BBBBBr&   c                    ddgddgddgddgg}g d} | ddd           }|                     ||           ddgddgg}ddg} | ddddd          }|                     ||           t          |j        |j        d	
           d S )Nr]   r   )r   r   r]   r]   r  r   rv   r   r-  r`   rV  r^   r   )r.   r   r   )rt   r1   r2   r   clf_weighteds        r$   test_equal_class_weightr  l  s     Q!Q!Q!Q(AA
%cDt
<
<
<CGGAqMMM
Q!QA	
AA5sTCC@P@PQQQLQ 	<#5qAAAAAAr&   c                      | ddddi          }t          j        t                    5  |                    t          t
                     d d d            d S # 1 swxY w Y   d S )Nr  r   r   r`   r  r  r   s     r$   test_wrong_class_weight_labelr  }  s     %cD3x
@
@
@C	z	"	"  1                 s   !AAAc                 .   ddd}t           j                            d          }|                    t          j        d                   }t          j        |          }|t          dk    xx         |d         z  cc<   |t          dk    xx         |d         z  cc<    | dd|	          } | dd
          }|                    t          t          |           |                    t          t          |           t          |j
        |j
                   d S )Ng333333?rZ  )r]   r^   r   r]   r^   r  r  r  r&  sample_weight)ro   r   r   random_samplerp  rq   r   r.   rn  r   r   )rt   class_weightsr  sample_weightsmultiplied_togetherr   r   s          r$   test_weights_multipliedr    s    $$M
)


"
"C&&rx{33N'.11a   M!$44   a   M!$44   5sRmDDDD5sR(((DHHR>H222HHR#6H777
DJ/////r&   c                    t           j        t           j        }}t          |          }t	          j        |j        d                   }t          j                            d          }|	                    |           ||         }||         } | ddd d          
                    ||          }t          j        ||                    |          d          }t          |d	d
            | dddd          
                    ||          }t          j        ||                    |          d          }t          |d	d
           t          |j        |j        d           ||dk    d d f         }||dk             }	t	          j        |g|gdz  z             }
t	          j        |g|	gdz  z             } | dd d          }|
                    |
|           |                    |          }t          j        ||d          d	k     sJ  | ddd          }|
                    |
|           |                    |          }t          j        ||d          d	k    sJ d S )Nr      r   r   F)rv   r   r-  r   weightedr   rh   r]   r   r,  r   )r   r-  r   )r   r   r   r   ro   ro  rq   r   r   r   r.   r   f1_scorer   r   r   r   vstackconcatenate)rt   r1   r2   rw  r  r   f1clf_balancedX_0y_0X_imbalancedy_imbalancedy_preds                r$   test_balanced_weightr    sn   
 9dkqAaA
)AGAJ

C
)


"
"CKK	#A	#A
%ft$
N
N
N
R
RSTVW
X
XC		!S[[^^Z	@	@	@BD!,,,, 5t*e  	c!Qii  
	!\11!44j	I	I	IBD!,,,, ci);Q??? AFAAAI,C
AF)C9aSC52:-..L>1#
"233L %D%
@
@
@CGGL,'''[[^^FAvz:::TAAAA %J
F
F
FCGGL,'''[[^^FAvz:::TAAAAAAr&   c                    t          j        ddgddgddgddgddgg          }g d} | ddd	
          }|                    ||           t          |                    ddgg          t          j        dg                     |                    ||dgdz  dgdz  z              t          |                    ddgg          t          j        dg                     d S )Nr   r   rz  rm   rk   r{  r  r   Frv   r   r   r[  r]   r   r_   r^   r  r\   r|  r}  s       r$   test_sample_weightsr    s     	4,q	D$<#sc3ZPQQAA
%cD
>
>
>CGGAqMMMs{{S$K=1128QC==AAA GGAq!qcAg 5G666 s{{S$K=1128RD>>BBBBBr&   c                 L   | t           t          fv r | ddd          }n| t          t          fv r | ddd          }t	          j        t                    5  |                    t          t          t          j        d                     d d d            d S # 1 swxY w Y   d S )Nr  r   Fr  )nur   r   r   r  )rR   rV   rM   rZ   r   r   r   r.   r1   r   ro   ro  r   s     r$   test_wrong_sample_weightsr    s    
  3444e#EBBB	>#78	8	8esT???	z	"	" 2 21BIaLL1112 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2s   5BB Bc                      | d          }t          j        t                    5  |                    t          t
                     d d d            d S # 1 swxY w Y   d S )Nrn   r   )r   r   r   r7   r   r   r   s     r$   test_partial_fit_exceptionr    s    
%d


C	z	"	"    B                                   s   !AAAc                    t           j        d         dz  } | d          }t          j        t                    }|                    t           d |         t          d |         |           |j        j        dt           j        d         fk    sJ |j        j        dk    sJ |                    ddgg          j        dk    sJ t          |j        j
                  }|                    t           |d          t          |d                     t          |j        j
                  }|s
J |            |                    t                    }t          |t                     d S )Nr   r_   rn   r   r   r]   rF  )r1   rq   ro   r   r   r7   r   r   r9   idr   r   r   r   r   )rt   thirdr   r   id1id2r  s          r$   test_partial_fit_binaryr    s/   GAJ!OE
%d


CillGOOAfufIq%y'O:::9?q!'!*o---->4''''  1a&**0D8888
SY^

COOAeffIqy)))
SY^

COOOOO[[^^Fv{+++++r&   c                 l   t           j        d         dz  } | d          }t          j        t                    }|                    t           d |         t          d |         |           |j        j        dt           j        d         fk    sJ |j        j        dk    sJ |                    ddgg          j        dk    sJ t          |j        j
                  }|                    t           |d          t          |d                     t          |j        j
                  }|s
J |            d S )	Nr   r_   rn   r   r   r]   r  r2  )r(  rq   ro   r   r4  r7   r   r   r9   r  r   )rt   r  r   r   r  r  s         r$   test_partial_fit_multiclassr    s   HQK1E
%d


CimmGOOBvvJ6E6
GO<<<9?q"(1+.....>4''''  1a&**0F::::
SY^

COOBuvvJ566
+++
SY^

COOOOOOOr&   c                 8   t           j        d         dz  } | dt           j        d                   }t          j        t                    }|                    t           d |         t          d |         |           |j        j        dt           j        d         fk    sJ |j        j        dk    sJ |                    t           |d          t          |d                     |j        j        dt           j        d         fk    sJ |j        j        dk    sJ d S )Nr   r_   rn   )rv   r   r   r]   r  )r(  rq   ro   r   r4  r7   r   r   )rt   r  r   r   s       r$   #test_partial_fit_multiclass_averager    s    HQK1E
%dBHQK
0
0
0CimmGOOBvvJ6E6
GO<<<9?q"(1+.....>4''''OOBuvvJ566
+++9?q"(1+.....>4''''''r&   c                      |             }|                     t          t                     |                    t          t                     d S r*   )r.   r(  r4  r7   r   s     r$   test_fit_then_partial_fitr  %  s:    
 %''CGGBOOOOOBr&   c                    t           t          t          ft          t          t
          ffD ]\  }}} | ddd|d          }|                    ||           |                    |          }|j        }t          j
        |          } | dd|d          }t          d          D ]}	|                    |||           |                    |          }
|j        |k    sJ t          ||
d           d S )Nrn   r^   F)rv   r   r   r   r   rv   r   r   r   r   r   )r1   r   r   r(  r4  r5  r.   r9   r   ro   r   r   r7   r   )rt   r   X_r   T_r   r  tr   r~   y_pred2s              r$   "test_partial_fit_equal_fit_classifr  /  s	    1ay2r2,/ > >
Be$TARQVWWWB&&r**F)B--e$TUKKKq 	5 	5AOOBGO4444''++v{{{{!&'1=====> >r&   c                    t           j                            d          } | dddd|          }|                    t          t
                     dt          j        |                    t                    t
          k              k    sJ  | dddd|          }|                    t          t
                     dt          j        |                    t                    t
          k              k    sJ  | dd	|
          }|                    t          t
                     dt          j        |                    t                    t
          k              k    sJ  | dddd|          }|                    t          t
                     dt          j        |                    t                    t
          k              k    sJ d S )Nr]   rn   r   r  epsilon_insensitive)rv   r   r   r   r   rm   squared_epsilon_insensitivehuber)rv   r   r   r   )ro   r   r   r.   r1   r   rd  r   )rt   r   r   s      r$   test_regression_lossesr  B  s   9((++L
% "!  C GGAqMMM"'#++a..A-......
% *!  C GGAqMMM"'#++a..A-......
%d|
D
D
DCGGAqMMM"'#++a..A-......
% !  C GGAqMMM"'#++a..A-........r&   c                 >    t          | t          t          d           d S )Nr   )r   r(  r4  r  s    r$   test_warm_start_multiclassr  h  s    UBI.....r&   c                 2    | dd          }|                     t          t                     t          |d          sJ d t	                                          t                    D             }|                     t          d d d df         |           d S )Nrn   Fr   r   c                 "    g | ]}d dg|         S )hamspamr!   )r   r~   s     r$   r   z%test_multiple_fit.<locals>.<listcomp>u  s!    EEE%	EEEr&   r\   )r.   r1   r   r   r   fit_transform)rt   r   r2   s      r$   test_multiple_fitr  m  s     %dE
*
*
*CGGAqMMM3      	FE\^^%A%A!%D%DEEEAGGAaaa"fIqr&   c                      | ddd          }|                     ddgddgddggg d           |j        d         |j        d         k    sJ d S )Nr  r^   Fr  r   r]   )r   r]   r^   )r.   r   r   s     r$   test_sgd_regr  }  sh     %cAU
;
;
;CGGaVaVaV$iii0009Q<39Q<''''''r&   c           
         d}d}d}d}t           j                            d          }|                    ||f          }|                    |          }t          j        ||          } | dd||d	d
d	d          }	|	                    ||           t          | ||||          \  }
}t          |	j        |
d           t          |	j
        |d           d S )Nr   rn   r  r   r   r  r   r   Tr]   Fr  r   r   )ro   r   r   r  rs   r.   r   r   r   r   r   rt   ru   rv   r  r  r  r1   r   r2   r   rz   r|   s               r$   $test_sgd_averaged_computed_correctlyr    s     CEIJ
)


"
"C

J/
00A



##A 	q!A
% 	 	 	C GGAqMMM)-eQ3)F)F&O&ci"EEEE(92FFFFFFr&   c           
         d}d}d}d}t           j                            d          }|                    ||f          }|                    |          }t          j        ||          } | dd||d	d
d	d          }	|	                    |d t          |dz                     d d          |d t          |dz                                |	                    |t          |dz            d          d d          |t          |dz            d                     t          | ||||          \  }
}t          |	j	        |
d           t          |	j        d         |d           d S )Nr   rn   r  r   r   r  r   r   Tr]   Fr  r^   r   r   )ro   r   r   r  rs   r7   intr   r   r   r   r   r  s               r$   test_sgd_averaged_partial_fitr    s    CEIJ
)


"
"C

J/
00A



##A 	q!A
% 	 	 	C OOA*IM***+AAA.2FC	A4F4F2F0GHHHOOAc)a-((**+AAA.#i!m2D2D2F2F0GHHH)-eQ3)F)F&O&ci"EEEEq)+<bIIIIIIr&   c           
      T   d}d} | dd||dddd          }t           j        d	         }|                    t          d t	          |d
z                     d d          t           d t	          |d
z                                |                    t          t	          |d
z            d          d d          t           t	          |d
z            d                     t          | t          t           ||          \  }}t          |j        |d           t          |j	        |d           d S )Nr   rn   r   r   Tr]   Fr  r   r^   r   r   )
r   rq   r7   r   r  r   r   r   r   r   )rt   ru   rv   r   r  rz   r|   s          r$   test_average_sparser    s/    CE
% 	 	 	C IOOB+Y]+++,QQQ/4Hc)a-6H6H4H1IJJJOOBs9q=))++,QQQ/C	A4F4F4H4H1IJJJ)-eRS%)H)H&O&ci"EEEE(92FFFFFFr&   c                 `   d\  }}d}t           j                            d          }t          j        |||                              |d          }d|                                z  } | dddd	
          }|                    ||           |                    ||          }|dk    sJ d|                                z  |                    |d                                          z   } | dddd	
          }|                    ||           |                    ||          }|dk    sJ d S )Nr    r   r   r]   r`   r   r  r  F)r   rv   r   r   rj   	ro   r   r   linspacer  r   r.   scorerandn	rt   xminxmaxr  r  r1   r2   r   r  s	            r$   test_sgd_least_squares_fitr    s   JD$I
)


"
"C
D$	**229a@@A 	aggiiA
%_C"E
R
R
RCGGAqMMMIIaOOE4<<<< 	aggii#))Iq1177999A
%_C"E
R
R
RCGGAqMMMIIaOOE3;;;;;;r&   c                 d   d\  }}d}t           j                            d          }t          j        |||                              |d          }d|                                z  } | dddd	d
          }|                    ||           |                    ||          }|dk    sJ d|                                z  |                    |d                                          z   } | dddd	d
          }|                    ||           |                    ||          }|dk    sJ d S )Nr  r   r   r]   r`   r  rn   r  r  Fr   epsilonrv   r   r   rj   r  r  s	            r$   test_sgd_epsilon_insensitiver    s=   JD$I
)


"
"C
D$	**229a@@A 	aggiiA
%"  C GGAqMMMIIaOOE4<<<< 	aggii#))Iq1177999A
%"  C GGAqMMMIIaOOE3;;;;;;r&   c                 d   d\  }}d}t           j                            d          }t          j        |||                              |d          }d|                                z  } | ddddd	
          }|                    ||           |                    ||          }|dk    sJ d|                                z  |                    |d                                          z   } | ddddd	
          }|                    ||           |                    ||          }|dk    sJ d S )Nr  r   r   r]   r`   r  r  r  Fr  rj   r  r  s	            r$   test_sgd_huber_fitr    s%   JD$I
)


"
"C
D$	**229a@@A 	aggiiA
%WcrQV
W
W
WCGGAqMMMIIaOOE4<<<< 	aggii#))Iq1177999A
%WcrQV
W
W
WCGGAqMMMIIaOOE3;;;;;;r&   c           	         d\  }}t           j                            d          }|                    ||          }|                    |          }t          j        ||          }dD ]~}dD ]y}t          j        ||d          }	|	                    ||            | dd||d	          }
|
                    ||           d
||fz  }t          |	j	        |
j	        d|           zd S )N)r   r    r   )rn   r   )r`   rf   rm   F)rv   l1_ratior   
elasticnet2   )r   r   rv   r  r   zNcd and sgd did not converge to comparable results for alpha=%f and l1_ratio=%fr^   )r   r  )
ro   r   r   r  rs   r   
ElasticNetr.   r   r   )rt   r  r  r  r1   ground_truth_coefr2   rv   r  cdsgdr  s               r$   test_elasticnet_convergencer  6  s3    $Iz
)


"
"C		)Z((A 		*--
q#$$A  Q Q' 	Q 	QH(he  B FF1aLLL%$!#  C GGAqMMM7:?9JK   #)QPPPPP#	QQ Qr&   c                 4   t           j        d         dz  } | d          }|                    t           d |         t          d |                    |j        j        t           j        d         fk    sJ |j        j        dk    sJ |                    ddgg          j        dk    sJ t          |j        j                  }|                    t           |d          t          |d                     t          |j        j                  }|s
J |            d S )Nr   r_   rn   r   r]   rF  )	r1   rq   r7   r   r   r   r   r  r   )rt   r  r   r  r  s        r$   test_partial_fitr  X  s    GAJ!OE
%d


COOAfufIq%y)))9?qwqzm++++>4'''';;Ax  &$....
SY^

COOAeffIqy)))
SY^

COOOOOOOr&   c                     | ddd|d          }|                     t          t                     |                    t                    }|j        } | dd|d          }t          d          D ]"}|                    t          t                     #|                    t                    }|j        |k    sJ t          ||d           d S )Nrn   r^   F)rv   r   r   r   r   r  r   )	r.   r1   r   r   r   r   r   r7   r   )rt   r   r   r  r  r~   r  s          r$   test_partial_fit_equal_fitr  i  s     %dQTU
S
S
SCGGAqMMM[[^^FA
%dR
G
G
GC1XX  1kk!nnG6Q;;;;fgq999999r&   c                 |     | d          }|                     d           |j        d         d         dk    sJ d S )Nre   )r  r  r  r]   )r   rK  r   s     r$   test_loss_function_epsilonr  z  sL    
%


CNN3Ng&q)S000000r&   c                    | t          j        |j        d                   }n|}t          j        |j        d                   }|}d|z
  }	d}
d}| t          k    rd}t	          |          D ]\  }}t          j        ||          }||	z  }|dk    rd}nd}|t          dd||z  dz  z
            z  }|||z  |z   z  }|	|||z   z   |z  z  }	||z  }||z  }||dz   z  }|
|z  }
|
|	z  }
|
|dz   z  }
|d|
z
  fS )Nr]   rk   rm   rn   r\   r   r^   )ro   rp   rq   rZ   rr   rs   max)rt   r1   ru   r  r   r  coefr>  offsetr{   r|   r}   r~   r   r   r   s                   r$   asgd_oneclassr    sZ   x
##8AGAJ''LFF
IE $$$aLL % %5F5$	Y88HHHAscBhl+,,,#.5())sb8m,-55	CQY&QW$....r&   c                 H    | ddd|          }|                     |            | ddd|          }|                     ||j                                        |j                                                    | dddd|          }|                     |           |j        |j        k    sJ t          |j        |j                   |                    d	           |                     |           |j        |j        k    sJ t          |j        |j                   d S )
Nr`   rn   F)r  r   r   r   r  r   r  T)r  r   r   r   r   r  )r.   r   r   r   r   r   r   )rt   r1   r   r   r   r   s         r$   _test_warm_start_oneclassr    s    %3T5
C
C
CCGGAJJJ5CdEDDDDHHQ#)..**8H8H8J8JHKKK 5CdEdRTUUUDHHQKKK7cfDJ	***OOsOHHQKKK7dgDJ
+++++r&   c                 2    t          | t          |           d S r*   )r  r1   r   s     r$   test_warm_start_oneclassr    s     eQ+++++r&   c                     | d          }t          |          }|                    d           |                    t                      | d          }|                    t                     t	          |j        |j                   d S )Nr`   r  r  )r   r   r.   r1   r   r   r   s      r$   test_clone_oneclassr    sy     %3---C
**CNNcNGGAJJJ5C===DHHQKKKsy$*-----r&   c                 P   t           j        d         dz  } | d          }|                    t           d |                    |j        j        t           j        d         fk    sJ |j        j        dk    sJ |                    ddgg          j        dk    sJ |j        }|                    t           |d                     |j        |u sJ t          j        t                    5  |                    t           d d df                    d d d            d S # 1 swxY w Y   d S )Nr   r_   r  r  r]   rF  )	r1   rq   r7   r   r   r   r   r   r   )rt   r  r   previous_coefss       r$   test_partial_fit_oneclassr    s[   GAJ!OE
%3---COOAfufI9?qwqzm++++;$$$$;;Ax  &$....YNOOAeffI9&&&& 
z	"	" ! !!!!Q$   ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !s   )%DD"Dc                     | ddd|d          }|                     t                     |                    t                    }|j        }|j        }|j        } | ddd|d          }t          d          D ]}|                    t                     |                    t                    }|j        |k    sJ t          ||           t          |j        |           t          |j        |           d S )N皙?r^   rn   F)r  r   r   r   r   r]   )r  r   r   r   r   )
r.   r1   r9   r   r   r   r   r   r7   r   )	rt   r   r   y_scoresr  r  r  r   	y_scores2s	            r$   #test_partial_fit_equal_fit_oneclassr    s     %4!$b%
P
P
PCGGAJJJ$$Q''HA9D[F
%4dQb%
P
P
PC1XX  %%a((I6Q;;;;Hi(((CIt$$$CK(((((r&   c                    d}d} | dd||dd          } | dd||dd          }|                     t                     |                     t                     t          | t          |||j                                        |j        	          \  }}t          |j                                        |                                           t          |j        |           d S )
Nr   r  r   r   r^   F)r   r   r   r  r   r   r]   r  )r.   r1   r  r   r   r   r   )rt   r   r  r   r   r>  average_offsets          r$   *test_late_onset_averaging_reached_oneclassr     s     D	B 5$2SX  D 5   D 	HHQKKKHHQKKK $1q$dj&6&6&8&8dl$ $ $ L. DJ$$&&(:(:(<(<===DL.11111r&   c           	      P   d}d}d}d}t           j                            d          }|                    ||f          } | d||dd	dd
          }|                    |           t          | |||          \  }}	t          |j        |           t          |j        |	           d S )Nr   r  r  r   r   r  r   Tr]   Fr   r   r  r   r   r   r   )	ro   r   r   r  r.   r  r   r   r   
rt   ru   r  r  r  r  r1   r   r>  r  s
             r$   -test_sgd_averaged_computed_correctly_oneclassr  !  s     C	BIJ
)


"
"C

J/
00A
%   C GGAJJJ#03#C#C L.CI|,,,CK00000r&   c           	         d}d}d}d}t           j                            d          }|                    ||f          } | d||dd	dd
          }|                    |d t          |dz                     d d                     |                    |t          |dz            d          d d                     t          | |||          \  }}	t          |j        |           t          |j	        |	           d S )Nr   r  r  r   r   r  r   Tr]   Fr  r^   )
ro   r   r   r  r7   r  r  r   r   r   r  s
             r$   &test_sgd_averaged_partial_fit_oneclassr
  <  s    C	BIJ
)


"
"C

J/
00A
%   C OOA*IM***+AAA.///OOAc)a-((**+AAA.///#03#C#C L.CI|,,,CK00000r&   c           	         d}d} | d||dddd          }t           j        d         }|                    t           d t          |d	z                                |                    t           t          |d	z            d                     t	          | t           ||          \  }}t          |j        |           t          |j        |           d S )
Nr   rn   r   Tr]   Fr  r   r^   )r   rq   r7   r  r  r   r   r   )rt   ru   r  r   r  r>  r  s          r$   test_average_sparse_oneclassr  X  s     C	B
%   C IOOB+Y]+++,---OOBs9q=))++,---#0C#D#D L.CI|,,,CK00000r&   c                     t          j        ddgddgddgg          } t          j        ddgddgg          }t          ddddd          }|                    |            t	          |j        t          j        d	d
g                     |j        d         dk    sJ |                    |          }t	          |t          j        ddg                     |                    |          |j        z
  }t	          |                    |          |           |	                    |          }t          |t          j        ddg                     d S )Nr[   r\   r]   r`   r^   r   F)r  r   r   r   r   g      g      ?r   ra   g      g      ?)ro   r   rM   r.   r   r   r   score_samplesr9   r   r   )X_trainX_testr   scoresdecr8  s         r$   test_sgd_oneclassr  q  sL    hR2r(QF344GXRy1a&)**F
Qj%!  C GGGCIrx(899:::;q>T!!!!v&&FFBHgu%566777


F
#
#ck
1CC))&113777;;vDtRXr1g../////r&   c                     d} d}d}t           j                            |          }d|                    dd          z  }t           j        |dz   |dz
  f         }d|                    dd          z  }t           j        |dz   |dz
  f         }t          |d| 	          }|                    |           |                    |          }|                    |          	                    d
d          }	d}
t          ||          }t          | dd|
|d           }t          ||          }|                    |           |                    |          }|                    |          	                    d
d          }t          j        ||k              dk    sJ t          j        t          j        |	|f                    d         }|dk    sJ d S )Nr  r  r   rZ    r^   r   rbf)gammakernelr  r]   r\      )r  r   T)r  r   r   r   r   r   rj   rV  re   )ro   r   r   r  r_r   r.   r   r9   r  r
   rM   r   rd  corrcoefr  )r  r  r   r  r1   r  r  r   y_pred_ocsvm	dec_ocsvmr   	transformclf_sgdpipe_sgdy_pred_sgdocsvmdec_sgdocsvmr  s                    r$   test_ocsvm_vs_sgdocsvmr#    s    
BEL )


-
-CciiQAeAE1q5L!GciiQAU1q5!a%< F E%B
7
7
7CGGG;;v&&L%%f--55a<<I Hu<@@@I!  G Y00HLL&&v..O--f55==aDDL7?l233t;;;;{2>9l*CDDEEdKHs??????r&   c                     t          j        dddd          \  } }t          ddd dd	d
                              | |          }t          dddd
d                               | |          }t	          |j        |j                   t          ddd ddd
                              | |          }t          dddd
d                               | |          }t	          |j        |j                   d S )Nr   r   r  i  )r  r  n_informativer   r   r  r  gA?r   )rv   r   r   r   r  r   r   )rv   r   r   r   r   g|=r   )r   make_classificationrR   r.   r   r   )r1   r2   est_enest_l1est_l2s        r$   test_l1_ratior*    s.   '3bt  DAq
    
c!Qii  TABD  	c!Qii  flFL999    
c!Qii  TABD  	c!Qii  flFL99999r&   c                     t          j        d          5  t           j                            d          } d}d}|                     ||f          }|d d d dfxx         dz  cc<   t          j        |                                          sJ t                                          |          }t          j        |                                          sJ |                     |          }t          j	        ||          d	k    
                    t           j                  }t          t          j        |          dd
g           t          ddd          }|                    ||           t          j        |j                                                  sJ d}t#          j        t&          |          5  |                    ||           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nraiser`  r   r   r   r  r^   gu <7~rk   r]   r  r   r  )rv   r   r   zwFloating-point under-/overflow occurred at epoch #.* Scaling input data with StandardScaler or MinMaxScaler might help.r   )ro   r]  r   r   r  isfiniter`  r   r  rs   astypeint32r   r   rR   r.   r   r   r   r   )	r  r  r  r1   X_scaledground_truthr2   model	msg_regxps	            r$   test_underflow_or_overlowr5    sZ   		!	!	! " "i##A&&	
JJY
3J44	!!!RaR%E{1~~!!#####
  >>//22{8$$((***** zzzz22VHl++c199"(CC29Q<<!Q000CoLLL 			(A{5;''++----- 	
 ]:Y777 	 	IIaOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	C" " " " " " " " " " " " " " " " " "s6   F%G6;GG6G"	"G6%G"	&G66G:=G:c                  >   t          ddddddddd 		  	        } t          j        d
          5  |                     t          j        t          j                   d d d            n# 1 swxY w Y   t          j        | j                  	                                sJ d S )Nr   r   Tr  rZ  rn   r   r   )	r   r   r   r   r  rv   r   r   r   r,  r-  )
rR   ro   r]  r.   r   r   r   r.  r   r`  )r3  s    r$   'test_numerical_stability_large_gradientr7    s     
 
 
E 
	!	!	! * *		$)T[)))* * * * * * * * * * * * * * *;u{##'')))))))s   +A%%A),A)r   )r   r   r  c           	      8   t          ddd| dd d          }t          j        d          5  |                    t          j        t          j                   d d d            n# 1 swxY w Y   t          |j        t          j	        |j                             d S )	Ng     j@r   r  Fr  )rv   r   r   r   r   r   r   r,  r-  )
rR   ro   r]  r.   r   r   r   r   r   
zeros_like)r   r3  s     r$   test_large_regularizationr:    s        E 
	!	!	! * *		$)T[)))* * * * * * * * * * * * * * *ek2=+E+EFFFFFs   +A##A'*A'c                     t                                          t          j                  } t          j        dk    }d}t          d d|          }|                    | |           ||j        k    sJ d}t          dd|          }|                    | |           ||j        k    sJ |j        dk    sJ t          dd|          }|                    | |           |j        |j        k    sJ |j        dk    sJ t          dd	d
          }d}t          j	        t          |          5  |                    | |           d d d            n# 1 swxY w Y   |j        dk    sJ d S )Nr]   r   r   )r   r   r   rk  r    r  r_   r   )r   r   r   zhMaximum number of iteration reached before convergence. Consider increasing max_iter to improve the fit.r   )r   r  r   r   r   rR   r.   r   r   warnsr	   )r1   r2   r   model_0model_1model_2model_3warning_messages           r$   test_tol_parameterrB    s   &&ty11AqA H1xHHHGKK1w&&&& HHEEEGKK1go%%%%?Q !hGGGGKK1?W_,,,,?Q QDqAAAG	 
 
(	@	@	@  Aq              ?as   -EEEc                     |D ]O\  }}}}t          |                     ||          |           t          |                     ||          |           Pd S r*   )r   py_losspy_dloss)loss_functioncasesr   r2   expected_lossexpected_dlosss         r$   _test_loss_commonrJ  B  sm     05 J J+1m^M11!Q77GGGM221a88.IIIIJ Jr&   c                      t          j        d          } g d}t          | |           t          j        d          } g d}t          | |           d S )Nrm   ))g?rm   rk   rk          r   rk   rk   )rm   rm   rk   r   )r   r   rk   rm   )r`   rm   r`   r   )r  r         @rm   )ra   r   r`   rm   )rk   rm   r]   r   rk   )rm   rm   rk   rk   )rY  r   rk   rk   )rk   rm   rk   r   )rk   r   rk   rm   )r`   r   r`   rm   )r  r   r  rm   )ra   rm   r`   r   )r   rm   rm   r   )sgd_fastHingerJ  r   rG  s     r$   test_loss_hingerS  J  sp     >#D
 
 
E dE""" >#D
 
 
E dE"""""r&   c                  V    t          j        d          } g d}t          | |           d S )Nrm   )rO  rL  )rm   r         @rU  r   rm   rU        )r`   rm   g      ?r   r`   r   g      @rN  )rP  SquaredHingerJ  rR  s     r$   test_gradient_squared_hingerZ  k  s;     %%D  E dE"""""r&   c                  T    t          j                    } g d}t          | |           d S )N)rO  )r   r   rk   rk   )r  rm   rk   rk   )rk   rm   rm   rM  rV  rX  )rM  rm      rW  )g      rm      rW  )rP  ModifiedHuberrJ  rR  s     r$   test_loss_modified_huberr_  z  s9    !##D
 
 
E dE"""""r&   c                  V    t          j        d          } g d}t          | |           d S )Nr  )rk   rk   rk   rk   r  rk   rk   rk   gffffff rM  rk   rk   gffffff@rN  rk   rk   )皙@r  r  rm   )r  r   333333@rm   )r  re  r  r   )rM  rm   rf  r   )rP  EpsilonInsensitiverJ  rR  s     r$   test_loss_epsilon_insensitiverh    s;    &s++D
 
 
E dE"""""r&   c                  V    t          j        d          } g d}t          | |           d S )Nr  )ra  rb  rc  rd  )re  r  rn   r[  )r  r   R @g333333@)r  re  rn   gɿ)rM  rm   rj  g333333)rP  SquaredEpsilonInsensitiverJ  rR  s     r$   %test_loss_squared_epsilon_insensitiverl    s;    -c22D
 
 
E dE"""""r&   c            	      4   t          ddddddd          } |                     t          j        t          j                   | j        | j        k    sJ | j        | j        dz   k     sJ |                     t          j        t          j                  d	k    sJ d S )
Nr   r   Tr   r   r^   )rv   r   r   r   r   r   rC  r  rf   )rR   r.   r   r   r   r   r   r  )r   s    r$   0test_multi_thread_multi_class_and_early_stoppingrn    s       C GGDIt{###;-----;-2222299TY,,s222222r&   c                      t          j        ddd          g dd} t          dddd	
          }t          || ddd	          }|                    t
          j        t
          j                   |j        dk    sJ d S )Nrl  r'  )r    r   r  )rv   r   rn   r   Tr   )r   r   r   r   r    r^   )n_iterrC  r   rf   )	ro   logspacerR   r   r.   r   r   r   best_score_)
param_gridr   searchs      r$   -test_multi_core_gridsearch_and_early_stoppingrv    s    
 RA&&'KK J
 D4ST
U
U
UCZ!RSTTTF
JJty$+&&&######r&   backend)lokymultiprocessing	threadingc                    t           j                            d          }t          j        dddd|          }|                    dd          }t          dd	d
          }|                    ||           t          ddd
          }t          j        |           5  |                    ||           d d d            n# 1 swxY w Y   t          |j
        |j
                   d S )Nr   r  rk  g{Gz?csr)densityrL  r   r  r   r]   )r   rC  r   rl  )rw  )ro   r   r   r+   choicerR   r.   joblibparallel_backendr   r   )rw  r   r1   r2   clf_sequentialclf_parallels         r$   'test_SGDClassifier_fit_for_all_backendsr    s'     9((,,L
 		#tT%lSSSAB$$A #DLLLNq! !$qrJJJL		 	1	1	1  A              n2L4FGGGGGs   CCC	Estimatorc                 v   | t           j        k    rt          j        |          \  }}nt          j        |          \  }} | |d          }t          j        t                    5  |                    ||          j	        }|j
        dk    sJ 	 d d d            n# 1 swxY w Y    | |d          }t          j        t                    5  |                    ||          j	        }|j
        dk    sJ 	 d d d            n# 1 swxY w Y   t          ||            | |dz   d          }t          j        t                    5  |                    ||          j	        }|j
        dk    sJ 	 d d d            n# 1 swxY w Y   t          j        ||z
                                            dk    sJ d S )N)r   r]   )r   r   rm   )r   rD   r   make_regressionr&  r   r<  r	   r.   r   r   r   ro   absr  )r  global_random_seedr1   r2   estcoef_same_seed_acoef_same_seed_bcoef_other_seeds           r$   test_sgd_random_stater    s    L---'5GHHH11+9KLLL1
 )!3a
@
@
@C	(	)	)    771a==.{a                              )!3a
@
@
@C	(	)	)    771a==.{a                              $&6777 )!3a!7!
D
D
DC	(	)	)    ''!Q---{a                              6"_45599;;cAAAAAAs6   ()BB"%B")DD	D		)E??FFc                    t           j        t           j        }}|j        d         }d}t	          j        ddd|          }t          t          j                  }| 	                    t          d|           |
                    ||           |j        d         d	d
         \  }}|j        d         t          ||z            k    sJ |j        d         t          ||z            k    sJ dS )ziTest that data passed to validation callback correctly subsets.

    Non-regression test for #23255.
    r   r[  Tr   r   )r   r   r   r   )side_effect_ValidationScoreCallbackr]   r_   N)r   r   r   rq   r   rR   r   r   r  setattrr.   	call_argsr  )	monkeypatchr1   r   r  r   r   mockX_valy_vals	            r$   &test_validation_mask_correctly_subsetsr    s    
 9dkqA
I

$/	  C 0IJJJD,.H$OOOGGAqMMM>!$QqS)LE5;q>S-@!@AAAAAA;q>S-@!@AAAAAAAAr&   c                  ,   t           j        t           j        }} t          j        |          }d}t          j        d|d          }d}t          j        t          |          5  |
                    | ||           d d d            d S # 1 swxY w Y   d S )Nr   Tr   )r   r   r   z\The sample weights for validation set are all zero, consider using a different random state.r   r  )r   r   r   ro   r9  r   rR   r   r   r   r.   )r1   r   r  r   r   error_messages         r$   (test_sgd_error_on_zero_validation_weightr  0  s     9dkqAM!$$M

$1DST  C
	#  
z	7	7	7 3 31M2223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s   #B		BBc                 Z     | d                               t          t                     dS )z!non-regression test for gh #25249r]   )verboseN)r.   r1   r   )r  s    r$   test_sgd_verboser  C  s-     IaQ"""""r&   SGDEstimator	data_typec                     t                               |          }t          j        t          |          } |             }|                    ||           |j        j        |k    sJ d S )Ndtype)r1   r/  ro   r   r   r.   r   r  )r  r  _X_Y	sgd_models        r$   test_sgd_dtype_matchr  I  sd     
)		B	!9	%	%	%BIMM"b? I------r&   c                    t                               t          j                  }t          j        t
          t          j                  }t                               t          j                  }t          j        t
          t          j                  } | d          }|                    ||            | d          }|                    ||           t          |j	        |j	                   d S )Nr  r  )r   )
r1   r/  ro   float64r   r   float32r.   r   r   )r  X_64Y_64X_32Y_32sgd_64sgd_32s          r$   test_sgd_numerical_consistencyr  ]  s     88"*8%%D8ARZ(((D88"*8%%D8ARZ(((D\2&&&F
JJtT\2&&&F
JJtTFL&,/////r&   c                      | d          }t          j        t          d          5  |                    t          t
                     d d d            d S # 1 swxY w Y   d S )Nr   r   z	average=0r   )r   r<  FutureWarningr.   r1   r   )r  r  s     r$   *test_passive_aggressive_deprecated_averager  y  s    
)A


C	m;	7	7	7  1                 s   !AAAc                  V    t                      } t          |           j        dk    sJ dS )z}Check that SGDOneClassSVM has the correct estimator type.

    Non-regression test for if the mixin was not on the left.
    outlier_detectorN)rM   r   estimator_type)	sgd_ocsvms    r$   %test_sgd_one_class_svm_estimator_typer    s2    
   II-1CCCCCCCr&   )Nrk   )rs  unittest.mockr   r  numpyro   r   scipy.sparsesparser+   sklearnr   r   r   sklearn.baser   r   sklearn.exceptionsr	   sklearn.kernel_approximationr
   sklearn.linear_modelr   rP  r   sklearn.model_selectionr   r   r   sklearn.pipeliner   sklearn.preprocessingr   r   r   r   sklearn.svmr   sklearn.utilsr   sklearn.utils._testingr   r   r   r   r%   rR   r(   rD   rB   rM   rK   rV   rX   rZ   r   r1   r   r   r   r(  r4  r5  r6  r   r   rn  rp  	load_irisr   r  r  true_result5r   r   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r  rp   r
  r  r  r!  r$  r*  r/  r9  r?  rA  rD  rG  rT  rh  rx  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r#  r*  r5  r7  r:  rB  rJ  rS  rZ  r_  rh  rl  rn  rv  r  r  r  r  r  r  r  r  r  r  r  r!   r&   r$   <module>r     s                      3 3 3 3 3 3 3 3 3 3 - - - - - - - - 1 1 1 1 1 1 1 1 1 1 1 1 6 6 6 6 6 6 5 5 5 5 5 5         
 + * * * * * S S S S S S S S S S S S # # # # # # " " " " " "             ( ( ( ( (<5 ( ( ($Q Q Q Q Q,3 Q Q QS S S S SL7 S S S0 0 0
/ / /
1 1 1
* * *
) ) )
+ + + BHr2hR2r(QFQFQFCDDBHr2hAA'((ii RX	Q		s	
A	s	c
	R	
D		
B
  Wq[E7Q;'Q.RXc{QFQG,--&&& RX	  RX&&&'' RX                  	  RX&&&''x RXBx"bB8aVaVaVDEEyy. . . .D6 6 60 m0,@RS  PPPQQ& & RQ & m0,@RS    m0,@RS 
. 
. 
. 
 
. .
 
.$ 
 
4 4
 
4$ m0,@RS (H (H (HV m0,@RS & & & m0,@RS ' ' ' m0,@RS &/ &/ &/R m0,@RS = = =$ m0,@RS    =2E"FGG8 8 HG8" m0.BVW 4 4 4 	)828D>>:;	/$@A	-$89	xrx~~>?	 . . . m0,@RS 5 5 5 	)1-.	/34	-+,	q12	 & & & =2E"FGGG G HGGB =2E"FGG5 5 HG5 =2E"FGG    HG  =2E"FGGO O HGO  =2E"FGG+ + HG+ =2E"FGGN N HGN6 =2E"FGG+ + HG+ =2E"FGG+ + HG+ =2E"FGG= = HG=( =2E"FGG? ? HG?B =2E"FGGD7 D7 HGD7N =2E"FGG!  !  HG! H =2E"FGGC C HGC$ =2E"FGGB B HGB  =2E"FGG  HG =2E"FGG0 0 HG0$ =2E"FGG+B +B HG+B\ =2E"FGGC C HGC" m0.BVW 2 2 2 =2E"FGG    HG  =2E"FGG, , HG,( =2E"FGG  HG" =2E"FGG( ( HG( =2E"FGG  HG =2E"FGGPPPQQ> > RQ HG>" =2E"FGG"/ "/ HG"/J =2E"FGG/ / HG/ =2E"FGG  HG <1C"DEE( ( FE( <1C"DEEG G FEG@ <1C"DEEJ J FEJ@ <1C"DEEG G FEG4 <1C"DEE  FE. <1C"DEE    FE F <1C"DEE  FE. <1C"DEEQ Q FEQB <1C"DEE  FE  <1C"DEEPPPQQ: : RQ FE: <1C"DEE1 1 FE1#/ #/ #/ #/L >3G"HII, , JI,, >3G"HIIPPPQQ, , RQ JI, >3G"HII
. 
. JI
. >3G"HII! ! JI!& >3G"HIIPPPQQ) ) RQ JI)& >3G"HII2 2 JI2@ >3G"HII1 1 JI14 >3G"HII1 1 JI16 >3G"HII1 1 JI100 0 0,& & &R :  :  :F# # #L* * *& $>$>$>??G G @?G"!  !  ! HJ J J# # #B# # ## # #"# # #"# # #"3 3 3$$ $ $ $L$L$LMM H  H NM HF ,,l.GH  B  B  BFB B B03 3 3& }l&CDD# # ED#
 
 
 rz2:&>??. . @?
 
. 
 
0 0
 
0" }lN&STT  UTD D D D Dr&   