
    e!hq                       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j`                        Z1 G d dejd                        Z3d Z.d Z0d Z2d Z4d Z5d Z6 ejn                  ddgddgddgddgddgddgg      Z8g d Z9 ejn                  ddgddgd!dgg      Z:g d"Z; ejn                  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jn                  d%d$gddgd dgg      Z>g d,Z? ejn                  g d-g d-g d.g d.g d/g d/g d0g d0g      Z@ ejn                  g d1      ZA ejn                  g d2g d3g d4g d5g d6g d7g d8g d9g      ZB ejn                  g d1      ZC ej                         ZE ejn                  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j                  j                  d=e.e4e0e5g      ej                  j                  d>g d?      d@               ZMej                  j                  d=e.e4e0e5g      dA        ZNej                  j                  d=e.e4e0e5g      dB        ZOej                  j                  d=e.e4e0e5e2e6g      dC        ZPej                  j                  d=e.e4e0e5e2e6g      dD        ZQej                  j                  d=e.e4e0e5g      dE        ZRej                  j                  d=e.e4e0e5g      dF        ZSej                  j                  d=e.e4e0e5g      dG        ZTej                  j                  d=e.e4e0e5g      dH        ZUej                  j                  d=e.e4e0e5g      dI        ZVej                  j                  d=e.e4e0e5g      dJ        ZWej                  j                  d=e.e4g      dK        ZXej                  j                  d=e.e4e2e6g      dL        ZYej                  j                  dMe.dN ej                  dO      ife4dN ej                  dO      ife2dP ej                  dO      ife6dP ej                  dO      ifg      dQ        Z[ej                  j                  d=e.e4e0e5g      dR        Z\ej                  j                  dMe.dNd ife4dNd ife2dPd ife6dPd ifg      dS        Z]ej                  j                  d=e.e4g      dT        Z^ej                  j                  d=e.e4g      dU        Z_ej                  j                  d=e.e4g      dV        Z`ej                  j                  d=e.e4g      dW        Zaej                  j                  d=e.e4g      dX        Zbej                  j                  d=e.e4g      dY        Zcej                  j                  d=e.e4g      dZ        Zdej                  j                  d=e.e4g      d[        Zeej                  j                  d=e.e4g      d\        Zfej                  j                  d=e.e4g      d]        Zgej                  j                  d=e.e4g      d^        Zhej                  j                  d=e.e4g      d_        Ziej                  j                  d=e.e4g      d`        Zjej                  j                  d=e.e4g      da        Zkej                  j                  d=e.e4g      db        Zlej                  j                  d=e.e4g      dc        Zmej                  j                  d=e.e4g      dd        Znej                  j                  d=e.e4g      de        Zoej                  j                  d=e.e4e2e6g      df        Zpej                  j                  d=e.e4g      dg        Zqej                  j                  d=e.e4g      dh        Zrej                  j                  d=e.e4g      di        Zsej                  j                  d=e.e4g      dj        Ztej                  j                  d=e.e4g      dk        Zuej                  j                  d=e.e4g      ej                  j                  d>g d?      dl               Zvej                  j                  d=e.e4g      dm        Zwej                  j                  d=e.e4g      dn        Zxej                  j                  d=e.e4g      do        Zyej                  j                  d=e0e5g      dp        Zzej                  j                  d=e0e5g      dq        Z{ej                  j                  d=e0e5g      dr        Z|ej                  j                  d=e0e5g      ds        Z}ej                  j                  d=e0e5g      dt        Z~ej                  j                  d=e0e5g      du        Zej                  j                  d=e0e5g      dv        Zej                  j                  d=e0e5g      dw        Zej                  j                  d=e0e5g      dx        Zej                  j                  d=e0e5g      ej                  j                  d>g d?      dy               Zej                  j                  d=e0e5g      dz        Zdd{Zej                  j                  d=e2e6g      d|        Zej                  j                  d=e2e6g      ej                  j                  d>g d?      d}               Zej                  j                  d=e2e6g      d~        Zej                  j                  d=e2e6g      d        Zej                  j                  d=e2e6g      ej                  j                  d>g d?      d               Zej                  j                  d=e2e6g      d        Zej                  j                  d=e2e6g      d        Zej                  j                  d=e2e6g      d        Zej                  j                  d=e2e6g      d        Zd Zd Zd Zd Zd Zej                  j                  dg d      d        Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej                  j                  dg d      d        Zej                  j                  dej\                  ej`                  g      d        Zd Zd Zej                  j                  de.e0g      d        Zej                  j                  de.e4e0e5e2e6g      ej                  j                  dejF                  ejH                  f      d               Zej                  j                  de.e4e0e5e2e6g      d        Zej                  j                  de.e0e2g      d        Zd Zy)    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<   y y )Nrandom_state*   tolmax_iter    kwargss    k/var/www/html/diagnosisapp-backend/venv/lib/python3.12/site-packages/sklearn/linear_model/tests/test_sgd.py_update_kwargsr%       s<    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                 V    t        j                  |      }t        |   ||g|i |S N)sp
