
    -i                    ^   S SK r S SKJr  S SKrS SKrS SKrS SKJr	  S SK
JrJrJr  S SKJrJr  S SKJr  S SKJr  S SKJr  S SKJr  S S	KJrJrJr  S S
KJr  S SKJ r J!r!J"r"J#r#  S SK$J%r%  S SK&J'r'  S SK(J)r)J*r*J+r+J,r,  S r- " S S\R\                  5      r/ " S S\R`                  5      r1 " S S\Rd                  5      r3S r.S r0S r2S r4S r5S r6\Rn                  " SS/SS/SS/SS/SS/SS//5      r8/ S Qr9\Rn                  " SS/SS/S!S//5      r:/ S"Qr;\Rn                  " SS/S#S$/S%S&/SS/S'S$/S&S&/SS/S S(/SS//	5      r<S)/S!-  S*/S!-  -   S+/S!-  -   r=\Rn                  " S%S$/SS/S S//5      r>/ S,Qr?\Rn                  " / S-Q/ S-Q/ S.Q/ S.Q/ S/Q/ S/Q/ S0Q/ S0Q/5      r@\Rn                  " / S1Q5      rA\Rn                  " / S2Q/ S3Q/ S4Q/ S5Q/ S6Q/ S7Q/ S8Q/ S9Q/5      rB\Rn                  " / S1Q5      rC\R                  " 5       rE\Rn                  " SS/SS/SS/SS/SS/SS//5      rF/ S QrG/ S:QrHSS; jrIS< rJ\R                  R                  S=\.\4\0\5/5      \R                  R                  S>/ S?Q5      S@ 5       5       rM\R                  R                  S=\.\4\0\5/5      SA 5       rN\R                  R                  S=\.\4\0\5/5      SB 5       rO\R                  R                  S=\.\4\0\5\2\6/5      SC 5       rP\R                  R                  S=\.\4\0\5\2\6/5      SD 5       rQ\R                  R                  S=\.\4\0\5/5      SE 5       rR\R                  R                  S=\.\4\0\5/5      SF 5       rS\R                  R                  S=\.\4\0\5/5      SG 5       rT\R                  R                  S=\.\4\0\5/5      SH 5       rU\R                  R                  S=\.\4\0\5/5      SI 5       rV\R                  R                  S=\.\4\0\5/5      SJ 5       rW\R                  R                  SK\.\0/5      \R                  R                  SL/ SMQ5      SN 5       5       rX\R                  R                  SK\.\4\0\5/5      SO 5       rY\R                  R                  S=\.\4/5      SP 5       rZ\R                  R                  S=\.\4\2\6/5      SQ 5       r[\R                  R                  SR\.SS\R                  " ST5      04\4SS\R                  " ST5      04\2SU\R                  " ST5      04\6SU\R                  " ST5      04/5      SV 5       r]\R                  R                  S=\.\4\0\5/5      SW 5       r^\R                  R                  SR\.SSS 04\4SSS 04\2SUS 04\6SUS 04/5      SX 5       r_\R                  R                  S=\.\4/5      SY 5       r`\R                  R                  S=\.\4/5      SZ 5       ra\R                  R                  S=\.\4/5      S[ 5       rb\R                  R                  S=\.\4/5      S\ 5       rc\R                  R                  S=\.\4/5      S] 5       rd\R                  R                  S=\.\4/5      S^ 5       re\R                  R                  S=\.\4/5      S_ 5       rf\R                  R                  S=\.\4/5      S` 5       rg\R                  R                  S=\.\4/5      Sa 5       rh\R                  R                  S=\.\4/5      Sb 5       ri\R                  R                  S=\.\4/5      Sc 5       rj\R                  R                  S=\.\4/5      Sd 5       rk\R                  R                  S=\.\4/5      Se 5       rl\R                  R                  S=\.\4/5      Sf 5       rm\R                  R                  S=\.\4/5      Sg 5       rn\R                  R                  S=\.\4/5      Sh 5       ro\R                  R                  S=\.\4/5      Si 5       rp\R                  R                  S=\.\4/5      Sj 5       rq\R                  R                  S=\.\4\2\6/5      Sk 5       rr\R                  R                  S=\.\4/5      Sl 5       rs\R                  R                  S=\.\4/5      Sm 5       rt\R                  R                  S=\.\4/5      Sn 5       ru\R                  R                  S=\.\4/5      So 5       rv\R                  R                  S=\.\4/5      Sp 5       rw\R                  R                  S=\.\4/5      \R                  R                  S>/ S?Q5      Sq 5       5       rx\R                  R                  S=\.\4/5      Sr 5       ry\R                  R                  S=\.\4/5      Ss 5       rz\R                  R                  S=\.\4/5      St 5       r{\R                  R                  S=\0\5/5      Su 5       r|\R                  R                  S=\0\5/5      Sv 5       r}\R                  R                  S=\0\5/5      Sw 5       r~\R                  R                  S=\0\5/5      Sx 5       r\R                  R                  S=\0\5/5      Sy 5       r\R                  R                  S=\0\5/5      Sz 5       r\R                  R                  S=\0\5/5      S{ 5       r\R                  R                  S=\0\5/5      S| 5       r\R                  R                  S=\0\5/5      S} 5       r\R                  R                  S=\0\5/5      \R                  R                  S>/ S?Q5      S~ 5       5       r\R                  R                  S=\0\5/5      S 5       rSS jr\R                  R                  S=\2\6/5      S 5       r\R                  R                  S=\2\6/5      \R                  R                  S>/ S?Q5      S 5       5       r\R                  R                  S=\2\6/5      S 5       r\R                  R                  S=\2\6/5      S 5       r\R                  R                  S=\2\6/5      \R                  R                  S>/ S?Q5      S 5       5       r\R                  R                  S=\2\6/5      S 5       r\R                  R                  S=\2\6/5      S 5       r\R                  R                  S=\2\6/5      S 5       r\R                  R                  S=\2\6/5      S 5       rS rS rS rS rS r\R                  R                  S/ SQ5      S 5       rS rS rS rS rS rS rS rS rS r\R                  R                  S/ SQ5      S 5       r\R                  R                  SK\R\                  \R`                  /5      S 5       rS rS r\R                  R                  SK\.\0/5      S 5       r\R                  R                  S\.\4\0\5\2\6/5      \R                  R                  S\GRJ                  \GRL                  45      S 5       5       r\R                  R                  S\.\4\0\5\2\6/5      S 5       rS rg)    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                 H    SU ;  a  SU S'   SU ;  a  S U S'   SU ;  a  SU S'   g g )Nrandom_state*   tolmax_iter    kwargss    V/var/www/html/venv/lib/python3.13/site-packages/sklearn/linear_model/tests/test_sgd.py_update_kwargsr%       s<    V#!#~Fuz      c                   L   ^  \ rS rSrU 4S jrU 4S jrU 4S jrU 4S jrSrU =r	$ )_SparseSGDClassifierr   c                 X   > [         R                  " U5      n[        TU ]  " X/UQ70 UD6$ N)sp
csr_matrixsuperfitselfXyargskw	__class__s        r$   r.   _SparseSGDClassifier.fit+   s*    MM!w{1-$-"--r&   c                 X   > [         R                  " U5      n[        TU ]  " X/UQ70 UD6$ r*   )r+   r,   r-   partial_fitr/   s        r$   r8    _SparseSGDClassifier.partial_fit/   s+    MM!w"15$5"55r&   c                 N   > [         R                  " U5      n[        TU ]  U5      $ r*   )r+   r,   r-   decision_functionr0   r1   r5   s     r$   r;   &_SparseSGDClassifier.decision_function3   s!    MM!w(++r&   c                 N   > [         R                  " U5      n[        TU ]  U5      $ r*   )r+   r,   r-   predict_probar<   s     r$   r?   "_SparseSGDClassifier.predict_proba7   s!    MM!w$Q''r&   r!   )
__name__
__module____qualname____firstlineno__r.   r8   r;   r?   __static_attributes____classcell__)r5   s   @r$   r(   r(   *   s    .6,( (r&   r(   c                   &    \ rS rSrS rS rS rSrg)_SparseSGDRegressor<   c                 x    [         R                  " U5      n[        R                  R                  " XU/UQ70 UD6$ r*   )r+   r,   r   SGDRegressorr.   r0   r1   r2   r3   r4   s        r$   r.   _SparseSGDRegressor.fit=   s3    MM!((,,TaE$E"EEr&   c                 x    [         R                  " U5      n[        R                  R                  " XU/UQ70 UD6$ r*   )r+   r,   r   rK   r8   rL   s        r$   r8   _SparseSGDRegressor.partial_fitA   s3    MM!((44TaM$M"MMr&   c                 v    [         R                  " U5      n[        R                  R                  " X/UQ70 UD6$ r*   )r+   r,   r   rK   r;   r0   r1   r3   r4   s       r$   r;   %_SparseSGDRegressor.decision_functionE   s1    MM!((::4PTPRPPr&   r!   NrA   rB   rC   rD   r.   r8   r;   rE   r!   r&   r$   rH   rH   <   s    FNQr&   rH   c                   &    \ rS rSrS rS rS rSrg)_SparseSGDOneClassSVMK   c                 v    [         R                  " U5      n[        R                  R                  " X/UQ70 UD6$ r*   )r+   r,   r   SGDOneClassSVMr.   rQ   s       r$   r.   _SparseSGDOneClassSVM.fitL   s1    MM!**..tDDDDr&   c                 v    [         R                  " U5      n[        R                  R                  " X/UQ70 UD6$ r*   )r+   r,   r   rX   r8   rQ   s       r$   r8   !_SparseSGDOneClassSVM.partial_fitP   s1    MM!**66tLLLLr&   c                 v    [         R                  " U5      n[        R                  R                  " X/UQ70 UD6$ r*   )r+   r,   r   rX   r;   rQ   s       r$   r;   '_SparseSGDOneClassSVM.decision_functionT   s1    MM!**<<TRtRrRRr&   r!   NrS   r!   r&   r$   rU   rU   K   s    EMSr&   rU   c                  D    [        U 5        [        R                  " S0 U D6$ Nr!   )r%   r   SGDClassifierr"   s    r$   r`   r`   Y   s    6%%///r&   c                  D    [        U 5        [        R                  " S0 U D6$ r_   )r%   r   rK   r"   s    r$   rK   rK   ^   s    6$$.v..r&   c                  D    [        U 5        [        R                  " S0 U D6$ r_   )r%   r   rX   r"   s    r$   rX   rX   c   s    6&&000r&   c                  .    [        U 5        [        S0 U D6$ r_   )r%   r(   r"   s    r$   SparseSGDClassifierrd   h   s    6)&))r&   c                  .    [        U 5        [        S0 U D6$ r_   )r%   rH   r"   s    r$   SparseSGDRegressorrf   m   s    6(((r&   c                  .    [        U 5        [        S0 U D6$ r_   )r%   rU   r"   s    r$   SparseSGDOneClassSVMrh   r   s    6 *6**r&         )rk   rk   rk   rl   rl   rl      )rk   rl   rl   g            ?g      g      ?g      ?      onetwothree)rp   rq   rr   )rk   rk   r   r   r   r   )r   r   rk   r   r   r   )r   r   r   r   rk   rk   )r   r   r   rk   r   r   )rk   rk   rk   rk   rl   rl   rl   rl   )rk   ?皙?r   r   r   )rk   zG?g\(\?r   r   r   )rk   Q?g)\(?r   r   r   )rk   Q?Gz?r   r   r   )r   r   r   g{Gz?rw   rk   )r   r   r   gHzG?ru   rk   )r   r   r   rw   gffffff?rk   )r   r   r   g(\?rk   rk   )r   rk   rk   c                    Uc$  [         R                  " UR                  S   5      nOUn[         R                  " UR                  S   5      nUn	Sn
SnU [        [        4;   a  Sn[        U5       Hd  u  p[         R                  " X5      nX-  nXU   -
  nUSX4-  -
  -  nXsU-  U-  * -  nXU-  * U-  -  n	X-  nX-  nXS-   -  nX-  n
X-  n
XS-   -  n
Mf     X4$ )Nrk                 ?{Gz?)npzerosshaperd   rf   	enumeratedot)klassr1   r2   etaalphaweight_initintercept_initweightsaverage_weights	interceptaverage_interceptdecayientrypgradients                   r$   asgdr      s   ((1771:&hhqwwqz*OIE $&899aLFF5"	t83#+&&8^e+,,X~&..	"s7"&W$ !  --r&   c                 2   U " SSSUS9nUR                  X5        U " SSSUS9nUR                  XUR                  R                  5       UR                  R                  5       S9  U " SSSSUS9nUR                  X5        UR                  UR                  :X  d   e[        UR                  UR                  5        UR                  SS9  UR                  X5        UR                  UR                  :X  d   e[        UR                  UR                  5        g )	Nr|   F)r   eta0shufflelearning_rateMbP?	coef_initr   T)r   r   r   
warm_startr   r   )r.   coef_copy
intercept_t_r   
set_params)r   r1   Ylrclfclf2clf3s          r$   _test_warm_startr      s    
duB
GCGGAMu4bIDHHQSYY^^-cnn>Q>Q>SHT uRD 	HHQN77cffdjj#))4OO%O HHQN77dggdjj$**5r&   r   r   )constantoptimal
invscalingadaptivec                 0    [        U [        [        U5        g r*   )r   r1   r   r   r   s     r$   test_warm_startr      s    
 UAq"%r&   c                 `   U " SSS9nUR                  [        [        5        [        R                  " [        5      S S 2[        R
                  4   n[        R                  X"4   n[        R                  " [        5         UR                  [        U5        S S S 5        g ! , (       d  f       g = f)Nr|   Fr   r   )
r.   r1   r   r}   arraynewaxisc_pytestraises
ValueError)r   r   Y_s      r$   test_input_formatr      sk    
 dE
*CGGAqM	!Q

]	#B	rvB	z	"2 
#	"	"s   ?B
B-c                     U " SSS9n[        U5      nUR                  SS9  UR                  [        [        5        U " SSS9nUR                  [        [        5        [        UR                  UR                  5        g )Nr|   l1)r   penaltyl2)r   )r   r   r.   r1   r   r   r   r   r   r   s      r$   
test_cloner     s_    
 dD
)C
*CNN4N GGAqMtT*DHHQNsyy$**-r&   c                    U " SSS9nUR                  [        [        5        [        US5      (       d   e[        US5      (       d   e[        US5      (       d   e[        US5      (       d   eU " 5       nUR                  [        [        5        [        US5      (       a   e[        US5      (       a   e[        US5      (       a   e[        US5      (       a   eg )NTr|   )averager   _average_coef_average_intercept_standard_intercept_standard_coef)r.   r1   r   hasattrr   r   s     r$   test_plain_has_no_average_attrr     s     4
(CGGAqM3((((3,----3-....3())))
'CGGAqMsO,,,,s01111s12222s,-----r&   c                    U " SS9nU " 5       n[        S5       H  n[        U5      (       ad  UR                  [        [        [
        R                  " [        5      S9  UR                  [        [        [
        R                  " [        5      S9  Mw  UR                  [        [        5        UR                  [        [        5        M     [        UR                  UR                  SS9  U [        [        [        [        4;   a   [        UR                  UR                  SS9  g U [        [         4;   a!  [#        UR$                  UR$                  5        g g )NiX  r   d   classes   decimal)ranger   r8   r1   r   r}   uniquer   r   r`   rd   rK   rf   r   r   rX   rh   r   offset_)r   clf1r   _s       r$   %test_late_onset_averaging_not_reachedr   :  s     D7D3ZQ299Q<8Q299Q<8Q"Q"  djj$**bA 3\CUVVDOOT__bI	>#78	8dll3 
9r&   c           
         SnSn[         R                  " [        5      nSX3S:H  '   SX3S:H  '   U " SSS	UUSS
S9nU " S
SS	UUSS
S9nUR                  [        U5        UR                  [        U5        [        U [        UUUUR                  R                  5       UR                  S9u  pg[        UR                  R                  5       UR                  5       SS9  [        UR                  USS9  g )Nr   -C6?      rk   r{   rl      r   squared_errorF)r   r   lossr   r   r   r   )r   r   r   r   )r}   r   r   r.   r1   r   r   ravelr   r   r   )r   r   r   Y_encoder   r   r   r   s           r$   !test_late_onset_averaging_reachedr   W  s     DExx{H"H]!H] D  D 	HHQHHQ)-	JJ$$&*&O djj..0/2G2G2ISUV):BGr&   c                     [         R                  [         R                  S:     n[         R                  [         R                  S:     nS H.  nSnU " USUS9R                  X5      nUR                  U:  a  M.   e   g )Nr   TF  r   )early_stoppingr   r   )irisdatatargetr.   n_iter_)r   r1   r   r   r   r   s         r$   test_early_stoppingr     so     			$++/"ADKK!O$A'>thOSS
 {{X%%% (r&   c                    U " SSSSS9nUR                  [        R                  [        R                  5        U " SSSSS9nUR                  [        R                  [        R                  5        UR                  UR                  :  d   eg )Nr   r|   r   r   )r   r   r   r   r   )r.   r   r   r   r   )r   r   r   s      r$   "test_adaptive_longer_than_constantr     sf     z$MDHHTYY$z$MDHHTYY$<<$,,&&&r&   c                 x   [         R                  [         R                  p!SnSnSnSnU " S[        R                  R                  U5      USSS UUS9nUR                  X5        UR                  U:X  d   eU " S[        R                  R                  U5      SSS UUS	9n[        U5      (       a
  [        X4S
9n	O	[        X4S
9n	[        U	R                  X5      5      u  p[        R                  " U
5      n
UR                  X   X*   5        UR                  U:X  d   e[        UR                  UR                  5        g )N皙?r   F
   Tr   r|   )r   r   validation_fractionr   r   r   r   r   )r   r   r   r   r   r   r   )	test_sizer   )r   r   r   r}   randomRandomStater.   r   r   r   r   nextsplitsortr   r   )r   r1   r   r   seedr   r   r   r   cv	idx_trainidx_vals               r$   )test_validation_set_not_used_for_trainingr     s"    99dkkqDGHYY**40/ 	D 	HHQN<<8###YY**40 D T#.AU$7Kbhhqn-I	"IHHQ\1<(<<8###tzz4::.r&   c                     [         R                  [         R                  p!S HJ  nS Vs/ s H%  nU " UUSSS9R                  X5      R                  PM'     nn[        U[        U5      5        ML     g s  snf )Nr   )rl   rm   r   r   r   )r   n_iter_no_changer   r   )r   r   r   r.   r   r   sorted)r   r1   r   r   r   n_iter_lists         r$   test_n_iter_no_changer     s     99dkkq' %/

 %/  -!1	 SYW %/ 	 

 	;{(;< (

s   ,A1c                     U " SSS9n[         R                  " [        5         UR                  [        [
        5        S S S 5        g ! , (       d  f       g = f)NTrx   )r   r   )r   r   r   r.   X3Y3r   s     r$   )test_not_enough_sample_for_early_stoppingr     s5    
 t
>C	z	"B 
#	"	"s   A
A	Estimatorl1_ratio)r   gffffff?rk   c                     U " SSSS9R                  [        [        5      nU " SUSS9R                  [        [        5      n[        UR                  UR                  5        g)z@Check that l1_ratio is not used when penalty is not 'elasticnet'r   Nr   )r   r   r   )r.   r1   r   r   r   )r   r   r   r   s       r$   test_sgd_l1_ratio_not_usedr    sL     TDqAEEaKDTH1EII!QODDJJ

+r&   c                     U " SS S9n[         R                  " [        SS9   UR                  [        [
        5        S S S 5        g ! , (       d  f       g = f)N
elasticnet)r   r   z1l1_ratio must be set when penalty is 'elasticnet'matchr   r   r   r.   r1   r   )r   r   s     r$   #test_sgd_failing_penalty_validationr    sA     L4
8C	M
 	1
 
 
   A
Ac           
          S HK  nU " SSSUSSS9nUR                  [        [        5        [        UR	                  [
        5      [        5        MM     g )N)hingesquared_hingelog_lossmodified_huberr   r|   Tr   )r   r   fit_interceptr   r   r   )r.   r1   r   r   predictTtrue_result)r   r   r   s      r$   test_sgd_clfr    sM     I
 	13;;q>;7 Ir&   c                     [         R                  " [        SS9   U " 5       R                  [        [
        [        R                  " S5      S9  SSS5        g! , (       d  f       g= f)z1Check that the shape of `coef_init` is validated.z)Provided coef_init does not match datasetr  rm   r   N)r   r   r   r.   r1   r   r}   r~   r   s    r$   test_provide_coefr    s<    
 
z)T	UAqBHHTN3 
V	U	Us   3A
A$zklass, fit_paramsr   r  offset_initc                     U " 5       n[         R                  " [        SS9   UR                  " [        [
        40 UD6  SSS5        g! , (       d  f       g= f)z:Check that `intercept_init` or `offset_init` is validated.zdoes not match datasetr  Nr  )r   
fit_paramssgd_estimators      r$   test_set_intercept_offsetr    s<     GM	z)A	B!Q-*- 
C	B	Bs   A
Ac                     Sn[         R                  " [        US9   U " SS9R                  [        [
        5        SSS5        g! , (       d  f       g= f)zKCheck 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   r8   r1   r   )r   err_msgs     r$   (test_sgd_early_stopping_with_partial_fitr   -  s9     @G	z	1T"..q!4 
2	1	1s   A
Ac                 F    U " 5       R                   " [        [        40 UD6  g)z`Check that we can pass a scaler with binary classification to
`intercept_init` or `offset_init`.N)r.   X5Y5)r   r  s     r$    test_set_intercept_offset_binaryr$  9  s     
GKKB%*%r&   c                    SnSnSnSn[         R                  R                  S5      nUR                  X44S9nUR                  US9nU " SSUUS	S
S	SS9n[         R                  " Xg5      n	[         R
                  " U	5      n	UR                  Xi5        [        XXU5      u  pU
R                  S
S5      n
[        UR                  U
SS9  [        UR                  USS9  g )N皙?       @   r   r   sizer   r   Trk   Fr   r   r   r   r  r   r   r   rj      r   )r}   r   r   normalr   signr.   r   reshaper   r   r   r   )r   r   r   	n_samples
n_featuresrngr1   wr   r2   r   r   s               r$   &test_average_binary_computed_correctlyr4  H  s     CEIJ
))


"C

/
0A



#A
 	C 	qA

AGGAM)-e)F&O%--a4Ocii"E(92Fr&   c                     U " 5       R                  [        [        5      nU " 5       R                  [        [        UR                  S9  U " 5       R                  [        [
        5      nU " 5       R                  [        [
        UR                  S9  g )Nr   )r.   r"  r#  r   r1   r   r   s     r$   test_set_intercept_to_interceptr7  j  sX     '++b"
C	GKKBs~~K6
'++a
C	GKK1S^^K4r&   c                     U " SSS9n[         R                  " [        5         UR                  [        [
        R                  " S5      5        S S S 5        g ! , (       d  f       g = f)Nr|   r(  r   r   	   )r   r   r   r.   X2r}   onesr   s     r$   test_sgd_at_least_two_labelsr=  t  s>     dR
(C	z	"BGGAJ 
#	"	"s   +A
A$c                     Sn[         R                  " [        US9   U " SS9R                  [        [
        [        R                  " [
        5      S9  S S S 5        g ! , (       d  f       g = f)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   r8   r1   r   r}   r   )r   regexs     r$   &test_partial_fit_weight_class_balancedrB  |  sJ    	 
 
z	/:&221a12N 
0	/	/s   6A
A)c                 D   U " SSS9R                  [        [        5      nUR                  R                  S:X  d   eUR
                  R                  S:X  d   eUR                  SS//5      R                  S:X  d   eUR                  [        5      n[        U[        5        g )Nr|   r(  r9  rm   rl   r  r   rk   rm   r.   r;  Y2r   r   r   r;   r  T2r   true_result2r   r   preds      r$   test_sgd_multiclassrL    s     dR
(
,
,R
4C99??f$$$>>4'''  1a&*00F:::;;r?Dt\*r&   c                    SnSnU " SSUUSSSSS9n[         R                  " [        5      nUR                  [        U5        [         R
                  " U5      n[        U5       Hq  u  pg[         R                  " UR                  S	   5      nS
XU:g  '   [        U [        XU5      u  p[        XR                  U   SS9  [        XR                  U   SS9  Ms     g )Nr   r|   r   r   Trk   Fr+  r   rj   r   r   )r}   r   rG  r.   r;  r   r   r<  r   r   r   r   r   r   )r   r   r   r   np_Y2r   r   cly_iaverage_coefr   s              r$   test_sgd_multiclass_averagerR    s    
CE
 	C HHRLEGGBiiG7#ggekk!n%RK*.ub#E*J'!,		!bI-~~a/@"M $r&   c                 \   U " SSS9nUR                  [        [        [        R                  " S5      [        R                  " S5      S9  UR
                  R                  S:X  d   eUR                  R                  (       d   S5       eUR                  [        5      n[        U[        5        g )Nr|   r(  r9  rD  rm   r   r  )r.   r;  rG  r}   r~   r   r   r   r  rH  r   rI  rJ  s      r$   "test_sgd_multiclass_with_init_coefrT    sz     dR
(CGGBbhhv.rxx{GK99??f$$$>>%%;;r?Dt\*r&   c                 F   U " SSSS9R                  [        [        5      nUR                  R                  S:X  d   eUR
                  R                  S:X  d   eUR                  SS//5      R                  S:X  d   eUR                  [        5      n[        U[        5        g )	Nr|   r(  rl   )r   r   n_jobsrD  r  r   rE  rF  rJ  s      r$   test_sgd_multiclass_njobsrW    s     dR
2
6
6r2
>C99??f$$$>>4'''  1a&*00F:::;;r?Dt\*r&   c                 l   U " 5       n[         R                  " [        5         UR                  [        [
        [        R                  " S5      S9  S S S 5        U " 5       R                  [        [
        [        R                  " S5      S9nU " 5       n[         R                  " [        5         UR                  [        [
        [        R                  " S5      S9  S S S 5        U " 5       R                  [        [
        [        R                  " S5      S9ng ! , (       d  f       N= f! , (       d  f       NR= f)N)rl   rl   r  rD  rk   r6  r  )r   r   r   r.   r;  rG  r}   r~   r   s     r$   test_set_coef_multiclassrZ    s    
 'C	z	"B"((6"23 
# '++b"(8+
9C 'C	z	"Brxx~6 
# '++b"RXXd^+
<C 
#	" 
#	"s   .D+.D%
D"%
D3c                 b   [         R                  R                   GHn  n[        US9nUS;   a(  [        US5      (       d   e[        US5      (       d   eM;  SR	                  U5      n[        US5      (       a   e[        US5      (       a   e[
        R                  " [        SS9 nUR                    S S S 5        [        WR                  R                  [        5      (       d   eU[        UR                  R                  5      ;   d   e[
        R                  " [        SS9 nUR                    S S S 5        [        UR                  R                  [        5      (       d   eU[        UR                  R                  5      ;   a  GMo   e   g ! , (       d  f       N= f! , (       d  f       Nu= f)	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   r`   loss_functionsr   formatr   r   AttributeErrorr?   
isinstancevalue	__cause__strr]  )r   r   r   	inner_msg	exec_infos        r$   $test_sgd_predict_proba_method_accessrg    sd    **99&11300003 34444OVVI sO4444s$78888&H!!
 ioo77HHHHIOO$=$= >>>>&L%% ioo77HHHHIOO$=$= >>>>1 :  s   &F$F 
F	 
F.	c                    [        SSSS S9R                  [        [        5      n[	        US5      (       a   e[	        US5      (       a   eS H  nU " USSS9nUR                  [        [        5        UR                  S	S
//5      nUS   S:  d   eUR                  SS//5      nUS   S:  d   e[        R                  " SS9   UR                  S	S
//5      nUS   US   :  d   eUR                  SS//5      nUS   US   :  d   e S S S 5        M     U " SSSS9R                  [        [        5      nUR                  SS/SS//5      nUR                  SS/SS//5      n[        [        R                  " USS9[        R                  " USS95        [        US   R                  5       S5        [        R                   " US   S:  5      (       d   eUR                  SS//5      nUR                  SS//5      n[        [        R"                  " US   5      [        R"                  " US   5      5        UR                  S	S
//5      nUR                  S	S
//5      n[%        [        R&                  " U5      U5        UR                  SS//5      nUR                  SS//5      n[%        [        R&                  " U5      U5        U " SSSS9nUR                  [        [        5        UR                  S	S
//5      nUR                  S	S
//5      nU [(        :w  a/  [        R                  " USS9[        R                  " USS9:X  d   eO.[        R*                  " USS9[        R*                  " USS9:X  d   e[        R-                  SS9nUR                  U/5      n[        R                   " US:  5      (       a&  UR                  U/5      n[%        US   S/S	-  5        g g ! , (       d  f       GM  = f)Nr  r|   r   )r   r   r   r   r?   r]  r\  )r   r   r   rm   rl   r   rk   rn   rj   ignore)divide)r   r   r  r&  皙333333?皙?rk   )axisr   r  gUUUUUU?)r`   r.   r1   r   r   r?   r}   errstater]  r;  rG  r;   r   argmaxr   sumallargsortr   logrd   argminmean)r   r   r   r   dlpxs          r$   test_sgd_probar{    s    WD24
H
L
LQPQ
RCsO,,,,s/0000 /TB711vh'w}}Bxj)w}} [[)%%1vh/AT7QtW$$$%%Bxj1AT7QtW$$$	 *) /" Ztb
9
=
=b"
ECT{S#J78AC;c
34Aryy+RYYqq-AB!
A&66!A$!)B8*%ABxj)Arzz!A$'AaD)9:			Ax	(BAq6(#AbffQi,			Rz	*BB8*%AbffQi,
 %TB
?CGGBO1vh'AAq6(#A##yy#ryy';;;;yy#ryy';;;;
 	
AAqc"A	vva"f~~qc"!!A$	A6 Y *)s   AO##
O3	c           	      ,   [        [        5      n[        R                  R	                  S5      n[        R
                  " U5      nUR                  U5        [        US S 24   n[        U   nU " SSSSS SS9nUR                  XE5        [        UR                  SSS	24   [        R                  " S
5      5        UR                  U5      n[        Xu5        UR                  5         [        R                  " UR                  5      (       d   eUR                  U5      n[        Xu5        [         R"                  " [         R$                  " U5      5      n[        R                  " UR                  5      (       d   eUR                  U5      n[        Xu5        g )N   r   rn  F  )r   r   r  r   r   r   r   rk   rj   )   )lenX4r}   r   r   aranger   Y4r.   r   r   r~   r  sparsifyr+   issparsepickleloadsdumps)r   nr2  idxr1   r   r   rK  s           r$   test_sgd_l1r  I  s1    	BA
))


#C
))A,CKK
36
A
3A
C GGAMsyyAbD)288D>:;;q>Dt LLN;;syy!!!!;;q>Dt ,,v||C(
)C;;syy!!!!;;q>Dtr&   c                    [         R                  " SS/SS/SS/SS/SS//5      n/ SQnU " SSS	S S
9nUR                  X5        [        UR	                  SS//5      [         R                  " S/5      5        U " SSS	SS0S
9nUR                  X5        [        UR	                  SS//5      [         R                  " S/5      5        g )Nr   r   皙r{   rz   rk   rk   rk   rj   rj   r&  r   F)r   r   r  r@  rn  rk   r   rj   r}   r   r.   r   r  r   r1   r2   r   s       r$   test_class_weightsr  n  s     	4,q	D$<#sc3ZPQAA
cDD
QCGGAMs{{S$K=1288QC=A cDQPUJ
WCGGAM s{{S$K=1288RD>Br&   c                     SS/SS/SS/SS//n/ SQnU " SSS S9nUR                  X5        SS/SS//nSS/nU " SSSSS.S9nUR                  X5        [        UR                  UR                  S	S
9  g )Nrk   r   )r   r   rk   rk   r&  r   r   r   r@  rn   ri  rl   r   )r.   r   r   )r   r1   r2   r   clf_weighteds        r$   test_equal_class_weightr    s     Q!Q!Q!Q(AA
cDt
<CGGAM
Q!QA	
AAsTCC@PQLQ 		<#5#5qAr&   c                     U " SSSS0S9n[         R                  " [        5         UR                  [        [
        5        S S S 5        g ! , (       d  f       g = f)Nr&  r   r   rn   r  r  r   s     r$   test_wrong_class_weight_labelr    s;     cD3x
@C	z	"1 
#	"	"s   A		
Ac                    SSS.n[         R                  R                  S5      nUR                  [        R
                  S   5      n[         R                  " U5      nU[        S:H  ==   US   -  ss'   U[        S:H  ==   US   -  ss'   U " SSUS	9nU " SSS
9nUR                  [        [        US9  UR                  [        [        US9  [        UR                  UR                  5        g )Ng333333?rm  )rk   rl   r   rk   rl   r&  r(  r  r9  sample_weight)r}   r   r   random_sampler  r   r   r.   r  r   r   )r   class_weightsr2  sample_weightsmultiplied_togetherr   r   s          r$   test_weights_multipliedr    s     $M
))


"C&&rxx{3N''.1a M!$44 a M!$44 sRmDDsR(DHHR>H2HHR#6H7

DJJ/r&   c                    [         R                  [         R                  p![        U5      n[        R
                  " UR                  S   5      n[        R                  R                  S5      nUR                  U5        X   nX#   nU " SSS SS9R                  X5      n[        R                  " X%R                  U5      SS9n[        US	S
S9  U " SSSSS9R                  X5      n[        R                  " X'R                  U5      SS9n[        US	S
S9  [        UR                   UR                   S5        XS:H  S S 24   nX"S:H     n	[        R"                  " U/U/S-  -   5      n
[        R$                  " U/U	/S-  -   5      nU " SS SS9nUR                  X5        UR                  U5      n[        R                  " X,SS9S	:  d   eU " SSSS9nUR                  X5        UR                  U5      n[        R                  " X,SS9S	:  d   eg )Nr      r   r   F)r   r   r@  r   weightedr   rv   rk   r   r?  r   )r   r@  r   )r   r   r   r   r}   r  r   r   r   r   r.   r   f1_scorer  r   r   r   vstackconcatenate)r   r1   r2   r  r2  r   f1clf_balancedX_0y_0X_imbalancedy_imbalancedy_preds                r$   test_balanced_weightr    s   
 99dkkqaA
))AGGAJ
C
))


"CKK	A	A
ft$
N
R
RST
XC			![[^Z	@BD!, t*e	c!i  
		!11!4j	IBD!, cii););Q? FAI,C
F)C99aSC52:-.L>>1#
"23L D%
@CGGL'[[^FAz:TAAA J
FCGGL'[[^FAz:TAAAr&   c                    [         R                  " SS/SS/SS/SS/SS//5      n/ SQnU " SSS	S
9nUR                  X5        [        UR	                  SS//5      [         R                  " S/5      5        UR                  XS/S-  S/S-  -   S9  [        UR	                  SS//5      [         R                  " S/5      5        g )Nr   r   r  r{   rz   r  r&  r   Fr   r   r  rn  rk   r   rm   rl   r  rj   r  r  s       r$   test_sample_weightsr    s     	4,q	D$<#sc3ZPQAA
cD
>CGGAMs{{S$K=1288QC=A GGA!qcAg 5G6 s{{S$K=1288RD>Br&   c                 (   U [         [        4;   a	  U " SSSS9nOU [        [        4;   a  U " SSSS9n[        R
                  " [        5         WR                  [        [        [        R                  " S5      S9  S S S 5        g ! , (       d  f       g = f)Nr&  r   Fr  )nur   r  r   r  )r`   rd   rX   rh   r   r   r   r.   r1   r   r}   r  r   s     r$   test_wrong_sample_weightsr    sn    
  344#EB	>#78	8sT?	z	"1BIIaL1 
#	"	"s   .B
Bc                     U " SS9n[         R                  " [        5         UR                  [        [
        5        S S S 5        g ! , (       d  f       g = f)Nr|   r   )r   r   r   r8   r   r   r   s     r$   test_partial_fit_exceptionr    s2    
d
C	z	"B 
#	"	"r	  c                    [         R                  S   S-  nU " SS9n[        R                  " [        5      nUR                  [         S U [        S U US9  UR                  R                  S[         R                  S   4:X  d   eUR                  R                  S:X  d   eUR                  SS//5      R                  S:X  d   e[        UR                  R                  5      nUR                  [         US  [        US  5        [        UR                  R                  5      nU(       d   U5       eUR                  [        5      n[        U[        5        g )Nr   rm   r|   r   r   rk   rY  )r1   r   r}   r   r   r8   r   r   r;   idr   r  r  r   r  )r   thirdr   r   id1id2r  s          r$   test_partial_fit_binaryr    s   GGAJ!OE
d
CiilGOOAfuIq%y'O:99??q!''!*o--->>4'''  1a&*00D888
SYY^^
COOAefIqy)
SYY^^
COO3[[^Fv{+r&   c                 d   [         R                  S   S-  nU " SS9n[        R                  " [        5      nUR                  [         S U [        S U US9  UR                  R                  S[         R                  S   4:X  d   eUR                  R                  S:X  d   eUR                  SS//5      R                  S:X  d   e[        UR                  R                  5      nUR                  [         US  [        US  5        [        UR                  R                  5      nU(       d   U5       eg )	Nr   rm   r|   r   r   rk   r  rE  )r;  r   r}   r   rG  r8   r   r   r;   r  r   )r   r  r   r   r  r  s         r$   test_partial_fit_multiclassr    s    HHQK1E
d
CiimGOOBvJ6E
GO<99??q"((1+....>>4'''  1a&*00F:::
SYY^^
COOBuvJ56
+
SYY^^
COO3r&   c                 >   [         R                  S   S-  nU " S[         R                  S   S9n[        R                  " [        5      nUR                  [         S U [        S U US9  UR                  R                  S[         R                  S   4:X  d   eUR                  R                  S:X  d   eUR                  [         US  [        US  5        UR                  R                  S[         R                  S   4:X  d   eUR                  R                  S:X  d   eg )Nr   rm   r|   )r   r   r   rk   r  )r;  r   r}   r   rG  r8   r   r   )r   r  r   r   s       r$   #test_partial_fit_multiclass_averager  +  s    HHQK1E
dBHHQK
0CiimGOOBvJ6E
GO<99??q"((1+....>>4'''OOBuvJ56
+99??q"((1+....>>4'''r&   c                 z    U " 5       nUR                  [        [        5        UR                  [        [        5        g r*   )r.   r;  rG  r8   r   s     r$   test_fit_then_partial_fitr  :  s&    
 'CGGBOOOBr&   c           	         [         [        [        4[        [        [
        44 H  u  p#nU " SSSUSS9nUR                  X#5        UR                  U5      nUR                  n[        R                  " U5      nU " SSUSS9n[        S5       H  n	UR                  X#US9  M     UR                  U5      n
UR                  U:X  d   e[        XjSS9  M     g )Nr|   rl   F)r   r   r   r   r   r   r   r   r   r   r   )r1   r   r  r;  rG  rH  r.   r;   r   r}   r   r   r8   r   )r   r   X_r   T_r   r  tr   r   y_pred2s              r$   "test_partial_fit_equal_fit_classifr  D  s     1ay2r2,/
$TARQVW&&r*FF))B-$TUKqAOOBGO4 ''+vv{{!&1= 0r&   c                    [         R                  R                  S5      nU " SSSSUS9nUR                  [        [
        5        S[         R                  " UR                  [        5      [
        :H  5      :X  d   eU " SSSSUS9nUR                  [        [
        5        S[         R                  " UR                  [        5      [
        :H  5      :X  d   eU " SS	US
9nUR                  [        [
        5        S[         R                  " UR                  [        5      [
        :H  5      :X  d   eU " SSSSUS9nUR                  [        [
        5        S[         R                  " UR                  [        5      [
        :H  5      :X  d   eg )Nrk   r|   r   r&  epsilon_insensitive)r   r   r   r   r   r{   squared_epsilon_insensitivehuber)r   r   r   r   )r}   r   r   r.   r1   r   rw  r  )r   r   r   s      r$   test_regression_lossesr  W  s9   99((+L
 "!C GGAqM"''#++a.A-....
 *!C GGAqM"''#++a.A-....
d|
DCGGAqM"''#++a.A-....
 !C GGAqM"''#++a.A-....r&   c                 0    [        U [        [        S5        g )Nr   )r   r;  rG  r  s    r$   test_warm_start_multiclassr  }  s    UBI.r&   c                    U " SSS9nUR                  [        [        5        [        US5      (       d   e[	        5       R                  [        5       Vs/ s H
  nSS/U   PM     nnUR                  [        S S 2S S24   U5        g s  snf )Nr|   Fr   r   hamspamrj   )r.   r1   r   r   r   fit_transform)r   r   r   r2   s       r$   test_multiple_fitr    s~     dE
*CGGAqM3     &2^%A%A!%DE%D%	%DAEGGAa"fIq 	Fs   Bc                     U " SSSS9nUR                  SS/SS/SS/// SQ5        UR                  S   UR                  S   :X  d   eg )Nr&  rl   Fr  r   rk   )r   rk   rl   )r.   r   r   s     r$   test_sgd_regr    sQ     cAU
;CGGaVaVaV$i099Q<399Q<'''r&   c                 j   SnSnSnSn[         R                  R                  S5      nUR                  X44S9nUR                  US9n[         R                  " Xg5      nU " SSUUS	S
S	SS9n	U	R                  Xh5        [        XXU5      u  p[        U	R                  U
SS9  [        U	R                  USS9  g )Nr   r|   r(  r   r   r)  r   r   Trk   Fr+  r   r   )r}   r   r   r-  r   r.   r   r   r   r   r   r   r   r   r0  r1  r2  r1   r3  r2   r   r   r   s               r$   $test_sgd_averaged_computed_correctlyr    s     CEIJ
))


"C

/
0A



#A 	qA
 	C GGAM)-e)F&Ocii"E(92Fr&   c                    SnSnSnSn[         R                  R                  S5      nUR                  X44S9nUR                  US9n[         R                  " Xg5      nU " SSUUS	S
S	SS9n	U	R                  US [        US-  5       S S  US [        US-  5       5        U	R                  U[        US-  5      S  S S  U[        US-  5      S  5        [        XXU5      u  p[        U	R                  U
SS9  [        U	R                  S   USS9  g )Nr   r|   r(  r   r   r)  r   r   Trk   Fr+  rl   r   r   )r}   r   r   r-  r   r8   intr   r   r   r   r   r  s               r$   test_sgd_averaged_partial_fitr    s#    CEIJ
))


"C

/
0A



#A 	qA
 	C OOA*IM*+A.2FC	A4F0GHOOAc)a-(*+A.#i!m2D2F0GH)-e)F&Ocii"Eq)+<bIr&   c                    SnSnU " SSUUSSSSS9n[         R                  S	   nUR                  [        S [	        US
-  5       S S  [         S [	        US
-  5       5        UR                  [        [	        US
-  5      S  S S  [         [	        US
-  5      S  5        [        U [        [         X5      u  pV[        UR                  USS9  [        UR                  USS9  g )Nr   r|   r   r   Trk   Fr+  r   rl   r   r   )
r   r   r8   r   r  r   r   r   r   r   )r   r   r   r   r0  r   r   s          r$   test_average_sparser    s     CE
 	C IOOB+Y]+,Q/4Hc)a-6H1IJOOBs9q=)+,Q/C	A4F4H1IJ)-eRS)H&Ocii"E(92Fr&   c                    Su  pSn[         R                  R                  S5      n[         R                  " XU5      R	                  US5      nSUR                  5       -  nU " SSSS	S
9nUR                  XV5        UR                  XV5      nUS:  d   eSUR                  5       -  UR                  US5      R                  5       -   nU " SSSS	S
9nUR                  XV5        UR                  XV5      nUS:  d   eg )Nr    r   r   rk   rn   r   r&  r(  F)r   r   r   r  rx   	r}   r   r   linspacer/  r   r.   scorerandn	r   xminxmaxr0  r2  r1   r2   r   r  s	            r$   test_sgd_least_squares_fitr    s    JDI
))


"C
D	*229a@A 	aggiA
_C"E
RCGGAMIIaOE4<< 	aggi#))Iq17799A
_C"E
RCGGAMIIaOE3;;r&   c                    Su  pSn[         R                  R                  S5      n[         R                  " XU5      R	                  US5      nSUR                  5       -  nU " SSSS	S
S9nUR                  XV5        UR                  XV5      nUS:  d   eSUR                  5       -  UR                  US5      R                  5       -   nU " SSSS	S
S9nUR                  XV5        UR                  XV5      nUS:  d   eg )Nr  r   r   rk   rn   r  r|   r&  r(  Fr   epsilonr   r   r  rx   r  r  s	            r$   test_sgd_epsilon_insensitiver    s    JDI
))


"C
D	*229a@A 	aggiA
"C GGAMIIaOE4<< 	aggi#))Iq17799A
"C GGAMIIaOE3;;r&   c                    Su  pSn[         R                  R                  S5      n[         R                  " XU5      R	                  US5      nSUR                  5       -  nU " SSSSS	S
9nUR                  XV5        UR                  XV5      nUS:  d   eSUR                  5       -  UR                  US5      R                  5       -   nU " SSSSS	S
9nUR                  XV5        UR                  XV5      nUS:  d   eg )Nr  r   r   rk   rn   r  r&  r(  Fr  rx   r  r  s	            r$   test_sgd_huber_fitr  3  s    JDI
))


"C
D	*229a@A 	aggiA
WcrQV
WCGGAMIIaOE4<< 	aggi#))Iq17799A
WcrQV
WCGGAMIIaOE3;;r&   c           
         Su  p[         R                  R                  S5      nUR                  X5      nUR                  U5      n[         R                  " XE5      nS Hs  nS Hj  n[
        R                  " XxSS9n	U	R                  XF5        U " SSUUSS	9n
U
R                  XF5        S
Xx4-  n[        U	R                  U
R                  SUS9  Ml     Mu     g )N)r   r    r   )r|   r   )rn   rt   r{   F)r   r   r  r  2   )r   r   r   r   r  zNcd and sgd did not converge to comparable results for alpha=%f and l1_ratio=%frl   )r   r  )
r}   r   r   r  r   r   
ElasticNetr.   r   r   )r   r0  r1  r2  r1   ground_truth_coefr2   r   r   cdsgdr  s               r$   test_elasticnet_convergencer  K  s     $I
))


"C		)(A 		*-
q$A 'H((eB FF1L$!#C GGAM7:?9JK   #))QP# ( r&   c                 0   [         R                  S   S-  nU " SS9nUR                  [         S U [        S U 5        UR                  R                  [         R                  S   4:X  d   eUR
                  R                  S:X  d   eUR                  SS//5      R                  S:X  d   e[        UR                  R                  5      nUR                  [         US  [        US  5        [        UR                  R                  5      nU(       d   U5       eg )Nr   rm   r|   r   rk   rY  )	r1   r   r8   r   r   r   r  r  r   )r   r  r   r  r  s        r$   test_partial_fitr  m  s    GGAJ!OE
d
COOAfuIq%y)99??qwwqzm+++>>4''';;Ax &&$...
SYY^^
COOAefIqy)
SYY^^
COO3r&   c                 Z   U " SSSUSS9nUR                  [        [        5        UR                  [        5      nUR
                  nU " SSUSS9n[        S5       H  nUR                  [        [        5        M     UR                  [        5      nUR
                  U:X  d   e[        X6SS9  g )Nr|   rl   F)r   r   r   r   r   r  r   )	r.   r1   r   r  r  r   r   r8   r   )r   r   r   r  r  r   r  s          r$   test_partial_fit_equal_fitr  ~  s     dQTU
SCGGAqM[[^FA
dR
GC1X1 kk!nG66Q;;fq9r&   c                 ^    U " SS9nUR                  SS9  UR                  S   S   S:X  d   eg )Nrs   )r  r&  r  rk   )r   r^  r   s     r$   test_loss_function_epsilonr    s8    

CNN3Ng&q)S000r&   c                    Uc$  [         R                  " UR                  S   5      nOUn[         R                  " UR                  S   5      nUnSU-
  n	Sn
SnU [        :X  a  Sn[	        U5       Hw  u  p[         R
                  " X5      nX-  nUS::  a  SnOSnU[        SSX#-  S-  -
  5      -  nXbU-  U-  * -  nXX?-   -  * U-  -  n	X|-  nXv-  nX|S-   -  nX-  n
X-  n
XS-   -  n
My     USU
-
  4$ )Nrk   rz   r{   r|   rj   r   rl   )r}   r~   r   rh   r   r   max)r   r1   r   r  r   r  coefrQ  offsetr   r   r   r   r   r   r   s                   r$   asgd_oneclassr    s-   xx
#88AGGAJ'LFF
IE $$aLFF5	8HHAschl+,,.5())bm,-55	C&W$# !& ....r&   c                 0   U " SSSUS9nUR                  U5        U " SSSUS9nUR                  XR                  R                  5       UR                  R                  5       S9  U " SSSSUS9nUR                  U5        UR                  UR                  :X  d   e[        UR                  UR                  5        UR                  SS	9  UR                  U5        UR                  UR                  :X  d   e[        UR                  UR                  5        g )
Nrn   r|   F)r  r   r   r   r&  r   r  T)r  r   r   r   r   r  )r.   r   r   r   r   r   r   )r   r1   r   r   r   r   s         r$   _test_warm_start_oneclassr    s     3T5
CCGGAJCdEDDHHQ))..*8H8H8JHK CdEdRTUDHHQK77cffDJJ		*OOsOHHQK77dggDJJ

+r&   c                 &    [        U [        U5        g r*   )r  r1   r   s     r$   test_warm_start_oneclassr    s     eQ+r&   c                     U " SS9n[        U5      nUR                  SS9  UR                  [        5        U " SS9nUR                  [        5        [	        UR
                  UR
                  5        g )Nrn   r  r&  )r   r   r.   r1   r   r   r   s      r$   test_clone_oneclassr	    sU     3-C
*CNNcNGGAJC=DHHQKsyy$**-r&   c                 R   [         R                  S   S-  nU " SS9nUR                  [         S U 5        UR                  R                  [         R                  S   4:X  d   eUR                  R                  S:X  d   eUR                  SS//5      R                  S:X  d   eUR                  nUR                  [         US  5        UR                  UL d   e[        R                  " [        5         UR                  [         S S 2S4   5        S S S 5        g ! , (       d  f       g = f)Nr   rm   r&  r  rk   rY  )	r1   r   r8   r   r   r  r   r   r   )r   r  r   previous_coefss       r$   test_partial_fit_oneclassr    s    GGAJ!OE
3-COOAfuI99??qwwqzm+++;;$$$;;Ax &&$...YYNOOAefI99&&& 
z	"!Q$  
#	"	"s   2D
D&c                    U " SSSUSS9nUR                  [        5        UR                  [        5      nUR                  nUR
                  nUR                  nU " SSSUSS9n[        S5       H  nUR                  [        5        M     UR                  [        5      nUR                  U:X  d   e[        X85        [        UR
                  U5        [        UR                  U5        g )N皙?rl   r|   F)r  r   r   r   r   rk   )r  r   r   r   r   )
r.   r1   r;   r  r   r   r   r   r8   r   )	r   r   r   y_scoresr  r  r   r   	y_scores2s	            r$   #test_partial_fit_equal_fit_oneclassr     s     4!$b%
PCGGAJ$$Q'HA99D[[F
4dQb%
PC1X %%a(I66Q;;H(CIIt$CKK(r&   c           	         SnSnU " SSXSSS9nU " SSUUSSS9nUR                  [        5        UR                  [        5        [        U [        XUR                  R	                  5       UR
                  S	9u  pV[        UR                  R	                  5       UR	                  5       5        [        UR
                  U5        g )
Nr   r  r   r   rl   F)r   r   r   r  r   r   rk   r  )r.   r1   r  r   r   r   r   )r   r   r  r   r   rQ  average_offsets          r$   *test_late_onset_averaging_reached_oneclassr    s     D	B $SXD  D 	HHQKHHQK $1q$djj&6&6&8dll$ L DJJ$$&(:(:(<=DLL.1r&   c           
          SnSnSnSn[         R                  R                  S5      nUR                  X44S9nU " SUUSS	SS
S9nUR	                  U5        [        XX5      u  p[        UR                  U5        [        UR                  U	5        g )Nr   r  r(  r   r   r)  r   Trk   Fr   r   r  r  r   r   r   )	r}   r   r   r-  r.   r  r   r   r   
r   r   r  r0  r1  r2  r1   r   rQ  r  s
             r$   -test_sgd_averaged_computed_correctly_oneclassr  6  s     C	BIJ
))


"C

/
0A
 C GGAJ#03#C LCII|,CKK0r&   c           
         SnSnSnSn[         R                  R                  S5      nUR                  X44S9nU " SUUSS	SS
S9nUR	                  US [        US-  5       S S  5        UR	                  U[        US-  5      S  S S  5        [        XX5      u  p[        UR                  U5        [        UR                  U	5        g )Nr   r  r(  r   r   r)  r   Trk   Fr  rl   )
r}   r   r   r-  r8   r  r  r   r   r   r  s
             r$   &test_sgd_averaged_partial_fit_oneclassr  Q  s     C	BIJ
))


"C

/
0A
 C OOA*IM*+A./OOAc)a-(*+A./#03#C LCII|,CKK0r&   c           
      X   SnSnU " SUUSSSSS9n[         R                  S   nUR                  [         S [        US	-  5       5        UR                  [         [        US	-  5      S  5        [	        U [         X5      u  pV[        UR                  U5        [        UR                  U5        g )
Nr   r|   r   Trk   Fr  r   rl   )r   r   r8   r  r  r   r   r   )r   r   r  r   r0  rQ  r  s          r$   test_average_sparse_oneclassr  m  s     C	B
 C IOOB+Y]+,-OOBs9q=)+,-#0C#D LCII|,CKK0r&   c                  v   [         R                  " SS/SS/SS//5      n [         R                  " SS/SS//5      n[        SSSSSS9nUR                  U 5        [	        UR
                  [         R                  " S	S
/5      5        UR                  S   S:X  d   eUR                  U5      n[	        U[         R                  " SS/5      5        UR                  U5      UR                  -
  n[	        UR                  U5      U5        UR                  U5      n[        U[         R                  " SS/5      5        g )Nri   rj   rk   rn   rl   r   F)r  r   r   r   r   g      g      ?r   ro   g      g      ?)r}   r   rX   r.   r   r   r   score_samplesr;   r  r   )X_trainX_testr   scoresdecrK  s         r$   test_sgd_oneclassr#    s    hhR2r(QF34GXXRy1a&)*F
Qj%!C GGGCIIrxx(89:;;q>T!!!v&FFBHHgu%567


F
#ckk
1CC))&137;;vDtRXXr1g./r&   c            	          Sn SnSn[         R                  R                  U5      nSUR                  SS5      -  n[         R                  US-   US-
  4   nSUR                  SS5      -  n[         R                  US-   US-
  4   n[        USU S	9nUR                  U5        UR                  U5      nUR                  U5      R                  S
S5      n	Sn
[        XS9n[        U SSU
US S9n[        X5      nUR                  U5        UR                  U5      nUR                  U5      R                  S
S5      n[         R                  " X:H  5      S:  d   e[         R                  " [         R                  " X45      5      S   nUS:  d   eg )Nr  r'  r   rm    rl   r   rbf)gammakernelr  rk   rj      )r'  r   T)r  r   r  r   r   r   rx   ri  rs   )r}   r   r   r  r_r   r.   r  r;   r/  r
   rX   r   rw  corrcoefr  )r  r'  r   r2  r1   r  r   r   y_pred_ocsvm	dec_ocsvmr   	transformclf_sgdpipe_sgdy_pred_sgdocsvmdec_sgdocsvmr+  s                    r$   test_ocsvm_vs_sgdocsvmr3    s    
BEL ))


-CciiQAeeAE1q5L!GciiQAUU1q5!a%< F E%B
7CGGG;;v&L%%f-55a<I Hu@I!G Y0HLL&&v.O--f5==aDL77?23t;;;{{2>>9*CDEdKHs??r&   c            	         [         R                  " SSSSS9u  p[        SSS SS	S
S9R                  X5      n[        SSSS
S S9R                  X5      n[	        UR
                  UR
                  5        [        SSS SSS
S9R                  X5      n[        SSSS
S S9R                  X5      n[	        UR
                  UR
                  5        g )Nr   r   r(  i  )r0  r1  n_informativer   r   r  r  gA?r   )r   r   r   r   r   r   r   )r   r   r   r   r   g|=r   )r   make_classificationr`   r.   r   r   )r1   r2   est_enest_l1est_l2s        r$   test_l1_ratior:    s    ''3btDA
  
c!i  TABD	c!i  fllFLL9  
c!i  TABD	c!i  fllFLL9r&   c                     [         R                  " SS9   [         R                  R                  S5      n SnSnU R	                  X4S9nUS S 2S S24==   S-  ss'   [         R
                  " U5      R                  5       (       d   e[        5       R                  U5      n[         R
                  " U5      R                  5       (       d   eU R	                  US9n[         R                  " XE5      S	:  R                  [         R                  5      n[        [         R                  " U5      SS
/5        [        SSSS9nUR                  XF5        [         R
                  " UR                   5      R                  5       (       d   eSn["        R$                  " [&        US9   UR                  X65        S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)Nraisers  r   r   r   r)  rl   gu <7~rz   rk   r&  r  r%  )r   r   r   zwFloating-point under-/overflow occurred at epoch #.* Scaling input data with StandardScaler or MinMaxScaler might help.r  )r}   rp  r   r   r-  isfiniters  r   r  r   astypeint32r   r   r`   r.   r   r   r   r   )	r2  r0  r1  r1   X_scaledground_truthr2   model	msg_regxps	            r$   test_underflow_or_overlowrE    ss   		!ii##A&	
JJY3J4	!RaR%E{{1~!!####
  >//2{{8$((**** zzzz2VVH+c199"((C299Q<!Q0CoL 			({{5;;'++---- 	
 ]]:Y7IIaO 8C 
"	!B 87C 
"	!s$   F	GG0G
G	G
G c                  H   [        SSSSSSSSS S	9	n [        R                  " S
S9   U R                  [        R
                  [        R                  5        S S S 5        [        R                  " U R                  5      R                  5       (       d   eg ! , (       d  f       ND= f)Nr  r   Tr  rm  r|   r   r   )	r   r   r   r   r   r   r   r   r   r<  r=  )
r`   r}   rp  r.   r   r   r   r>  r   rs  )rC  s    r$   'test_numerical_stability_large_gradientrG    s}     
E 
	!		$))T[[) 
";;u{{#'')))) 
"	!s   /B
B!r   )r   r   r  c           
      B   [        SSSU SS SS9n[        R                  " SS9   UR                  [        R
                  [        R                  5        S S S 5        [        UR                  [        R                  " UR                  5      5        g ! , (       d  f       NC= f)	Ng     j@r   r&  Fr  )r   r   r   r   r   r   r   r<  r=  )
r`   r}   rp  r.   r   r   r   r   r   
zeros_like)r   rC  s     r$   test_large_regularizationrJ  !  sp      E 
	!		$))T[[) 
"ekk2==+EF 
"	!s   /B
Bc                     [        5       R                  [        R                  5      n [        R                  S:H  nSn[        S SUS9nUR                  X5        X#R                  :X  d   eSn[        SSUS9nUR                  X5        X$R                  :  d   eUR                  S:  d   e[        SSUS9nUR                  X5        UR                  UR                  :  d   eUR                  S:  d   e[        SS	SS
9nSn[        R                  " [        US9   UR                  X5        S S S 5        UR                  S:X  d   eg ! , (       d  f       N!= f)Nrk   r   r   )r   r   r   r~  r    r&  rm   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   r`   r.   r   r   warnsr	   )r1   r2   r   model_0model_1model_2model_3warning_messages           r$   test_tol_parameterrR  3  s8   &&tyy1AqA H1xHGKK&&& HHEGKKoo%%%??Q !hGGKK??W__,,,??Q QDqAG	 
 
(	@A 
A??a 
A	@s   E
Ec                     U H<  u  p#pE[        U R                  X#5      U5        [        U R                  X#5      U5        M>     g r*   )r   py_losspy_dloss)loss_functioncasesr   r2   expected_lossexpected_dlosss         r$   _test_loss_commonrZ  W  s=     05+mM11!7GM2218.I 05r&   c                      [         R                  " S5      n / SQn[        X5        [         R                  " S5      n / SQn[        X5        g )Nr{   ))g?r{   rz   rz          r   rz   rz   )r{   r{   rz   r   )r   r   rz   r{   )rn   r{   rn   r   )r'  r         @r{   )ro   r   rn   r{   )rz   r{   rk   r   rz   )r{   r{   rz   rz   )rl  r   rz   rz   )rz   r{   rz   r   )rz   r   rz   r{   )rn   r   rn   r{   )r'  r   r'  r{   )ro   r{   rn   r   )r   r{   r{   r   )sgd_fastHingerZ  r   rW  s     r$   test_loss_hingerc  _  sD     >>#D
E d" >>#D
E d"r&   c                  N    [         R                  " S5      n / SQn[        X5        g )Nr{   )r_  r\  )r{   r         @re  r   r{   re        )rn   r{   g      ?r   rn   r   g      @r^  )r`  SquaredHingerZ  rb  s     r$   test_gradient_squared_hingerj    s#      %DE d"r&   c                  L    [         R                  " 5       n / SQn[        X5        g )N)r_  )r   r   rz   rz   )r'  r{   rz   rz   )rz   r{   r{   r]  rf  rh  )r]  r{      rg  )g      r{      rg  )r`  ModifiedHuberrZ  rb  s     r$   test_loss_modified_huberro    s!    !!#D
E d"r&   c                  N    [         R                  " S5      n / SQn[        X5        g )Nr&  )rz   rz   rz   rz   r&  rz   rz   rz   gffffff r]  rz   rz   gffffff@r^  rz   rz   )皙@r'  r&  r{   )r'  r   333333@r{   )r'  ru  r&  r   )r]  r{   rv  r   )r`  EpsilonInsensitiverZ  rb  s     r$   test_loss_epsilon_insensitiverx    s#    &&s+D
E d"r&   c                  N    [         R                  " S5      n / SQn[        X5        g )Nr&  )rq  rr  rs  rt  )ru  r'  r|   rn  )r'  r   R @g333333@)r'  ru  r|   gɿ)r]  r{   rz  g333333)r`  SquaredEpsilonInsensitiverZ  rb  s     r$   %test_loss_squared_epsilon_insensitiver|    s#    --c2D
E d"r&   c            
      \   [        SSSSSSSS9n U R                  [        R                  [        R                  5        U R
                  U R                  :  d   eU R
                  U R                  S-   :  d   eU R                  [        R                  [        R                  5      S	:  d   eg )
Nr   r   Tr   r   rl   )r   r   r   r   r   r   rV  r(  rt   )r`   r.   r   r   r   r   r   r  )r   s    r$   0test_multi_thread_multi_class_and_early_stoppingr~    s     C GGDIIt{{#;;-----;;--222299TYY,s222r&   c                      [         R                  " SSS5      / SQS.n [        SSSS	S
9n[        XSSS	S9nUR	                  [
        R                  [
        R                  5        UR                  S:  d   eg )Nr  r:  )r    r   r  )r   r   r|   r   Tr   )r   r   r   r   r    rl   )n_iterrV  r   rt   )	r}   logspacer`   r   r.   r   r   r   best_score_)
param_gridr   searchs      r$   -test_multi_core_gridsearch_and_early_stoppingr    sl    
 RA&'J
 D4ST
UC!RSTF
JJtyy$++&###r&   backend)lokymultiprocessing	threadingc                    [         R                  R                  S5      n[        R                  " SSSSUS9nUR	                  SS5      n[        SS	SS
9nUR                  X#5        [        SSSS
9n[        R                  " U S9   UR                  X#5        S S S 5        [        UR                  UR                  5        g ! , (       d  f       N/= f)Nr   r%  r~  g{Gz?csr)densityr_  r   r(  r   rk   )r   rV  r   r  )r  )r}   r   r   r+   choicer`   r.   joblibparallel_backendr   r   )r  r   r1   r2   clf_sequentialclf_parallels         r$   'test_SGDClassifier_fit_for_all_backendsr    s      99((,L
 			#tT%lSAB$A #DLNq !$qrJL		 	 	1 
2n22L4F4FG 
2	1s   C  
Cc                 t   U [         R                  :X  a  [        R                  " US9u  p#O[        R                  " US9u  p#U " USS9n[
        R                  " [        5         UR                  X#5      R                  nUR                  S:X  d   e S S S 5        U " USS9n[
        R                  " [        5         UR                  X#5      R                  nUR                  S:X  d   e S S S 5        [        WW5        U " US-   SS9n[
        R                  " [        5         UR                  X#5      R                  nUR                  S:X  d   e S S S 5        [        R                  " UW-
  5      R                  5       S:  d   eg ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N^= f)N)r   rk   )r   r   r{   )r   rK   r   make_regressionr6  r   rL  r	   r.   r   r   r   r}   absr  )r   global_random_seedr1   r2   estcoef_same_seed_acoef_same_seed_bcoef_other_seeds           r$   test_sgd_random_stater    sd    L---''5GH1++9KL
 !3a
@C	(	)771=..{{a 
* !3a
@C	(	)771=..{{a 
* $&67 !3a!7!
DC	(	)''!---{{a 
* 66"_4599;cAAA) 
*	)
 
*	) 
*	)s$   #.F;.F".F)
F
F&)
F7c                    [         R                  [         R                  p!UR                  S   nSn[        R
                  " SSSUS9n[        [        R                  S9nU R                  [        SU5        UR                  X5        UR                  S   S	S
 u  pxUR                  S   [        X4-  5      :X  d   eUR                  S   [        X4-  5      :X  d   eg)zaTest that data passed to validation callback correctly subsets.

Non-regression test for #23255.
r   rn  Tr   r   )r   r   r   r   )side_effect_ValidationScoreCallbackrk   rm   N)r   r   r   r   r   r`   r   r   r  setattrr.   	call_argsr  )	monkeypatchr1   r   r0  r   r   mockX_valy_vals	            r$   &test_validation_mask_correctly_subsetsr  -  s    
 99dkkq
I

$
$/	C 0IIJD,.H$OGGAM>>!$Qq)LE;;q>S!@AAAA;;q>S!@AAAAr&   c                  (   [         R                  [         R                  p[        R                  " U5      nSn[
        R                  " SUSS9nSn[        R                  " [        US9   UR                  XUS9  S S S 5        g ! , (       d  f       g = f)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   r}   rI  r   r`   r   r   r   r.   )r1   r   r  r   r   error_messages         r$   (test_sgd_error_on_zero_validation_weightr  E  sv     99dkkqMM!$M

$
$1DSTC
	#  
z	7M2 
8	7	7s   )B
Bc                 @    U " SS9R                  [        [        5        g)z!non-regression test for gh #25249rk   )verboseN)r.   r1   r   )r   s    r$   test_sgd_verboser  X  s     aQ"r&   SGDEstimator	data_typec                     [         R                  U5      n[        R                  " [        US9nU " 5       nUR                  X#5        UR                  R                  U:X  d   eg )Ndtype)r1   r?  r}   r   r   r.   r   r  )r  r  _X_Y	sgd_models        r$   test_sgd_dtype_matchr  ^  sM     
)	B	!9	%BIMM"??  I---r&   c                    [         R                  [        R                  S9n[        R                  " [
        [        R                  S9n[         R                  [        R                  S9n[        R                  " [
        [        R                  S9nU " SS9nUR                  X5        U " SS9nUR                  X45        [        UR                  UR                  5        g )Nr  r(  )r   )
r1   r?  r}   float64r   r   float32r.   r   r   )r  X_64Y_64X_32Y_32sgd_64sgd_32s          r$   test_sgd_numerical_consistencyr  r  s     88"**8%D88ARZZ(D88"**8%D88ARZZ(D2&F
JJt2&F
JJtFLL&,,/r&   c                  N    [        5       n [        U 5      R                  S:X  d   eg)zuCheck that SGDOneClassSVM has the correct estimator type.

Non-regression test for if the mixin was not on the left.
outlier_detectorN)rX   r   estimator_type)	sgd_ocsvms    r$   %test_sgd_one_class_svm_estimator_typer    s&    
  II--1CCCCr&   )Nrz   )r  unittest.mockr   r  numpyr}   r   scipy.sparsesparser+   sklearnr   r   r   sklearn.baser   r   sklearn.exceptionsr	   sklearn.kernel_approximationr
   sklearn.linear_modelr   r`  r   sklearn.model_selectionr   r   r   sklearn.pipeliner   sklearn.preprocessingr   r   r   r   sklearn.svmr   sklearn.utilsr   sklearn.utils._testingr   r   r   r   r%   r`   r(   rK   rH   rX   rU   rd   rf   rh   r   r1   r   r  r  r;  rG  rH  rI  r   r   r  r  	load_irisr   r"  r#  true_result5r   r   markparametrizer   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r~   r  r   r$  r4  r7  r=  rB  rL  rR  rT  rW  rZ  rg  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#  r3  r:  rE  rG  rJ  rR  rZ  rc  rj  ro  rx  r|  r~  r  r  r  r  r  r  r  r  r  r  r  r!   r&   r$   <module>r     sf         3 3 - 1 1 6 5 
 + S S # " (<55 ($Q,33 QSL77 S0
/
1
*
)
+ HHr2hR2r(QFQFQFCDHHr2hAA'( XX	Q		s	
A	s	c
	R	
D		
B
 Wq[E7Q;'Q.XXc{QFQG,-& XX	 XX&' XX      	 XX&' XXBx"bB8aVaVaVDE.D60 m0,@RS PQ& R& m0,@RS m0,@RS
.
. 
.
.$ 
4
4$ m0,@RS(H(HV m0,@RS&& m0,@RS'' m0,@RS&/&/R m0,@RS==$ m0,@RS }l&CD[1, 2 E, -!4lDVW =2E"FG8 H8" m0.BVW44 	)288D>:;	/$@A	-$89	rxx~>?	.. m0,@RS55 	)1-.	/34	-+,	q12	&& =2E"FGG HGB =2E"FG5 H5 =2E"FG  H  =2E"FGO HO  =2E"FG+ H+ =2E"FGN HN6 =2E"FG+ H+ =2E"FG+ H+ =2E"FG= H=( =2E"FG? H?B =2E"FGD7 HD7N =2E"FG!  H! H =2E"FGC HC$ =2E"FGB HB  =2E"FG H =2E"FG0 H0$ =2E"FG+B H+B\ =2E"FGC HC" m0.BVW22 =2E"FG  H  =2E"FG, H,( =2E"FG H" =2E"FG( H( =2E"FG H =2E"FGPQ> R H>" =2E"FG"/ H"/J =2E"FG/ H/ =2E"FG H <1C"DE( F( <1C"DEG FG@ <1C"DEJ FJ@ <1C"DEG FG4 <1C"DE F. <1C"DE  F F <1C"DE F. <1C"DEQ FQB <1C"DE F  <1C"DEPQ: R F: <1C"DE1 F1#/L >3G"HI, J,, >3G"HIPQ, R J, >3G"HI
. J
. >3G"HI! J!& >3G"HIPQ) R J)& >3G"HI2 J2@ >3G"HI1 J14 >3G"HI1 J16 >3G"HI1 J100,&R :F#L*& $>?G @G"! HJ#B##"#"#"3$$ $LM H N HF ,,,l.G.GH B BFB03& }l&CD# E#
 
 rzz2::&>?. @
. 
0
0 Dr&   