csr_matrixsuperfitselfXyargskw	__class__s        r$   r.   z_SparseSGDClassifier.fit+   s,    MM!w{1a-$-"--r&   c                 V    t        j                  |      }t        |   ||g|i |S r*   )r+   r,   r-   partial_fitr/   s        r$   r7   z _SparseSGDClassifier.partial_fit/   s-    MM!w"1a5$5"55r&   c                 L    t        j                  |      }t        |   |      S r*   )r+   r,   r-   decision_functionr0   r1   r5   s     r$   r9   z&_SparseSGDClassifier.decision_function3   s!    MM!w(++r&   c                 L    t        j                  |      }t        |   |      S r*   )r+   r,   r-   predict_probar:   s     r$   r<   z"_SparseSGDClassifier.predict_proba7   s!    MM!w$Q''r&   )__name__
__module____qualname__r.   r7   r9   r<   __classcell__)r5   s   @r$   r(   r(   *   s    .6,( (r&   r(   c                       e Zd Zd Zd Zd Zy)_SparseSGDRegressorc                 v    t        j                  |      }t        j                  j                  | ||g|i |S r*   )r+   r,   r   SGDRegressorr.   r0   r1   r2   r3   r4   s        r$   r.   z_SparseSGDRegressor.fit=   s5    MM!((,,T1aE$E"EEr&   c                 v    t        j                  |      }t        j                  j                  | ||g|i |S r*   )r+   r,   r   rD   r7   rE   s        r$   r7   z_SparseSGDRegressor.partial_fitA   s5    MM!((44T1aM$M"MMr&   c                 t    t        j                  |      }t        j                  j                  | |g|i |S r*   )r+   r,   r   rD   r9   r0   r1   r3   r4   s       r$   r9   z%_SparseSGDRegressor.decision_functionE   s3    MM!((::4PTPRPPr&   Nr=   r>   r?   r.   r7   r9   r!   r&   r$   rB   rB   <   s    FNQr&   rB   c                       e Zd Zd Zd Zd Zy)_SparseSGDOneClassSVMc                 t    t        j                  |      }t        j                  j                  | |g|i |S r*   )r+   r,   r   SGDOneClassSVMr.   rH   s       r$   r.   z_SparseSGDOneClassSVM.fitL   s3    MM!**..tQDDDDr&   c                 t    t        j                  |      }t        j                  j                  | |g|i |S r*   )r+   r,   r   rM   r7   rH   s       r$   r7   z!_SparseSGDOneClassSVM.partial_fitP   s3    MM!**66tQLLLLr&   c                 t    t        j                  |      }t        j                  j                  | |g|i |S r*   )r+   r,   r   rM   r9   rH   s       r$   r9   z'_SparseSGDOneClassSVM.decision_functionT   s3    MM!**<<T1RtRrRRr&   NrI   r!   r&   r$   rK   rK   K   s    EM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0r&   c                  .    t        |        t        di | S rQ   )r%   r(   r"   s    r$   SparseSGDClassifierrV   h   s    6)&))r&   c                  .    t        |        t        di | S rQ   )r%   rB   r"   s    r$   SparseSGDRegressorrX   m   s    6(((r&   c                  .    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 ]o  \  }}t        j                  ||      }||	z  }|||   z
  }|d||z  z
  z  }|||z  |z   z  }|	||z   |z  z  }	||z  }||z  }||dz   z  }|
|z  }
|
|	z  }
|
|dz   z  }
q ||
fS )Nr]                 ?{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      s0   ((1771:&hhqwwqz*OIE $&899aL %5FF5'"	Yqt83#+&&S8^e+,,sX~&..	17"1s7"QY&QW$%  ---r&   c                 T    | ddd|      }|j                  ||        | ddd|      }|j                  |||j                  j                         |j                  j                                 | dddd|      }|j                  ||       |j                  |j                  k(  sJ t        |j                  |j                         |j                  d       |j                  ||       |j                  |j                  k(  sJ t        |j                  |j                         y )	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
GCGGAqMu4bIDHHQSYY^^-cnn>Q>Q>SHT uRD 	HHQN77cffdjj#))4OO%O HHQN77dggdjj$**5r&   rt   r   )constantoptimal
invscalingadaptivec                 0    t        | t        t        |       y r*   )r   r1   r   rt   r   s     r$   test_warm_startr      s    
 UAq"%r&   c                 Z    | dd      }|j                  t        t               t        j                  t              d d t        j
                  f   }t        j                  ||f   }t        j                  t              5  |j                  t        |       d d d        y # 1 sw Y   y xY w)Nrn   Frv   r   )
r.   r1   r   ro   arraynewaxisc_pytestraises
ValueError)rt   r   Y_s      r$   test_input_formatr      sv    
 dE
*CGGAqM	!Q

]	#B	r2vB	z	" 2  s   B!!B*c                     | dd      }t        |      }|j                  d       |j                  t        t                | dd      }|j                  t        t               t        |j                  |j                         y )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 GGAqMtT*DHHQNsyy$**-r&   c                 n    | dd      }|j                  t        t               t        |d      sJ t        |d      sJ t        |d      sJ t        |d      sJ  |        }|j                  t        t               t        |d      rJ t        |d      rJ t        |d      rJ t        |d      rJ y )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GGAqM3(((3,---3-...3()))
'CGGAqMsO,,,s0111s1222s,----r&   c                     | d      } |        }t        d      D ]  }t        |      rg|j                  t        t        t        j                  t                     |j                  t        t        t        j                  t                     u|j                  t        t               |j                  t        t                t        |j                  |j                  d       | t        t        t        t        fv r#t        |j                  |j                  d       y | t        t         fv r!t#        |j$                  |j$                         y y )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     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           	          d}d}t        j                  t              }d||dk(  <   d||dk(  <    | ddd	||dd
      } | d
dd	||dd
      }|j                  t        |       |j                  t        |       t        | t        ||||j                  j                         |j                        \  }}t        |j                  j                         |j                         d       t        |j                  |d       y )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  s    DExx{H"HX]!HX] D  D 	HHQHHQ)-	JJ$$&*&O& djj..0/2G2G2ISUV):BGr&   c                     t         j                  t         j                  dkD     }t         j                  t         j                  dkD     }dD ]0  }d} | |d|      j                  ||      }|j                  |k  r0J  y )Nr   TF  r   )early_stoppingr   r   )irisdatatargetr.   n_iter_)rt   r1   r   r   r   r   s         r$   test_early_stoppingr     sv     			$++/"ADKK!O$A' &>thOSSq
 {{X%%%&r&   c                 "    | dddd      }|j                  t        j                  t        j                          | dddd      }|j                  t        j                  t        j                         |j                  |j                  kD  sJ y )Nr   rn   r   r   )r   r   r   r   r   )r.   r   r   r   r   )rt   r   r   s      r$   "test_adaptive_longer_than_constantr     sf     z$MDHHTYY$z$MDHHTYY$<<$,,&&&r&   c           
         t         j                  t         j                  }}d}d}d}d} | dt        j                  j                  |      |ddd ||      }|j                  ||       |j                  |k(  sJ  | dt        j                  j                  |      ddd ||	      }t        |      rt        ||
      }	nt        ||
      }	t        |	j                  ||            \  }
}t        j                  |
      }
|j                  ||
   ||
          |j                  |k(  sJ t        |j                  |j                         y )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     s0    99dkkqADGHYY**40/ 	D 	HHQN<<8###YY**40 D T#.APTU$7dKbhhq!n-Iw	"IHHQy\1Y<(<<8###tzz4::.r&   c           
          t         j                  t         j                  }}dD ]J  }dD cg c](  } | ||dd      j                  ||      j                  * }}t        |t        |             L y c c}w )Nr   )r^   r_   r   r   r   )r   n_iter_no_changer   r   )r   r   r   r.   r   r   sorted)rt   r1   r   r   r   n_iter_lists         r$   test_n_iter_no_changer     s     99dkkqA' = %/

 ! -!1	 SAYW

 

 	;{(;<=

s   -A1c                      | dd      }t        j                  t              5  |j                  t        t
               d d d        y # 1 sw Y   y xY w)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c           	          dD ]M  } | ddd|dd      }|j                  t        t               t        |j	                  t
              t               O y )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     sQ     I 8
 	13;;q>;78r&   c                     t        j                  t        d      5   |        j                  t        t
        t        j                  d             ddd       y# 1 sw Y   yxY w)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    sD    
 
z)T	U 4AqBHHTN34 4 4s   5AA#zklass, fit_paramsrx   r   offset_initc                      |        }t        j                  t        d      5   |j                  t        t
        fi | ddd       y# 1 sw Y   yxY w)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    sF     GM	z)A	B .!Q-*-. . .s   A		Ac                     d}t        j                  t        |      5   | d      j                  t        t
               ddd       y# 1 sw Y   yxY w)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
    sB     @G	z	1 5T"..q!45 5 5s   "A		Ac                 F      |        j                   t        t        fi | y)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     EGKKB%*%r&   c           
         d}d}d}d}t         j                  j                  d      }|j                  ||f      }|j                  |      } | dd||d	d
d	d      }t        j                  ||      }	t        j
                  |	      }	|j                  ||	       t        | ||	||      \  }
}|
j                  d
d      }
t        |j                  |
d       t        |j                  |d       y )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/
0A



#A
 	C 	q!A

AGGAqM)-eQ3)F&O&%--a4Ocii"E(92Fr&   c                 ,    |        j                  t        t              } |        j                  t        t        |j                          |        j                  t        t
              } |        j                  t        t
        |j                         y )Nrx   )r.   r  r  r   r1   r   r   s     r$   test_set_intercept_to_interceptr!  U  sX     '++b"
C	GKKBs~~K6
'++a
C	GKK1S^^K4r&   c                      | dd      }t        j                  t              5  |j                  t        t        j                  d             d d d        y # 1 sw Y   y xY w)Nrn   r  rv   r   	   )r   r   r   r.   X2ro   onesr   s     r$   test_sgd_at_least_two_labelsr'  _  sG     dR
(C	z	"  BGGAJ     s   *AA c                     d}t        j                  t        |      5   | d      j                  t        t
        t        j                  t
                     d d d        y # 1 sw Y   y xY w)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  sW    	 
 
z	/ O:&221a12NO O Os   ;A""A+c                 D    | dd      j                  t        t              }|j                  j                  dk(  sJ |j
                  j                  dk(  sJ |j                  ddgg      j                  dk(  sJ |j                  t              }t        |t               y )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_multiclassr6  x  s     dR
(
,
,R
4C99??f$$$>>4'''  1a&*00F:::;;r?Dt\*r&   c           
         d}d} | dd||dddd      }t        j                  t              }|j                  t        |       t        j
                  |      }t        |      D ]{  \  }}t        j                  |j                  d	         }d
|||k7  <   t        | t        |||      \  }	}
t        |	|j                  |   d       t        |
|j                  |   d       } y )Nr   rn   r   r   Tr]   Fr  r   r\   r   r   )ro   r   r1  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 HHRLEGGBiiG7# N2ggekk!n%ERK*.ub#sE*J''!,		!bI-s~~a/@"MNr&   c                 X    | dd      }|j                  t        t        t        j                  d      t        j                  d             |j
                  j                  dk(  sJ |j                  j                  sJ d       |j                  t              }t        |t               y )Nrn   r  r#  r.  r_   r   r   )r.   r%  r1  ro   rp   r   rq   r   r   r2  r   r3  r4  s      r$   "test_sgd_multiclass_with_init_coefr>    sz     dR
(CGGBbhhv.rxx{GK99??f$$$>>%%;;r?Dt\*r&   c                 F    | ddd      j                  t        t              }|j                  j                  dk(  sJ |j
                  j                  dk(  sJ |j                  ddgg      j                  dk(  sJ |j                  t              }t        |t               y )	Nrn   r  r^   )rv   r   n_jobsr.  r   r   r/  r0  r4  s      r$   test_sgd_multiclass_njobsrA    s     dR
2
6
6r2
>C99??f$$$>>4'''  1a&*00F:::;;r?Dt\*r&   c                 d    |        }t        j                  t              5  |j                  t        t
        t        j                  d             d d d         |        j                  t        t
        t        j                  d            } |        }t        j                  t              5  |j                  t        t
        t        j                  d             d d d         |        j                  t        t
        t        j                  d            }y # 1 sw Y   xY w# 1 sw Y   JxY w)N)r^   r^   r   r.  r]   r   r   )r   r   r   r.   r%  r1  ro   rp   r   s     r$   test_set_coef_multiclassrD    s    
 'C	z	" 4B"((6"234 '++b"(8+
9C 'C	z	" 7Brxx~67 '++b"RXXd^+
<C4 47 7s   0D-0D&D#&D/c                    t         j                  j                  D ]O  }t        |      }|dv rt        |d      sJ t        |d      r/J dj	                  |      }t        |d      rJ t        |d      rJ t        j                  t        d      5 }|j                   d d d        t        j                  j                  t              sJ |t        |j                  j                        v sJ t        j                  t        d      5 }|j                   d d d        t        |j                  j                  t              sJ |t        |j                  j                        v rPJ  y # 1 sw Y   xY w# 1 sw Y   bxY w)	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__strrG  )rt   r   r   	inner_msg	exec_infos        r$   $test_sgd_predict_proba_method_accessrQ    sa    **99 ?&1130003 3444OVVI sO444s$7888&H "!!"
 ioo77HHHIOO$=$= >>>>&L &%%& ioo77HHHIOO$=$= >>>>1?" "& &s   E/E;/E8	;F	c                    t        dddd       j                  t        t              }t	        |d      rJ t	        |d      rJ dD ]  } | |dd      }|j                  t        t               |j                  d	d
gg      }|d   dkD  sJ |j                  ddgg      }|d   dk  sJ t        j                  d      5  |j                  d	d
gg      }|d   |d   kD  sJ |j                  ddgg      }|d   |d   k  sJ 	 d d d          | ddd      j                  t        t              }|j                  ddgddgg      }|j                  ddgddgg      }t        t        j                  |d      t        j                  |d             t        |d   j                         d       t        j                   |d   dk\        sJ |j                  ddgg      }|j                  ddgg      }t        t        j"                  |d         t        j"                  |d                |j                  d	d
gg      }|j                  d	d
gg      }t%        t        j&                  |      |       |j                  ddgg      }|j                  ddgg      }t%        t        j&                  |      |        | ddd      }|j                  t        t               |j                  d	d
gg      }|j                  d	d
gg      }| t(        k7  r1t        j                  |d      t        j                  |d      k(  s3J t        j*                  |d      t        j*                  |d      k(  sJ t        j-                  d      }|j                  |g      }t        j                   |dk        r&|j                  |g      }t%        |d   dgd	z         y y # 1 sw Y   xY w)Nr   rn   r   )r   rv   r   r   r<   rG  rF  )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   errstaterG  r%  r1  r9   r   argmaxr   sumallargsortr   logrV   argminmean)rt   r   r   r   dlpxs          r$   test_sgd_probare    s    WD24
H
L
LQPQ
RCsO,,,s/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O&	c                    t        t              }t        j                  j	                  d      }t        j
                  |      }|j                  |       t        |d d f   }t        |   } | ddddd d      }|j                  ||       t        |j                  ddd	f   t        j                  d
             |j                  |      }t        ||       |j                          t        j                  |j                        sJ |j                  |      }t        ||       t!        j"                  t!        j$                  |            }t        j                  |j                        sJ |j                  |      }t        ||       y )N   r   rX  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   r5  s           r$   test_sgd_l1ru  4  s3    	BA
))


#C
))A,CKK
36
A
3A
C GGAqMsyyAbD)288D>:;;q>DtQ LLN;;syy!!!;;q>DtQ ,,v||C(
)C;;syy!!!;;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 
      }|j                  ||       t        |j	                  ddgg      t        j                  dg              | ddd	ddi
      }|j                  ||       t        |j	                  ddgg      t        j                  dg             y )Nr   r   皙rm   rl   r]   r]   r]   r\   r\   r  r   F)rv   r   r   r*  rX  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QAA
cDD
QCGGAqMs{{S$K=1288QC=A cDQPUJ
WCGGAqM s{{S$K=1288RD>Br&   c                     ddgddgddgddgg}g d} | ddd       }|j                  ||       ddgddgg}ddg} | ddddd      }|j                  ||       t        |j                  |j                  d	
       y )Nr]   r   )r   r   r]   r]   r  r   rv   r   r*  r`   rS  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GGAqM
Q!QA	
AAsTCC@PQLQ 		<#5#5qAr&   c                      | ddddi      }t        j                  t              5  |j                  t        t
               d d d        y # 1 sw Y   y xY w)Nr  r   r   r`   r}  r  r   s     r$   test_wrong_class_weight_labelr  }  sD     cD3x
@C	z	" 1  s   AAc                    ddd}t         j                  j                  d      }|j                  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
      }|j                  t        t        |       |j                  t        t        |       t        |j                  |j                         y )Ng333333?rW  )r]   r^   r   r]   r^   r  r  r}  r#  sample_weight)ro   r   r   random_samplerm  rq   r   r.   rk  r   r   )rt   class_weightsr  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                 `   t         j                  t         j                  }}t        |      }t	        j
                  |j                  d         }t        j                  j                  d      }|j                  |       ||   }||   } | ddd d      j                  ||      }t        j                  ||j                  |      d      }t        |d	d
        | dddd      j                  ||      }t        j                  ||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      }|j                  |
|       |j                  |      }t        j                  ||d      d	k  sJ  | ddd      }|j                  |
|       |j                  |      }t        j                  ||d      d	kD  sJ y )Nr      r   r   F)rv   r   r*  r   weightedr   rh   r]   r   r)  r   )r   r*  r   )r   r   r   r   ro   rl  rq   r   r   r   r.   r   f1_scorer   r   r   r   vstackconcatenate)rt   r1   r2   rt  r  r   f1clf_balancedX_0y_0X_imbalancedy_imbalancedy_preds                r$   test_balanced_weightr    s   
 99dkkqAaA
))AGGAJ
C
))


"CKK	#A	#A
ft$
N
R
RSTVW
XC			!S[[^Z	@BD!, t*e	c!Qi  
		!\11!4j	IBD!, cii););Q? AFAI,C
AF)C99aSC52:-.L>>1#
"23L D%
@CGGL,'[[^FAvz:TAAA J
FCGGL,'[[^FAvz:T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	
      }|j                  ||       t        |j	                  ddgg      t        j                  dg             |j                  ||dgdz  dgdz  z          t        |j	                  ddgg      t        j                  dg             y )Nr   r   rw  rm   rl   rx  r  r   Frv   r   r   rX  r]   r   r_   r^   r  r\   ry  rz  s       r$   test_sample_weightsr    s     	4,q	D$<#sc3ZPQAA
cD
>CGGAqMs{{S$K=1288QC=A GGAq!qcAg 5G6 s{{S$K=1288RD>Br&   c                 $   | t         t        fv r | ddd      }n| t        t        fv r | ddd      }t	        j
                  t              5  j                  t        t        t        j                  d             d d d        y # 1 sw Y   y xY w)Nr  r   Fr  )nur   r   r   r  )rR   rV   rM   rZ   r   r   r   r.   r1   r   ro   rl  r   s     r$   test_wrong_sample_weightsr    sw    
  344#EB	>#78	8sT?	z	" 21BIIaL12 2 2s   0BBc                      | d      }t        j                  t              5  |j                  t        t
               d d d        y # 1 sw Y   y xY w)Nrn   r   )r   r   r   r7   r   r   r   s     r$   test_partial_fit_exceptionr    s;    
d
C	z	"  B     s   AAc                    t         j                  d   dz  } | d      }t        j                  t              }|j                  t         d | t        d | |       |j                  j                  dt         j                  d   fk(  sJ |j                  j                  dk(  sJ |j                  ddgg      j                  dk(  sJ t        |j                  j                        }|j                  t         |d  t        |d         t        |j                  j                        }|sJ |       |j                  t              }t        |t               y )Nr   r_   rn   r   r   r]   rC  )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   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                 ^   t         j                  d   dz  } | d      }t        j                  t              }|j                  t         d | t        d | |       |j                  j                  dt         j                  d   fk(  sJ |j                  j                  dk(  sJ |j                  ddgg      j                  dk(  sJ t        |j                  j                        }|j                  t         |d  t        |d         t        |j                  j                        }|sJ |       y )	Nr   r_   rn   r   r   r]   r   r/  )r%  rq   ro   r   r1  r7   r   r   r9   r  r   )rt   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                 @   t         j                  d   dz  } | dt         j                  d         }t        j                  t              }|j                  t         d | t        d | |       |j                  j                  dt         j                  d   fk(  sJ |j                  j                  dk(  sJ |j                  t         |d  t        |d         |j                  j                  dt         j                  d   fk(  sJ |j                  j                  dk(  sJ y )Nr   r_   rn   )rv   r   r   r]   r   )r%  rq   ro   r   r1  r7   r   r   )rt   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     |        }|j                  t        t               |j                  t        t               y r*   )r.   r%  r1  r7   r   s     r$   test_fit_then_partial_fitr  %  s&    
 'CGGBOOOBr&   c                    t         t        t        ft        t        t
        ffD ]  \  }}} | ddd|d      }|j                  ||       |j                  |      }|j                  }t        j                  |      } | dd|d      }t        d      D ]  }	|j                  |||        |j                  |      }
|j                  |k(  sJ t        ||
d        y )Nrn   r^   F)rv   r   r   r   r   rv   r   r   r   r   r   )r1   r   r   r%  r1  r2  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$TARQVWB&&r*FF))B-$TUKq 	5AOOBGO4	5''+vv{{!&'1=>r&   c                    t         j                  j                  d      } | dddd|      }|j                  t        t
               dt        j                  |j                  t              t
        k(        k(  sJ  | dddd|      }|j                  t        t
               dt        j                  |j                  t              t
        k(        k(  sJ  | dd	|
      }|j                  t        t
               dt        j                  |j                  t              t
        k(        k(  sJ  | dddd|      }|j                  t        t
               dt        j                  |j                  t              t
        k(        k(  sJ y )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   ra  r   )rt   r   r   s      r$   test_regression_lossesr  B  s9   99((+L
 "!C GGAqM"''#++a.A-....
 *!C GGAqM"''#++a.A-....
d|
DCGGAqM"''#++a.A-....
 !C GGAqM"''#++a.A-....r&   c                 0    t        | t        t        d       y )Nr   )r   r%  r1  r   s    r$   test_warm_start_multiclassr  h  s    UBI.r&   c                     | dd      }|j                  t        t               t        |d      sJ t	               j                  t              D cg c]	  }ddg|    }}|j                  t        d d d df   |       y c c}w )Nrn   Fr   r   hamspamr\   )r.   r1   r   r   r   fit_transform)rt   r   r~   r2   s       r$   test_multiple_fitr  m  sx     dE
*CGGAqM3    &2^%A%A!%DE%	EAEGGAa"fIq 	Fs   Bc                      | ddd      }|j                  ddgddgddggg d       |j                  d   |j                  d   k(  sJ y )Nr  r^   Fr  r   r]   )r   r]   r^   )r.   r   r   s     r$   test_sgd_regr  }  sQ     cAU
;CGGaVaVaV$i099Q<399Q<'''r&   c           
         d}d}d}d}t         j                  j                  d      }|j                  ||f      }|j                  |      }t        j                  ||      } | dd||d	d
d	d      }	|	j                  ||       t        | ||||      \  }
}t        |	j                  |
d       t        |	j                  |d       y )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/
0A



#A 	q!A
 	C GGAqM)-eQ3)F&O&cii"E(92Fr&   c           
      @   d}d}d}d}t         j                  j                  d      }|j                  ||f      }|j                  |      }t        j                  ||      } | dd||d	d
d	d      }	|	j                  |d t        |dz         d d  |d t        |dz                |	j                  |t        |dz        d  d d  |t        |dz        d         t        | ||||      \  }
}t        |	j                  |
d       t        |	j                  d   |d       y )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/
0A



#A 	q!A
 	C OOA*IM*+A.2FC	A4F0GHOOAc)a-(*+A.#i!m2D2F0GH)-eQ3)F&O&cii"Eq)+<bIr&   c           
         d}d} | dd||dddd      }t         j                  d	   }|j                  t        d t	        |d
z         d d  t         d t	        |d
z                |j                  t        t	        |d
z        d  d d  t         t	        |d
z        d         t        | t        t         ||      \  }}t        |j                  |d       t        |j                  |d       y )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]+,Q/4Hc)a-6H1IJOOBs9q=)+,Q/C	A4F4H1IJ)-eRS%)H&O&cii"E(92Fr&   c                    d\  }}d}t         j                  j                  d      }t        j                  |||      j	                  |d      }d|j                         z  } | dddd	
      }|j                  ||       |j                  ||      }|dkD  sJ d|j                         z  |j                  |d      j                         z   } | dddd	
      }|j                  ||       |j                  ||      }|dkD  sJ y )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 	aggiA
_C"E
RCGGAqMIIaOE4<< 	aggi#))Iq17799A
_C"E
RCGGAqMIIaOE3;;r&   c                    d\  }}d}t         j                  j                  d      }t        j                  |||      j	                  |d      }d|j                         z  } | dddd	d
      }|j                  ||       |j                  ||      }|dkD  sJ d|j                         z  |j                  |d      j                         z   } | dddd	d
      }|j                  ||       |j                  ||      }|dkD  sJ y )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 	aggiA
"C GGAqMIIaOE4<< 	aggi#))Iq17799A
"C GGAqMIIaOE3;;r&   c                    d\  }}d}t         j                  j                  d      }t        j                  |||      j	                  |d      }d|j                         z  } | ddddd	
      }|j                  ||       |j                  ||      }|dkD  sJ d|j                         z  |j                  |d      j                         z   } | ddddd	
      }|j                  ||       |j                  ||      }|dkD  sJ y )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 	aggiA
WcrQV
WCGGAqMIIaOE4<< 	aggi#))Iq17799A
WcrQV
WCGGAqMIIaOE3;;r&   c           	         d\  }}t         j                  j                  d      }|j                  ||      }|j                  |      }t        j                  ||      }dD ]|  }dD ]u  }t        j                  ||d      }	|	j                  ||        | dd||d	      }
|
j                  ||       d
||fz  }t        |	j                  |
j                  d|       w ~ y )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  s     $Iz
))


"C		)Z(A 		*-
q#$A  Q' 	QH((heB FF1aL$!#C GGAqM7:?9JK   #))QP#	QQr&   c                 &   t         j                  d   dz  } | d      }|j                  t         d | t        d |        |j                  j                  t         j                  d   fk(  sJ |j
                  j                  dk(  sJ |j                  ddgg      j                  dk(  sJ t        |j                  j                        }|j                  t         |d  t        |d         t        |j                  j                        }|sJ |       y )Nr   r_   rn   r   r]   rC  )	r1   rq   r7   r   r   r   r   r  r   )rt   r  r   r  r  s        r$   test_partial_fitr  X  s    GGAJ!OE
d
COOAfuIq%y)99??qwwqzm+++>>4''';;Ax &&$...
SYY^^
COOAefIqy)
SYY^^
COO3r&   c                 h    | ddd|d      }|j                  t        t               |j                  t              }|j
                  } | dd|d      }t        d      D ]  }|j                  t        t                |j                  t              }|j
                  |k(  sJ t        ||d       y )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
SCGGAqM[[^FA
dR
GC1X 1kk!nG66Q;;fgq9r&   c                 h     | d      }|j                  d       |j                  d   d   dk(  sJ y )Nre   )r  r  r  r]   )r   rH  r   s     r$   test_loss_function_epsilonr  z  s8    

CNN3Ng&q)S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]   rl   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    sL   xx
#88AGGAJ'LFF
IE $$aL %5FF5$	Y8HHAscBhl+,,#.5())sb8m,-55	CQY&QW$#%& ....r&   c                 L    | ddd|      }|j                  |        | ddd|      }|j                  ||j                  j                         |j                  j                                 | dddd|      }|j                  |       |j                  |j                  k(  sJ t        |j                  |j                         |j                  d	       |j                  |       |j                  |j                  k(  sJ t        |j                  |j                         y )
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
CCGGAJCdEDDHHQ#))..*8H8H8JHK CdEdRTUDHHQK77cffDJJ		*OOsOHHQK77dggDJJ

+r&   c                 &    t        | t        |       y r*   )r  r1   r   s     r$   test_warm_start_oneclassr    s     eQ+r&   c                      | d      }t        |      }|j                  d       |j                  t                | d      }|j                  t               t	        |j
                  |j
                         y )Nr`   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                 D   t         j                  d   dz  } | d      }|j                  t         d |        |j                  j                  t         j                  d   fk(  sJ |j                  j                  dk(  sJ |j                  ddgg      j                  dk(  sJ |j                  }|j                  t         |d         |j                  |u sJ t        j                  t              5  |j                  t         d d df          d d d        y # 1 sw Y   y xY w)Nr   r_   r  r  r]   rC  )	r1   rq   r7   r   r   r   r   r   r   )rt   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   0DDc                     | ddd|d      }|j                  t               |j                  t              }|j                  }|j
                  }|j                  } | ddd|d      }t        d      D ]  }|j                  t                |j                  t              }|j                  |k(  sJ t        ||       t        |j
                  |       t        |j                  |       y )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%
PCGGAJ$$Q'HA99D[[F
4dQb%
PC1X %%a(I66Q;;Hi(CIIt$CKK(r&   c                    d}d} | dd||dd      } | dd||dd      }|j                  t               |j                  t               t        | t        |||j                  j	                         |j
                  	      \  }}t        |j                  j	                         |j	                                t        |j
                  |       y )
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 $2SXD  D 	HHQKHHQK $1q$djj&6&6&8dll$ L. DJJ$$&(:(:(<=DLL.1r&   c           	      4   d}d}d}d}t         j                  j                  d      }|j                  ||f      } | d||dd	dd
      }|j	                  |       t        | |||      \  }}	t        |j                  |       t        |j                  |	       y )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/
0A
 C GGAJ#03#C L.CII|,CKK0r&   c           	         d}d}d}d}t         j                  j                  d      }|j                  ||f      } | d||dd	dd
      }|j	                  |d t        |dz         d d         |j	                  |t        |dz        d  d d         t        | |||      \  }}	t        |j                  |       t        |j                  |	       y )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/
0A
 C OOA*IM*+A./OOAc)a-(*+A./#03#C L.CII|,CKK0r&   c           	      b   d}d} | d||dddd      }t         j                  d   }|j                  t         d t        |d	z                |j                  t         t        |d	z        d         t	        | t         ||      \  }}t        |j                  |       t        |j                  |       y )
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 L.CII|,CKK0r&   c                  p   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      }|j                  |        t	        |j
                  t        j                  d	d
g             |j                  d   dk(  sJ |j                  |      }t	        |t        j                  ddg             |j                  |      |j                  z
  }t	        |j                  |      |       |j                  |      }t        |t        j                  ddg             y )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decr5  s         r$   test_sgd_oneclassr  q  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                  0   d} d}d}t         j                  j                  |      }d|j                  dd      z  }t         j                  |dz   |dz
  f   }d|j                  dd      z  }t         j                  |dz   |dz
  f   }t        |d| 	      }|j                  |       |j                  |      }|j                  |      j                  d
d      }	d}
t        ||      }t        | dd|
|d       }t        ||      }|j                  |       |j                  |      }|j                  |      j                  d
d      }t        j                  ||k(        dk\  sJ t        j                  t        j                  |	|f            d   }|dk\  sJ y )Nr  r  r   rW    r^   r   rbf)gammakernelr  r]   r\      )r  r   T)r  r   r   r   r   r   rj   rS  re   )ro   r   r   r  r_r   r.   r   r9   r  r
   rM   r   ra  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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?l23t;;;{{2>>9l*CDEdKHs??r&   c                     t        j                  dddd      \  } }t        ddd dd	d
      j                  | |      }t        dddd
d       j                  | |      }t	        |j
                  |j
                         t        ddd ddd
      j                  | |      }t        dddd
d       j                  | |      }t	        |j
                  |j
                         y )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!Qi  TABD	c!Qi  fllFLL9  
c!Qi  TABD	c!Qi  fllFLL9r&   c                     t        j                  d      5  t         j                  j                  d      } d}d}| j	                  ||f      }|d d d dfxx   dz  cc<   t        j
                  |      j                         sJ t               j                  |      }t        j
                  |      j                         sJ | j	                  |      }t        j                  ||      d	kD  j                  t         j                        }t        t        j                  |      dd
g       t        ddd      }|j                  ||       t        j
                  |j                         j                         sJ d}t#        j$                  t&        |      5  |j                  ||       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nraiser]  r   r   r   r  r^   gu <7~rl   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   rZ  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_overlowr1    s   		! "ii##A&	
JJY
3J4	!RaR%E{{1~!!###
  >//2{{8$((*** zzzz2VVHl+c199"((C299Q<!Q0CoL 			(A{{5;;'++--- 	
 ]]:Y7 	IIaO	C" "B	 	C" "s$   FG
F>-G
>G	G

Gc                  <   t        ddddddddd 		      } t        j                  d
      5  | j                  t        j
                  t        j                         d d d        t        j                  | j                        j                         sJ y # 1 sw Y   9xY w)Nr   r   Tr  rW  rn   r   r   )	r   r   r   r   r  rv   r   r   r   r(  r)  )
rR   ro   rZ  r.   r   r   r   r*  r   r]  )r/  s    r$   'test_numerical_stability_large_gradientr3    s     
E 
	! *		$))T[[)*;;u{{#'')))* *s   /BBr   )r   r   r  c           	      @   t        ddd| dd d      }t        j                  d      5  |j                  t        j
                  t        j                         d d d        t        |j                  t        j                  |j                               y # 1 sw Y   =xY w)	Ng     j@r   r  Fr  )rv   r   r   r   r   r   r   r(  r)  )
rR   ro   rZ  r.   r   r   r   r   r   
zeros_like)r   r/  s     r$   test_large_regularizationr6    sw      E 
	! *		$))T[[)*ekk2==+EF* *s   /BBc                     t               j                  t        j                        } t        j                  dk(  }d}t        d d|      }|j                  | |       ||j                  k(  sJ d}t        dd|      }|j                  | |       ||j                  kD  sJ |j                  dkD  sJ t        dd|      }|j                  | |       |j                  |j                  kD  sJ |j                  dkD  sJ t        dd	d
      }d}t        j                  t        |      5  |j                  | |       d d d        |j                  dk(  sJ y # 1 sw Y   xY w)Nr]   r   r   )r   r   r   rh  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_parameterr>    sI   &&tyy1AqA H1xHGKK1w&&& HHEGKK1goo%%%??Q !hGGKK1??W__,,,??Q QDqAG	 
 
(	@ Aq??a s   )EEc                     |D ]?  \  }}}}t        | j                  ||      |       t        | j                  ||      |       A y r*   )r   py_losspy_dloss)loss_functioncasesr   r2   expected_lossexpected_dlosss         r$   _test_loss_commonrF  B  sL     05 J+1m^M11!Q7GM221a8.IJr&   c                      t        j                  d      } g d}t        | |       t        j                  d      } g d}t        | |       y )Nrm   ))g?rm   rl   rl          r   rl   rl   )rm   rm   rl   r   )r   r   rl   rm   )r`   rm   r`   r   )r  r         @rm   )ra   r   r`   rm   )rl   rm   r]   r   rl   )rm   rm   rl   rl   )rV  r   rl   rl   )rl   rm   rl   r   )rl   r   rl   rm   )r`   r   r`   rm   )r  r   r  rm   )ra   rm   r`   r   )r   rm   rm   r   )sgd_fastHingerF  r   rC  s     r$   test_loss_hingerO  J  sH     >>#D
E dE" >>#D
E dE"r&   c                  N    t        j                  d      } g d}t        | |       y )Nrm   )rK  rH  )rm   r         @rQ  r   rm   rQ        )r`   rm   g      ?r   r`   r   g      @rJ  )rL  SquaredHingerF  rN  s     r$   test_gradient_squared_hingerV  k  s%      %DE dE"r&   c                  L    t        j                         } g d}t        | |       y )N)rK  )r   r   rl   rl   )r  rm   rl   rl   )rl   rm   rm   rI  rR  rT  )rI  rm      rS  )g      rm      rS  )rL  ModifiedHuberrF  rN  s     r$   test_loss_modified_huberr[  z  s#    !!#D
E dE"r&   c                  N    t        j                  d      } g d}t        | |       y )Nr  )rl   rl   rl   rl   r  rl   rl   rl   gffffff rI  rl   rl   gffffff@rJ  rl   rl   )皙@r  r  rm   )r  r   333333@rm   )r  ra  r  r   )rI  rm   rb  r   )rL  EpsilonInsensitiverF  rN  s     r$   test_loss_epsilon_insensitiverd    s%    &&s+D
E dE"r&   c                  N    t        j                  d      } g d}t        | |       y )Nr  )r]  r^  r_  r`  )ra  r  rn   rX  )r  r   R @g333333@)r  ra  rn   gɿ)rI  rm   rf  g333333)rL  SquaredEpsilonInsensitiverF  rN  s     r$   %test_loss_squared_epsilon_insensitiverh    s%    --c2D
E dE"r&   c            	      \   t        ddddddd      } | j                  t        j                  t        j                         | j
                  | j                  kD  sJ | j
                  | j                  dz   k  sJ | j                  t        j                  t        j                        d	kD  sJ y )
Nr   r   Tr   r   r^   )rv   r   r   r   r   r   r@  r  rf   )rR   r.   r   r   r   r   r   r  )r   s    r$   0test_multi_thread_multi_class_and_early_stoppingrj    s     C GGDIIt{{#;;-----;;--222299TYY,s222r&   c                      t        j                  ddd      g dd} t        dddd	
      }t        || ddd	      }|j	                  t
        j                  t
        j                         |j                  dkD  sJ y )Nri  r$  )r    r   r  )rv   r   rn   r   Tr   )r   r   r   r   r    r^   )n_iterr@  r   rf   )	ro   logspacerR   r   r.   r   r   r   best_score_)
param_gridr   searchs      r$   -test_multi_core_gridsearch_and_early_stoppingrr    sn    
 RA&'J
 D4ST
UCZ!RSTF
JJtyy$++&###r&   backend)lokymultiprocessing	threadingc                    t         j                  j                  d      }t        j                  dddd|      }|j	                  dd      }t        dd	d
      }|j                  ||       t        ddd
      }t        j                  |       5  |j                  ||       d d d        t        |j                  |j                         y # 1 sw Y   *xY w)Nr   r  rh  g{Gz?csr)densityrI  r   r  r   r]   )r   r@  r   ri  )rs  )ro   r   r   r+   choicerR   r.   joblibparallel_backendr   r   )rs  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 An22L4F4FG s   CC	Estimatorc                 h   | t         j                  k(  rt        j                  |      \  }}nt        j                  |      \  }} | |d      }t        j                  t              5  |j                  ||      j                  }|j                  dk(  sJ 	 d d d         | |d      }t        j                  t              5  |j                  ||      j                  }|j                  dk(  sJ 	 d d d        t                | |dz   d      }t        j                  t              5  |j                  ||      j                  }|j                  dk(  sJ 	 d d d        t        j                  |z
        j                         dkD  sJ y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   MxY w)N)r   r]   )r   r   rm   )r   rD   r   make_regressionr"  r   r8  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1++9KL1
 !3a
@C	(	)  771a=..{{a  !3a
@C	(	)  771a=..{{a  $&67 !3a!7!
DC	(	)  ''!Q---{{a  66"_4599;cAAA)   
      s$   *.F.F-.F(FF%(F1c                    t         j                  t         j                  }}|j                  d   }d}t	        j
                  ddd|      }t        t        j                        }| j                  t        d|       |j                  ||       |j                  d   d	d
 \  }}|j                  d   t        ||z        k(  sJ |j                  d   t        ||z        k(  sJ y)ziTest that data passed to validation callback correctly subsets.

    Non-regression test for #23255.
    r   rX  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    
 99dkkqA
I

$
$/	C 0IIJD,.H$OGGAqM>>!$Qq)LE5;;q>S-@!@AAAA;;q>S-@!@AAAAr&   c                  .   t         j                  t         j                  }} t        j                  |      }d}t        j                  d|d      }d}t        j                  t        |      5  |j                  | ||       d d d        y # 1 sw Y   y xY w)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   r5  r   rR   r   r   r   r.   )r1   r   r  r   r   error_messages         r$   (test_sgd_error_on_zero_validation_weightr  0  s     99dkkqAMM!$M

$
$1DSTC
	#  
z	7 31M23 3 3s   -BBc                 F     | d      j                  t        t               y)z!non-regression test for gh #25249r]   )verboseN)r.   r1   r   )r  s    r$   test_sgd_verboser  C  s     aQ"r&   SGDEstimator	data_typec                     t         j                  |      }t        j                  t        |      } |        }|j                  ||       |j                  j                  |k(  sJ y )Ndtype)r1   r+  ro   r   r   r.   r   r  )r  r  _X_Y	sgd_models        r$   test_sgd_dtype_matchr  I  sO     
)	B	!9	%BIMM"b??  I---r&   c                    t         j                  t        j                        }t        j                  t
        t        j                        }t         j                  t        j                        }t        j                  t
        t        j                        } | d      }|j                  ||        | d      }|j                  ||       t        |j                  |j                         y )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88ARZZ(D88"**8%D88ARZZ(D2&F
JJtT2&F
JJtTFLL&,,/r&   c                      | d      }t        j                  t        d      5  |j                  t        t
               d d d        y # 1 sw Y   y xY w)Nr   r   z	average=0r   )r   r8  FutureWarningr.   r1   r   )r  r  s     r$   *test_passive_aggressive_deprecated_averager  y  s<    
A
C	m;	7 1  s   A		Ac                  L    t               } t        |       j                  dk(  sJ y)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    s&    
  II--1CCCCr&   )Nrl   )rp  unittest.mockr   r{  numpyro   r   scipy.sparsesparser+   sklearnr   r   r   sklearn.baser   r   sklearn.exceptionsr	   sklearn.kernel_approximationr
   sklearn.linear_modelr   rL  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%  r1  r2  r3  r   r   rk  rm  	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,  r6  r<  r>  rA  rD  rQ  re  ru  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&  r1  r3  r6  r>  rF  rO  rV  r[  rd  rh  rj  rr  r  r  r  r  r  r  r  r  r  r  r  r!   r&   r$   <module>r     s8         3 3 - 1 1 6 5 
 + S S # " (<55 ($Q,33 QSL77 S0
/
1
*
)
+ BHHr2hR2r(QFQFQFCDBHHr2hAA'( RXX	Q		s	
A	s	c
	R	
D		
B
 Wq[E7Q;'Q.RXXc{QFQG,-& RXX	 RXX&' RXX      	 RXX&'x RXX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 =2E"FG8 H8" m0.BVW44 	)8288D>:;	/$@A	-$89	xrxx~>?	.. 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" }lN&ST UDr&   