
    -iR                    "   S SK r S SKrS SKrS SKJr  S SKrS SKrS SKJ	r	J
r
JrJr  S SK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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&  S SK'J(r(J)r)  S SK*J+r+J,r,J-r-J.r.J/r/  S SK0J1r1  S SK2J3r3J4r4J5r5  S SK6J7r7  S SK8J9r9J:r:  S SK;J<r<J=r=  S SK>J?r?J@r@JArA  \R                  R                  S5      rD\" \"S S9r!\" \$S S9r#SrESS /S S/SS//rF/ SQrG/ SQrH\" 5       rIS rJ\R                  R                  S\A5      S  5       rLS! rM\=S" 5       rN\R                  R                  S\A5      S# 5       rO\R                  R                  S$5      \R                  R                  S%5      \R                  R                  S&\!" \P" \IR                  5      S'S(S)9\!" \P" \IR                  5      S*S+9\!" \P" \IR                  5      S,S+9\!" \P" \IR                  5      S-S.S(S/S09\!" \P" \IR                  5      S1S.S(S/S09\!" \P" \IR                  5      S2S+9/5      S3 5       5       5       rR\R                  R                  S$5      \R                  R                  S4\!\#/5      S5 5       5       rS\R                  R                  S4\!\#/5      S6 5       rT\R                  R                  S$5      \R                  R                  S7/ S8Q5      S9 5       5       rU\R                  R                  S$5      S: 5       rV\R                  R                  S;\@5      S< 5       rWS= rXS> rYS? rZS@ r[SA r\SB r]SC r^\R                  R                  SDSESF/4SGSHSI/4SJSHSI/4SKSF/4SLSHSI/4/5      SM 5       r_SN r`\R                  R                  S\A5      SO 5       ra\R                  R                  S$5      SP 5       rbSQ rc\R                  R                  S$5      \R                  R                  SRSSST/5      SU 5       5       rd\R                  R                  SRSSST/5      SV 5       re\R                  R                  SWSXSYSZ.SXSYS[S\./5      \R                  R                  S]SWS^/5      S_ 5       5       rf\R                  R                  S`Sa5      \R                  R                  S7S5      Sb 5       5       rg\R                  R                  S7Sc5      Sd 5       rhSe riSf rj\R                  R                  SSg /\A-   5      Sh 5       rkSi rlSj rm\R                  R                  S\A5      Sk 5       rn\R                  R                  S\A5      Sl 5       roSm rpSn rq\R                  R                  S\A5      So 5       rr\R                  R                  SpS//5      \R                  R                  SqSrSs/5      St 5       5       rsSu rt\R                  R                  S$5      \R                  R                  Sv\R                  " SSw5      5      \R                  R                  SxS(Sy/5      \R                  R                  Sz/ S{Q5      S| 5       5       5       5       rv\R                  R                  S$5      \R                  R                  S%5      \R                  R                  S7\E5      S} 5       5       5       rw\R                  R                  S7\x" \y" \E5      \y" S'/5      -
  5      5      \R                  R                  S~S5      \R                  R                  SRS5      S 5       5       5       rz\R                  R                  S7S2S,/5      \R                  R                  SRS5      \R                  R                  SqS5      S 5       5       5       r{\R                  R                  S\A5      S 5       r|\R                  R                  S$5      \R                  R                  SxS(Sy/5      \R                  R                  S7/ SQ5      \R                  R                  SRSSST/5      \R                  R                  S\A5      S 5       5       5       5       5       r}S r~S r\R                  R                  S/ SQ5      \R                  R                  SSS/5      S 5       5       r\R                  R                  S/ SQ5      S 5       r\R                  R                  S\GR                  " SSS5      5      \R                  R                  S/ SQ5      S 5       5       r\R                  R                  SS5      S 5       r\R                  R                  S$5      S 5       r\R                  R                  S$5      \R                  R                  SqS5      \R                  R                  SxS5      S 5       5       5       r\R                  R                  S$5      S 5       rS r\R                  R                  S\GR                  " SSS5      5      \R                  R                  S/ SQ5      S 5       5       rS r\R                  R                  S$5      \R                  R                  S%5      \R                  R                  S\!" S SS9\#" S SSSSS9/S S9\R                  R                  S7\E5      S 5       5       5       5       r\R                  R                  S7\x" \y" \E5      \y" S'/5      -
  5      5      S 5       r\R                  R                  SSrSSSSS.SsSTSSS.SsSSSSS./5      S 5       rS r\R                  R                  S$5      \R                  R                  S7/ SQ5      \R                  R                  SRSSST/5      S 5       5       5       r\R                  R                  S$5      \R                  R                  Sx/ SQ5      \R                  R                  S]SSSS\.S^/5      S 5       5       5       r\R                  R                  S7\E5      \R                  R                  S\A5      S 5       5       rS rS r\" STS9S 5       rS r\R                  R                  S7\E5      S 5       rS rS rS r\R                  R                  S\!\#/5      S 5       rg)    N)partial)assert_allcloseassert_almost_equalassert_array_almost_equalassert_array_equal)sparse)LinAlgWarningsvd)config_context)HalfMultinomialLoss)clone)	load_irismake_classificationmake_low_rank_matrix)ConvergenceWarning)SGDClassifier)LogisticRegression)LogisticRegressionCV)_log_reg_scoring_path_logistic_regression_path)
get_scorerlog_loss)GridSearchCVLeaveOneGroupOutStratifiedKFoldcross_val_scoretrain_test_split)OneVsRestClassifier)LabelEncoderStandardScalerscale)l1_min_c)compute_class_weightshuffle)ignore_warningsskip_if_no_parallel)	_IS_32BITCOO_CONTAINERSCSR_CONTAINERSz6error::sklearn.exceptions.ConvergenceWarning:sklearn.*random_state)lbfgs	liblinear	newton-cgnewton-choleskysagsaga   )r   r3   r3   )   r3   r   c                    [        U5      n[        R                  " U5      nUR                  S   nU R	                  X5      R                  U5      n[        U R                  U5        UR                  U4:X  d   e[        Xb5        U R                  U5      nUR                  X54:X  d   e[        UR                  SS9[        R                  " U5      5        [        UR                  SS9U5        g)z;Check that the model is able to fit the classification datar   r3   axisN)lennpuniqueshapefitpredictr   classes_predict_probar   sumonesargmax)clfXy	n_samplesclasses	n_classes	predictedprobabilitiess           [/var/www/html/venv/lib/python3.13/site-packages/sklearn/linear_model/tests/test_logistic.pycheck_predictionsrL   ?   s    AIiilGa I%%a(Is||W-??yl***y$%%a(M9"8888m//Q/79KL}+++3Q7    csr_containerc                    [        [        SS9[        [        5        [        [        SS9U " [        5      [        5        [        [        SSS9[        [        5        [        [        SSS9U " [        5      [        5        [        [        SSS9[        [        5        [        [        SSS9U " [        5      [        5        g )Nr   r*   d   )Cr+   Ffit_interceptr+   )rL   r   rD   Y1rN   s    rK   test_predict_2_classesrV   Q   s     (a8!R@(a8-:JBO(3Q?BG(3Q?qAQSUV(u1MqRTUQ?qAQSUrM   c                      " S S5      n U " 5       n/ SQnSn[        X!US9n[        SS9u  pVUR                  XV5        UR                  S   US   :X  d   eUR                  U[        U5      -  :X  d   eSUl        UR                  XTR                  U5      5      nXqR                  S   :X  d   eUR                  S:X  d   eg )	Nc                   $    \ rS rSrS rSS jrSrg)0test_logistic_cv_mock_scorer.<locals>.MockScorerb   c                 $    SU l         / SQU l        g )Nr   )皙?g?皙?      ?callsscores)selfs    rK   __init__9test_logistic_cv_mock_scorer.<locals>.MockScorer.__init__c   s    DJ.DKrM   Nc                     U R                   U R                  [        U R                   5      -     nU =R                  S-  sl        U$ )Nr3   )ra   r`   r8   )rb   modelrD   rE   sample_weightscores         rK   __call__9test_logistic_cv_mock_scorer.<locals>.MockScorer.__call__g   s4    KK

S-= =>EJJ!OJLrM   r_   N)__name__
__module____qualname____firstlineno__rc   ri   __static_attributes__ rM   rK   
MockScorerrY   b   s    	/	rM   rr   )r3   r4         r4   )Csscoringcvr   r*   r3   )	r   r   r<   C_r`   r8   rh   r=   ra   )rr   mock_scorerru   rw   lrrD   rE   custom_scores           rK   test_logistic_cv_mock_scorerr|   a   s      ,K	B	
B	R	@BA.DAFF1L 558r!u SW,,, K88Azz!}-L--a0000!!!rM   c                      [        SS9u  p[        SSS9nSn[        R                  " [        US9   UR                  X5        S S S 5        g ! , (       d  f       g = f)Nr   r*   r-   r4   )solvern_jobsz\'n_jobs' > 1 does not have any effect when 'solver' is set to 'liblinear'. Got 'n_jobs' = 2.match)r   r   pytestwarnsUserWarningr<   )rD   rE   rz   warning_messages       rK   test_lr_liblinear_warningr      sK    A.DA	;q	9B	 
 
k	9
q 
:	9	9s   A
Ac                     [        [        SS9[        [        5        [        [        SS9U " [        5      [        5        g )N
   rQ   )rL   r   rD   Y2rU   s    rK   test_predict_3_classesr      s+    (2.26(2.a0@"ErM   z5ignore:.*'multi_class' was deprecated.*:FutureWarningzIignore:.*'liblinear' solver for multiclass classification is deprecated.*rC   r-   ovr)rQ   r~   multi_classr,   )rQ   r~   r.   r0   {Gz?*   )rQ   r~   tolr   r+   r1   r/   c                    [         R                  R                  u  p[         R                  [         R                     nU R
                  S:X  aZ  [        R                  " 5          [        R                  " S[        5        U R                  [         R                  U5        SSS5        O U R                  [         R                  U5        [        [        R                  " U5      U R                  5        U R                  [         R                  5      n[        R                   " XC:H  5      S:  d   eU R#                  [         R                  5      n[%        UR'                  SS9[        R(                  " U5      5        [         R                  UR+                  SS9   n[        R                   " XC:H  5      S:  d   eg! , (       d  f       GN= f)zTest logistic regression with the iris dataset.

Test that both multinomial and OvR solvers handle multiclass data correctly and
give good accuracy score (>0.95) for the training data.
r,   ignoreNffffff?r3   r6   )irisdatar;   target_namestargetr~   warningscatch_warningssimplefilterr   r<   r   r9   r:   r>   r=   meanr?   r   r@   rA   rB   )rC   rF   
n_featuresr   predrJ   s         rK   test_predict_irisr      s6   : !IIOOIt{{+F
zzW$$&!!(,>?GGDIIv& '& 			6"ryy(#,,7;;tyy!D774>"T)))%%dii0MM%%1%-rwwy/AB]11q19:D774>"T))) '&s   #<F::
G	LRc                    [         R                  [         R                  p!S HC  nSU S3nU " USS9n[        R                  " [
        US9   UR                  X5        S S S 5        ME     S HC  nSU-  nU " US	S
S9n[        R                  " [
        US9   UR                  X5        S S S 5        ME     S HC  nSU-  nU " USS
S9n[        R                  " [
        US9   UR                  X5        S S S 5        ME     S HC  nSU S3nU " USS9n[        R                  " [
        US9   UR                  X5        S S S 5        ME     U [        L a=  SnU " S SS9n[        R                  " [
        US9   UR                  X5        S S S 5        g g ! , (       d  f       GMy  = f! , (       d  f       GMC  = f! , (       d  f       GM  = f! , (       d  f       M  = f! , (       d  f       g = f)Nr-   zSolver z( does not support a multinomial backend.multinomial)r~   r   r   )r,   r.   r/   r0   z/Solver %s supports only 'l2' or None penalties,l1r   )r~   penaltyr   r,   r.   r/   r0   r1   z1Solver %s supports only dual=False, got dual=TrueT)r~   dualr   z;Only 'saga' solver supports elasticnet penalty, got solver=.
elasticnet)r~   r   z6penalty=None is not supported for the liblinear solverr-   r   r~   )r   r   r   r   raises
ValueErrorr<   r   )r   rD   rE   r~   msgrz   s         rK   test_check_solver_optionr      s    99dkkq  xGHv=9]]:S1FF1L 21   C?&Hvt?]]:S1FF1L 21 C
 KAFJvDe<]]:S1FF1L 21 K  KF8STUv|4]]:S1FF1L 21   
F[1]]:S1FF1L 21  5 21 21
 21 21 21s<   FFF1&G/G
F	
F.	1
G	
G	
G$c                     U " SSS9n[         R                  " [        SS9   UR                  [        R
                  " SS/SS	//5      [        R
                  " S
S/5      5        S S S 5        g ! , (       d  f       g = f)Nr   r1   r   z.*l1_ratio.*r   r3   r4   rs   rt   r   )r   r   r   r<   r9   array)r   rf   s     rK   $test_elasticnet_l1_ratio_err_helpfulr      s[     |F3E	z	9		"((QFQF+,bhh1v.>? 
:	9	9s   AA--
A;r~   r,   r.   r0   r1   c                     [         R                  S:  R                  [        R                  5      n[        R
                  " SS/5      U   n[        U SSSS9nUR                  [         R                  U5        UR                  R                  S[         R                  R                  S   4:X  d   eUR                  R                  S	:X  d   e[        UR                  [         R                  5      U5        [        U SSS
S9nUR                  [         R                  U5        UR                  [        R                  " UR!                  [         R                  5      SS9   n[        R"                  " XA:H  5      S:  d   eg )Nr   setosaz
not-setosar   r     )r~   r   r+   max_iterr3   r3   F)r~   r   r+   rS   r6   ?)r   r   astyper9   intpr   r   r<   r   coef_r;   
intercept_r   r=   r>   rB   predict_log_probar   )r~   r   rC   mlrr   s        rK   test_multinomial_binaryr      s    kkAo%%bgg.FXXx./7F
=rDC GGDIIv99??q$))//!"45555>>4'''s{{499-v6
=rQVC GGDIIv<<		#"7"7		"BKLD774>"S(((rM   c                 h   [        U S9u  p[        SSSU S9nUR                  X5        UR                  U5      nUR	                  U5      n[
        R                  " U5      [
        R                  " U5      [
        R                  " U* 5      -   -  n[
        R                  SU-
  U4   n[        XW5        g )Nr*   r   r1   MbP?)r   r~   r   r+   r3   )	r   r   r<   decision_functionr?   r9   expc_r   )global_random_seedrD   rE   rC   decisionprobaexpected_proba_class_1expected_probas           rK   %test_multinomial_binary_probabilitiesr     s     ,>?DA
!'	C GGAM$$Q'Ha EVVH-1ABFFH9DU1UVUU1557MMNN.rM   coo_containerc                 H   [         R                  R                  u  p[         R                  [         R                     n[        [         R                  5      n[        SS9R                  XC5      nUR                  U5      nUR                  5         [        R                  " UR                  5      (       d   eUR                  U5      nU " U5      nUR                  U5      n	UR                  5         UR                  U5      n
[        Xg5        [        Xi5        [        Xj5        g Nr   r*   )r   r   r;   r   r   r!   r   r<   r   sparsifyr   issparser   densifyr   )r   rF   r   r   rD   rC   pred_d_dpred_s_dsp_datapred_s_spred_d_ss              rK   test_sparsifyr   0  s     !IIOOIt{{+FdiiA
!
,
0
0
;C$$Q'HLLN??399%%%%$$Q'HAG$$W-HKKM$$W-Hh1h1h1rM   c                  *   [         R                  R                  S5      n U R                  S5      n[         R                  " UR
                  S   5      nSUS'   [        SS9nUS S n[        R                  " [        5         UR                  [        U5        S S S 5        [        R                  " [        5         UR                  X5      R                  U R                  S5      5        S S S 5        g ! , (       d  f       Na= f! , (       d  f       g = f)Nr   )   r   r*   r2   )rs      )r9   randomRandomStaterandom_samplerA   r;   r   r   r   r   r<   rD   r=   )rngX_y_rC   y_wrongs        rK   test_inconsistent_inputr   I  s    
))


"C			7	#B	!	BBqE
!
,C "gG	z	"7 
# 
z	" 1 1' :; 
#	"	 
#	" 
#	"s   C3:0D3
D
Dc                      [        SS9n U R                  [        [        5        SU R                  S S & SU R
                  S S & [        U R                  [        5      S5        g r   )r   r<   rD   rT   r   r   r   r   rC   s    rK   test_write_parametersr   ]  sI    
!
,CGGArNCIIaLCNN1c33A6:rM   c                     [         R                  " [        [         R                  S9n [         R                  U S'   [        SS9n[        R                  " [        5         UR                  U [        5        S S S 5        g ! , (       d  f       g = f)Ndtyper   r3   r   r*   )r9   r   rD   float64nanr   r   r   r   r<   rT   )Xnanlogistics     rK   test_nanr   f  sU     88ARZZ(DDJ!q1H	z	"T2 
#	"	"s   A>>
Bc                  6   [         R                  R                  S5      n [         R                  " U R	                  SS5      SS/-   U R	                  SS5      45      nS/S-  S/S-  -   n[         R
                  " SSS5      n[        nS H{  nU" [        5      " UUUS	S
USSS9u  pcn[        U5       HO  u  p[        U	S	S
USSS9n
U
R                  X5        U
R                  R                  5       n[        XU   SSU-  S9  MQ     M}     S H  nS/nU" [        5      " UUUSUSSS9u  pcn[        US   SSSUS9n
U
R                  X5        [         R                  " U
R                  R                  5       U
R                  /5      n[        XS   SSU-  S9  M     g )Nr   rP   r4   r3   r2   rt   r   r0   r1   Fh㈵>  )ru   rS   r   r~   r   r+   )rQ   rS   r   r~   r+   r   zwith solver = %s)decimalerr_msg)r,   r.   r/   r-   r0   r1        @@ư>     @)ru   r   r~   intercept_scalingr+   )rQ   r   r   r+   r~   )r9   r   r   concatenaterandnlogspacer%   r   	enumerater   r<   r   ravelr   r   )r   rD   rE   ru   fr~   coefs_irQ   rz   lr_coefs               rK   test_consistency_pathr  q  s   
))


"C
		#q)QF2CIIc14EFGA	
c	RD3JA	Q2	BA "23	
1 bMDA##B FF1Lhhnn&G%q16H66Q " "6 XU23%
1  e%
 	q.."((.."2BMM!BC!1Xq2Dv2M	
) XrM   c                     [         R                  R                  S5      n [         R                  " U R	                  SS5      SS/-   U R	                  SS5      45      nS/S-  S/S-  -   nS/n[
        R                  " [        5       n[        XUSSSSS9  S S S 5        [        W5      S:X  d   eUS   R                  R                  S   nS	U;   d   eS
U;   d   eSU;   d   eSU;   d   eg ! , (       d  f       N\= f)Nr   rP   r4   r3   r2   r           )ru   r   r   r+   verbosez-lbfgs failed to converge after 1 iteration(s)z!Increase the number of iterationszscale the dataz%linear_model.html#logistic-regression)r9   r   r   r   r   r   r   r   r   r8   messageargs)r   rD   rE   ru   recordwarn_msgs         rK   .test_logistic_regression_path_convergence_failr	    s    
))


"C
		#q)QF2CIIc14EFGA	
c	RD3JA
B
 
(	)V!RS11a	
 
*
 v;!ay  %%a(H:hFFF.(:::x'''2h>>> 
*	)s   C,,
C:c                     [        SSS9u  p[        SSSSS9nUR                  X5        [        SSSSS9nUR                  X5        [        SSSSS9nUR                  X5        [        UR                  UR                  5        S	n[
        R                  " [        US
9   [        UR                  UR                  5        S S S 5        g ! , (       d  f       g = f)N   r   rF   r+   Tr   r-   )r+   r   r   r~      z)Arrays are not almost equal to 6 decimalsr   )r   r   r<   r   r   r   r   AssertionError)rD   rE   lr1lr2lr3r   s         rK    test_liblinear_dual_random_stater    s    !<DA
	C GGAM
	C GGAM
	C GGAM cii3
5C	~S	1!#))SYY7 
2	1	1s   !C		
Cc                     Su  p[         R                  R                  S5      nUR                  X5      n[         R                  " UR                  SUR                  U5      -  5      5      nX3R                  5       -  nX3R                  5       -  n[        S/SSSS9nUR                  X45        [        SSSS	9nUR                  X45        [        UR                  UR                  5        [        UR                  R                  S
U45        [        UR                  SS
/5        [!        UR                  5      S:X  d   e[         R"                  " [%        UR&                  R)                  5       5      5      n[        UR                  S
SS
U45        [        UR*                  R                  S5        [         R"                  " [%        UR,                  R)                  5       5      5      n[        UR                  S5        g )N)2   r   r   r         ?Fr-   rs   )ru   rS   r~   rw   )rQ   rS   r~   r3   r2   r4   r   )r3   rs   r3   )r9   r   r   r   signdotr   stdr   r<   r   r   r   r   r;   r>   r8   asarraylistcoefs_paths_valuesCs_scores_)	rF   r   r   X_refrE   lr_cvrz   coefs_pathsra   s	            rK   test_logistic_cvr"    sx   !I
))


"CIIi,E
		!cii
3345A	ZZ\E	YY[E 5kaE 
IIe	c{	KBFF5bhh4u{{((1j/:u~~Aw/u~~!###**T%"4"4";";"=>?K{((1aJ*?@uyy-ZZU]]11345Fv||Y/rM   zscoring, multiclass_agg_listaccuracy 	precision_macro	_weightedf1neg_log_lossrecallc                    [        SSSSS9u  p#[        R                  " S5      [        R                  " SS5      pT[        SS9nUR	                  5       nS	 H  nXx	 M     UR                  X$   X4   5        U HH  n	[        X	-   5      n
[        [        UUUU4S/U
S S S S S
.USS0-  D6S   S   U
" XbU   X5   5      5        MJ     g )NrP   r   rs      )rF   r+   rH   n_informativeP   r  r   )rQ   r   
warm_start)ru   rv   	pos_classmax_squared_sumrg   score_paramsr   r   r4   )	r   r9   aranger   
get_paramsr<   r   r   r   )rv   multiclass_agg_listrD   rE   traintestrz   paramskey	averagingscorers              rK   "test_logistic_cv_multinomial_scorer<    s    & A!DA ))B-2s!34	c	"B]]_F,K -FF18QX(	G/0!!	
 5 $"! ]M::   2w(	
 )rM   c                  0   Su  pn[        U UUSSS9u  p4[        5       R                  / SQ5      R                  U5      n[        R
                  " U5      S-
  n[        5       n[        SS9n[        5       n[        SS9n	UR                  X45        UR                  X45        UR                  X55        U	R                  X55        [        UR                  UR                  5        [        UR                  5      / SQ:X  d   e[        UR                  U	R                  5        [        UR                  5      / SQ:X  d   e[        U	R                  5      / SQ:X  d   e[        [        R                  " UR                  U5      5      5      / SQ:X  d   e[        [        R                  " U	R                  U5      5      5      / SQ:X  d   e[        SSSS.S	9R                  X55      n	[        [        R                  " U	R                  U5      5      5      S
S/:X  d   eg )N)r  r   rs   rs   r   )rF   r   rH   r-  r+   )barbazfoor3   )ru   r4   )class_weightr>  r?  )r   r   r<   inverse_transformr9   r   r   r   r   r   sortedr>   r:   r=   )
rF   r   rH   r  rE   y_strrz   r   lr_str	lr_cv_strs
             rK   2test_multinomial_logistic_regression_string_inputsrG  3  s   '/$I9"HE N45GGJE
aA		B A&E!F$*IFF5	IIe
JJuMM%bhh5&//"&;;;;ekk9??;&//"&;;;;)$$%)>>>> "))FNN51237LLLL"))I--e456:OOOO #!A0NOSSI "))I--e4565%.HHHrM   c                 `   [        SSSS9u  pSXS:  '   U " U5      n[        5       nUR                  X5        [        5       nUR                  X25        [        UR                  UR                  5        [        UR
                  UR
                  5        UR                  UR                  :X  d   eg )Nr  r   r   rF   r   r+   r  r  )r   r   r<   r   r   r   rx   )rN   rD   rE   csrrC   clfss         rK   test_logistic_cv_sparserL  \  s    JDAA#gJ

C

 CGGAM!DHHSdjj#))4doos~~>77cffrM   c            	         [         R                  [         R                  pU R                  u  p#Sn[	        U5      n[        UR                  X5      5      n[        USS9nUR                  X5        [        USS9nUR                  5       n	SXS:H  '   UR                  X	5        [        UR                  S   UR                  S   5        [        UR                  SS  UR                  5        [        UR                  S   [        R                  S S 24   UR                  5        UR                  R                  SU4:X  d   e[!        UR"                  / SQ5        [        R$                  " [        UR&                  R)                  5       5      5      n
U
R                  SUSUS-   4:X  d   eUR*                  R                  S	:X  d   e[        R$                  " [        UR                  R)                  5       5      5      nUR                  SUS4:X  d   eS
 GHo  nUS;   a  SOSn[        UUSUS;   a  SOSSS9nUS:X  a  [-        U 5      n UR                  X5        UR/                  X5      nUR/                  X5      nUU:  d   eUR                  R                  UR                  R                  :X  d   e[!        UR"                  / SQ5        [        R$                  " [        UR&                  R)                  5       5      5      n
U
R                  SUSUS-   4:X  d   eUR*                  R                  S	:X  d   e[        R$                  " [        UR                  R)                  5       5      5      nUR                  SUS4:X  a  GMp   e   g )Nr4   r   )rw   r   r3   r   rs   r   r3   r4   r   )r   r   r        r   r   r   )r~   r   r+   r   rw   r,   )r   r   r   r;   r   r  splitr   r<   copyr   r  r   r   r9   newaxisr   r>   r  r  r  r  r!   rh   )r6  r   rF   r   n_cvrw   precomputed_foldsrC   clf1target_copyr!  ra   r~   r   	clf_multimulti_score	ovr_scores                    rK   test_ovr_multinomial_irisr[  m  s    IIt{{6!KKI
 D		BRXXe45 "3
GCGGE  #4%HD++-K$%Kq !HHU  CKKNDLLO4CNN12&8CIIaLQ/< 99??q*o---s||Y/**T#"2"2"9"9";<=KD"j1n ====77==E!!!ZZS[[//123F<<AtR=((( 8 O33(/1t
	 W%LEe$ooe4IIe,	Y&&& yy)//"7"77779--y9jji&<&<&C&C&E!FG  Qb*q.$AAAA}}""e+++D!2!2!9!9!;<=||4},,,3 8rM   c            	          [        SSSS9u  p[        SSS9n[         Vs0 s H   nU[        SSU0UD6R	                  X5      _M"     nn[
        R                  " US	S
9 H(  u  pV[        XE   R                  XF   R                  SS9  M*     gs  snf )z)Test solvers converge to the same result.r   r   r   )r   r-  r+   Fr   rR   r~   r4   rrs   r   Nrq   )	r   dictSOLVERSr   r<   	itertoolscombinationsr   r   )rD   rE   r8  r~   
regressorssolver_1solver_2s          rK    test_logistic_regression_solversrg    s    "AANDAB7F F 	";&;F;??EE  
 (44Z1E! &&
(<(B(BA	
 Fs   'BrS   FTc                 (   [        SSSSSS9u  pSn[        XSS9nS	S
S
S.n[        [        5      [        S/5      -
   Vs0 s H0  nU[	        SXeR                  US5      S.UD6R                  X5      _M2     nn[        R                  " USS9 H|  u  p[        Xx   R                  Xy   R                  US:X  d  U	S:X  a  SOSU SU	 3S9  U (       d  ME  [        Xx   R                  Xy   R                  US:X  d  U	S:X  a  SOSU SU	 3S9  M~     gs  snf )zATest solvers converge to the same result for multiclass problems.r  r   rs   r   rF   r   r-  rH   r+   :0yE>r   )rS   r   r+      '  r,   r0   r1   r-   rP   r~   r   r4   r]  r1   {Gzt?r    vs rtolr   Nrq   )r   r`  setra  r   getr<   rb  rc  r   r   r   )
rS   rD   rE   r   r8  solver_max_iterr~   rd  re  rf  s
             rK   +test_logistic_regression_solvers_multiclassrv    sQ    2QRDA CRHF !$FFCO 'lS+%77	 8F 	" 
$7$7$D
HN

#a)	 8	   (44Z1E && &&"f,F0BjXJ/		
 =$//$//&&0H4FTT#*D
3	 Fs    7Dc                    Su  p#n[         R                  R                  U5      n[        UX0-   X0-   SUS9nU (       a	  SUSS2S4'   [	        U5      u  pxn	[         R
                  " US:  5      (       d   e[         R                  " U5      [         R                  " U5      -  S:  d   eU (       a  USS2SS24   nUR                  SS	X4-  S
9n
U
R                  XC5      n
UR                  SSUS
9U -  nXjR                  -  U-   n[        US9nUR                  R                  U5      n[         R                  " U5      n[        U5       H4  n[         R                   " UR#                  SUUSS24   S95      S   UU'   M6     Sn[%        U SS9nSSSS.nSSS.n['        [(        5      ['        S/5      -
   Vs0 s HQ  nU[+        S#[         R,                  UUR/                  UU5      UR/                  US5      S.UD6R1                  Xo5      _MS     nnUR3                  5        H)  n[5        UU   R6                  R9                  SS9SSUS9  M+     [:        R<                  " USS9 H  u  nn[5        UU   R6                  UU   R6                  US:X  d  US:X  a  SOS U S!U 3S"9  U (       d  MH  [5        UU   R>                  UU   R>                  US:X  d  US:X  a  SOSU S!U 3S"9  M     gs  snf )$zGTest and compare solver results for unpenalized multinomial multiclass.)rP   rt   rs   r\   )rF   r   effective_ranktail_strengthr+   r3   Nr2   r   rP   rs   )lowhighsize)rH   )npvals)r   r   g&.>r   rR   rk  rl  rm  rj  r   r-   )rQ   r~   r   r   r   r6   绽|=)atolr   r4   r]  r1   ro  gMb`?rp  rq  rq   ) r9   r   r   r   r
   allmaxminuniformreshapeTr   linkinversezerosrangeargwherer   r`  rs  ra  r   infrt  r<   keysr   r   r@   rb  rc  r   )rS   r   rF   r   rH   r   rD   UsVtcoef	interceptraw_predictionlossr   rE   r   r   r8  ru  
solver_tolr~   rd  re  rf  s                            rK   7test_logistic_regression_solvers_multiclass_unpenalizedr    s    (1$I9
))

 2
3C-!1	A !R%1vHA"66!d(66!9rvvay 3&&&a"fI;;11:+A;BD<<	.D;mKIZ)+N3DIIn-E
A9{{3??QeAqDk?BCDI!  CB?F #FFCOt,J 'lS+%77	 8F 	" 
ffvs+$((5	

 
 #a)	 8  	 //#v$$((a(0!%	
 $ (44Z1E(x &&x &&"f,F0BjXJ/		
 =8$//8$//&&0H4FTT#*D
3	 F!	s   4AK&weightr\   g?r   r^   rN  rA  balancedc           
         [        U 5      nUS:X  a  U n[        SSSSSUUS9u  pE[        SSUSS	9n[        SS
S0UD6n[	        [
        S9   UR                  XE5        SSS5        [        [        5      [        / SQ5      -
   H^  n[        SS
U0UD6n	US;   a  U	R                  SSUS-   S9  U	R                  XE5        [        U	R                  UR                  SU S3S9  M`     g! , (       d  f       N= f)z+Test class_weight for LogisticRegressionCV.r  rP  rs   r   )rF   r   
n_repeatedr-  n_redundantrH   r+   r3   Frj  )ru   rS   rA  r   r~   r,   categoryN)r,   r-   r/   r   gC]r2<rl  )r   r   r+   r   z	 vs lbfgsrq  rq   )r8   r   r`  r   r%   r   r<   rs  ra  
set_paramsr   r   )
r  rA  r   rH   rD   rE   r8  	clf_lbfgsr~   rC   s
             rK   (test_logistic_regressioncv_class_weightsr  -  s    FIx'DA !	F %>G>v>I 
"4	5a 
6 g,%N!OO";&;F;_$NNE8JQ8N   	IIyTfXY;O	
 P 
6	5s   C%%
C3problem)singlerw   c           	         SnSn[        X4-  SSSSUS9u  pV[        R                  R                  U5      n[        R                  " UR
                  S   5      nUSUR                  S5      (       a  S	OS
SS.n	U	R                  5       n
UR                  SSUS9US U& [        R                  " XXR                  [        5      SS9n[        R                  " XhR                  [        5      SS9nU S:X  a  [        nOU S:X  a  [        n[        R                  " [        R                  " US5      [        R                  " US5      [        R                  " US5      /5      n[!        [#        5       R%                  X^S95      nU	R'                  SUS.5        [        R                  " XR                  [        5      SS9n[!        [#        5       R%                  UUS95      nU
R'                  SUS.5        W" SSU0U	D6nU" SSU0U
D6nUS:X  a[  [(        R*                  " 5          [(        R,                  " S[.        5        UR1                  XVUS9  UR1                  X5        S S S 5        O!UR1                  XVUS9  UR1                  X5        U S:X  a&  [3        UR4                  S   UR4                  S   5        [3        UR6                  UR6                  SS9  g ! , (       d  f       NZ= f)Nrk  rs   r   r4   r   )rF   r   r-  rH   r  r+   Fr0   順 r   rj  r+   rS   r   r   r|  r6   r  rw   r3   )groupsrP   )ru   rw   r~   r,   r   rg   r   r  rq   )r   r9   r   r   rA   r;   
startswithrR  randintrepeatr   intr   r   r   fullr  r   rQ  updater   r   r   r   r<   r   r  r   )r  r~   r   n_samples_per_cv_groupn_cv_groupsrD   rE   r   swkw_weightedkw_repeated
X_repeated
y_repeatedr   groups_weightedsplits_weightedgroups_repeatedsplits_repeatedclf_sw_weightedclf_sw_repeateds                       rK   'test_logistic_regression_sample_weightsr  ]  s   
 !K(6'DA ))

 2
3C		B +%0077GU	K ""$K"%++a9O+"PB1iin15J1iin15J(	D!...2.2.2
 /1777RS#_=>))OYYs^!L$$Z$H
 	#_=>66+6O66+6O $$&!!(,>?B7
7 '& 	A3J3$//2O4K4KA4NOO))?+@+@tL '&s   =K
Kr   c                     [        SSSSUS9u  p#US-   nUSSS	S
.n[        SU SSS.S.UD6nUR                  X#5        [        SSU 0UD6nUR                  X#US9  [        UR                  UR                  SS9  g )N,  r   rs   r4   ri  r3   Fr  rj  r  r   )r~   rA  r~   r  r   r  rq   r   r   r<   r   r   )r~   r   rD   rE   rg   r  	clf_cw_12	clf_sw_12s           rK   -test_logistic_regression_solver_class_weightsr    s     'DA EM +	K # aL4?I MM!"@&@K@IMM!mM4IOOY__4@rM   c                    [        SSSSU S9u  pUS-   n[        SSSSS	.S
SSU S9nUR                  X5        [        SSS
SSU S9nUR                  XU5        [        UR                  UR                  SS9  [        SSSSS	.SSSSU S9nUR                  X5        [        SSSSSSU S9nUR                  XU5        [        UR                  UR                  SS9  g )Nr  r   rs   r4   ri  r3   r-   Fr   r   rl  -q=)r~   rS   rA  r   r   r   r+   )r~   rS   r   r   r   r+   r  r  l2T)r~   rS   rA  r   r   r   r   r+   )r~   rS   r   r   r   r   r+   r  )r   rD   rE   rg   clf_cwclf_sws         rK   2test_sample_and_class_weight_equivalence_liblinearr    s    'DA EMq\'F JJq'F JJq]#FLL&,,U;q\'	F JJq'F JJq]#FLL&,,U;rM   c                 n    [         R                  " U 5      n[        SXS9n[        [	        X5      5      nU$ )Nr  )rG   rE   )r9   r:   r#   r`  zip)rE   rG   rA  class_weight_dicts       rK    _compute_class_weight_dictionaryr     s1    iilG'
GILS78rM   c                     U $ rk   rq   xs    rK   <lambda>r    s    QrM   c                    [        [        R                  5      nUSS 2S S 24   nU " U5      n[        R                  SS  n[	        U5      n[        [        5      [        SS/5      -
   GH  n[        USS9n[        SSS0UD6n[        SSU0UD6nUR                  X#5        UR                  X#5        [        UR                  5      S:X  d   e[        UR                  UR                  S	S
9  [        R                  " UR                   S   5      n	UR                   H  n
XU
:H  ==   XJ   -  ss'   M     [        S0 UD6R                  X#U	S9n[        UR                  UR                  S	S
9  GM     USS2S S 24   n[        R                  SS n[	        U5      n[         Hh  n[        USS9n[        SSS0UD6n[        SSU0UD6nUR                  X#5        UR                  X#5        [#        UR                  UR                  SS9  Mj     g )N-   r-   r/   r   rn  rA  r  rs   -C6?rr  r   r  rP   r,  r_  rq   )r!   r   r   r   r  rs  ra  r`  r   r<   r8   r>   r   r   r9   rA   r;   r   )rN   X_irisrD   rE   r  r~   r8  rV  clf2r  cclf3s               rK   &test_logistic_regression_class_weightsr    s    499FrsAvAaABCA8;g,k3D%E!FFVd3!DzDVD!K/@KFK4==!Q&&&

DJJT:WWQWWQZ AAvJ+..J !+F+//B/G

DJJT: G  	r#vqyABsA8;Vd3!DzDVD!K/@KFK!$**djj!D rM   c            	         Su  pn[        U USUSS9u  p4[        SS9R                  U5      nSn[        USS	9n[        USSS
9nUR	                  X45        UR	                  X45        UR
                  R                  X!4:X  d   eUR
                  R                  X!4:X  d   eS H  n[        USSSS9n[        USSSSS9n	UR	                  X45        U	R	                  X45        UR
                  R                  X!4:X  d   eU	R
                  R                  X!4:X  d   e[        UR
                  UR
                  SS9  [        UR
                  U	R
                  SS9  [        UR                  UR                  SS9  M     S H_  n[        USSS/S9n
U
R	                  X45        [        U
R
                  UR
                  SS9  [        U
R                  UR                  SS9  Ma     g )N)r  r  rs   r   r   ri  F)	with_meanr,   r   r~   r   )r~   rS   r   )r0   r1   r.   r   r   gHz>)r~   r+   r   r   )r~   r+   r   r   rS   r   r  r   r   r  )r~   r   r   ru   )
r   r    fit_transformr   r<   r   r;   r   r   r   )rF   r   rH   rD   rE   r~   ref_iref_wclf_iclf_wclf_paths              rK   $test_logistic_regression_multinomialr  /  s    (1$I9DA 	'55a8A Ff$7EfEtLE	IIaO	IIaO;; 7777;; 7777."	
 #
 			!		!{{  Y$;;;;{{  Y$;;;; 	U[[t<U[[t<((%*:*:F- /6 8'Ddu
 	Q$?++U-=-=DI 8rM   c                      [        SSSS9u  p[        SSS9nUR                  X5        [        R                  " S5      n [        UR                  U 5      [        R                  " S5      5        g )Nr   r   rI  Fr-   )rS   r~   )r   r   )r   r   r<   r9   r  r   r=   )rD   rE   rC   s      rK   %test_liblinear_decision_function_zeror  j  sU     qqIDA
5
ECGGAM 	As{{1~rxx{3rM   c                 `    [        SSSS9u  p[        SS9nUR                  U " U5      U5        g )Nr   r   r   rI  r-   r~   r   r   r<   rN   rD   rE   rC   s       rK   test_liblinear_logregcv_sparser  y  s1     JDA
k
2CGGM!a rM   c                 b    [        SSSS9u  p[        SSS9nUR                  U " U5      U5        g )Nr   r   r   rI  r1   r   r  r  r  s       rK   test_saga_sparser    s3     JDA
f$
7CGGM!a rM   c                  n    [        SS9n U R                  [        [        5        U R                  S:X  d   eg )NF)rS   r  )r   r<   rD   rT   r   r   s    rK   "test_logreg_intercept_scaling_zeror    s-     5
1CGGArN>>S   rM   c            	      Z   [         R                  R                  S5      n Sn[        USSS9u  p#U R	                  US4S9n[         R
                  " US4S	9n[         R                  " X$U4S
S9n[        SSSSSS9nUR                  X#5        [        SSSSSSS9nUR                  X#5        [        UR                  UR                  5        [        UR                  SSS 24   [         R                  " S5      5        [        UR                  SSS 24   [         R                  " S5      5        g )Nr   r  r  r   rI  rs   r  r4   r;   r3   r6   r   r  r-   Fr  r   rQ   r~   rS   r   r1   r   r   rQ   r~   rS   r   r   r   )r9   r   r   r   normalrA   r   r   r<   r   r   r  )r   rF   rD   rE   X_noise
X_constantlr_liblinearlr_sagas           rK   test_logreg_l1r    s    ))


#CIrPQRDAjjy!nj-G	1~.J
J/a8A%
L Q 
G KKgmm\-?-?@ l00BC8"((1+FgmmArsF3RXXa[ArM   c           	         [         R                  R                  S5      nSn[        USSS9u  p4UR	                  SUS4S9n[         R
                  " US	4S
9n[         R                  " X5U4SS9nSX3S:  '   U " U5      n[        SSSSSS9nUR                  X45        [        SSSSSSS9nUR                  X45        [        UR                  UR                  5        [        UR                  SSS 24   [         R
                  " S5      5        [        UR                  SSS 24   [         R
                  " S5      5        [        SSSSSSS9n	U	R                  UR                  5       U5        [        UR                  U	R                  5        g )Nr   r  r  r   rI  r\   rs   )r!   r|  r4   r  r3   r6   r   r  r-   Fr  r  r1   r   r  r  r   )r9   r   r   r   r  r  r   r   r<   r   r   toarray)
rN   r   rF   rD   rE   r  r  r  r  lr_saga_denses
             rK   test_logreg_l1_sparse_datar    sw   
 ))


#CIrPQRDAjjs)Qj8GA/J
J/a8AA!eHaA%
L Q 
G KKgmm\-?-?@ l00BC8"((1+FgmmArsF3RXXa[A '
M aiik1%gmm]-@-@ArM   random_seedr   r   r  c                     [        SSU S9u  p#[        SUU SSS9n[        SS/S	S
.UD6nUR                  X#5        [	        SSS0UD6nUR                  X#5        [        UR                  UR                  5        g )NrP   r  rI  r1   r   r  )r~   r   r+   r   r   r  T)ru   refitrQ   rq   )r   r`  r   r<   r   r   r   )r  r   rD   rE   common_paramsr   rz   s          rK   !test_logistic_regression_cv_refitr    s     +VDA M !GSEGGE	IIaO		3c	3]	3BFF1Lekk2884rM   c                     [        SSSSSS9u  p[        SS9nUR                  X5        [        XR	                  U 5      5      n[        [        SS95      nUR                  X5        [        XR	                  U 5      5      nXS:  d   e[        XR	                  U 5      5      n[        XR                  U 5      5      nXc:  d   eg )Nr   r  r   rs   )rF   r   r+   rH   r-  r,   r  )r   r   r<   r   r?   r   _predict_proba_lr)rD   rE   rX  clf_multi_lossclf_ovrclf_ovr_lossclf_wrong_losss          rK   %test_logreg_predict_proba_multinomialr
    s    !qPRDA #'2IMM!a!8!8!;<N!"4G"DEGKKA44Q78L((( a!8!8!;<Na!<!<Q!?@N***rM   r   r   r   r   zsolver, message))r.   zAnewton-cg failed to converge.* Increase the number of iterations.)r-   z@Liblinear failed to converge, increase the number of iterations.)r0   ?The max_iter was reached which means the coef_ did not converge)r1   r  )r,   lbfgs failed to converge)r/   z6Newton solver did not converge after [0-9]* iterationsc                    [         R                  [         R                  R                  5       pTSXUS:H  '   US;   a  US:X  a  [        R
                  " S5        US:X  a  U S:  a  [        R
                  " S5        [        U S	USUS
9n[        R                  " [        US9   UR                  XE5        S S S 5        UR                  S   U :X  d   eg ! , (       d  f       N$= f)Nr   r4   r   r   z+'multinomial' is not supported by liblinearr/   r3   z/solver newton-cholesky might converge very fastgV瞯<)r   r   r   r+   r~   r   )r   r   r   rR  r   skipr   r   r   r<   n_iter_)r   r   r~   r  rD   y_binrz   s          rK   test_max_iterr    s    , yy$++**,uE1*K=$@AB""x!|EF	
B 
(	8
q 
9 ::a=H$$$ 
9	8s   C
Cc                    [         R                  [         R                  p!U S:X  a  [        U5      n[        R
                  " U5      R                  S   nUS:X  d   eUR                  5       nSXDS:H  '   SnSn[        SSU SS	9nUR                  X5        UR                  R                  S
:X  d   e[        SXUSS9nUR                  X5        UR                  R                  SXe4:X  d   eUR                  SS9R                  X5        UR                  R                  U4:X  d   eUR                  SS9R                  X5        UR                  R                  X6U4:X  d   eU S;   a  g UR                  SS9R                  X5        UR                  R                  S
:X  d   eUR                  SS9R                  X5        UR                  R                  SXe4:X  d   eg )Nr,   r   rs   r4   rt   r   r  r   )r   rQ   r~   r+   r   )r   r~   ru   rw   r+   r3   r   r   r   r   )r   r   r   r!   r9   r:   r;   rR  r   r<   r  r   r  )	r~   rD   rE   rH   r  n_Cs	n_cv_foldrC   clf_cvs	            rK   test_n_iterr  G  s    99dkkq!H		!""1%I>> FFHEE1*DI V"
MCGGA;;$$$!YRF JJq>>Ay#7777 NNuN%))!/;;,,,
%(,,Q2>>I$#????  NN}N-11!7;;$$$
-044Q:>>Ay#7777rM   r/  )TFc                    [         R                  [         R                  pC[        SUU SUS9n[	        [
        S9   UR                  X45        UR                  nSUl        UR                  X45        S S S 5        [        R                  " [        R                  " WUR                  -
  5      5      nSU  SU< SU< 3nU(       a  S	U:  d   U5       eg US	:  d   U5       eg ! , (       d  f       Nu= f)
Nr  r   )r   r/  r~   r+   rS   r  r3   z Warm starting issue with solver zwith fit_intercept=z and warm_start=       @)r   r   r   r   r%   r   r<   r   r   r9   r@   abs)	r~   r/  rS   rD   rE   rC   coef_1cum_diffr   s	            rK   test_warm_startr  }  s     99dkkq
#C 
"4	5 
6 vvbffVcii/01H
*6(
0ZM	3  X~"s"~#~"s"~ 
6	5s   6C
C-r  Nc           	      
   [         R                  [         R                  pT[        USUUU S9n[	        [
        S9   UR                  XE5        SSS5        [        USSUUU S9n[	        [
        S9   UR                  XE5        UR                  XE5        SSS5        [        UR                  UR                  5        U(       a!  [        UR                  UR                  5        gg! , (       d  f       N= f! , (       d  f       Nh= f)zITest that 2 steps at once are the same as 2 single steps with warm start.r4   )r~   r   rS   r   r+   r  Nr3   T)r~   r   r/  rS   r   r+   )
r   r   r   r   r%   r   r<   r   r   r   )r   r~   rS   r   rD   rE   rV  r  s           rK   test_warm_start_newton_solverr     s    
 99dkkq#'D 
"4	5 
6 #'D 
"4	5 
6 DJJ

+9 ! 
6	5 
6	5s   C#/#C4#
C14
Dc                 b   [        5       nUR                  UR                  p2[        R                  " U/S-  5      n[        R                  " U/S-  5      nX#S:*     nX3S:*     S-  S-
  n[        SSSS9u  pgU " U5      nXE4Xg44 H  u  p#S H  nUR                  S   n	[        R                  " S	SS5       Hn  n
[        S
X-  -  SSSUSSS9n[        S
X-  -  SSSUSSS9nUR                  X#5        UR                  X#5        [        UR                  UR                  S5        Mp     M     M     g )Nrs   r3   r4   r  r  r   rI  )r   r  r2   r  r1   rk  Fr   )rQ   r~   r   rS   r   r+   r   r-   )r   r   r   r9   r   r   r;   r   r   r<   r   r   )rN   r   rD   rE   X_binr  X_sparsey_sparser   rF   alphar1   r-   s                rK   test_saga_vs_liblinearr&    s@   ;D99dkkq
sQwA
sQwA1fIE1fIMAE,!H X&H(!56#G
IRA.)Y./! "'#!" /Y./& "'#!"	 a#)$**iooqI1 / $ 7rM   )r-   r.   r/   r1   c                 ,   U S:X  a   US:X  a  [         R                  " SU  S35        U S:X  a  [        R                  O[        R                  n[        R
                  " [        5      R                  [        R                  5      n[        R
                  " [        5      R                  [        R                  5      n[        R
                  " [        5      R                  [        R                  5      n[        R
                  " [        5      R                  [        R                  5      nU" [        [        R                  S9n	U" [        [        R                  S9n
Sn[        U USUUS9n[        U5      nUR                  XV5        UR                  R                  U:X  d   e[        U5      nUR                  X5        UR                  R                  U:X  d   e[        U5      nUR                  Xx5        UR                  R                  [        R                  :X  d   e[        U5      nUR                  X5        UR                  R                  [        R                  :X  d   eS	U-  n[        R                  S
:X  a  [         (       a  Sn[#        UR                  UR                  R                  [        R                  5      US9  U S:X  a	  U(       a  Sn[#        UR                  UR                  US9  [#        UR                  UR                  US9  g )Nr-   r   zSolver=z' does not support multinomial logistic.r   gMb@?r   )r~   r   r+   r   rS   gQ@ntr   r  r1   r\   )r   r  r9   r   float32r   rD   r   rT   r   r   r<   r   r   osnamer'   r   )r~   r   rS   rN   
out32_typeX_32y_32X_64y_64X_sparse_32X_sparse_64r  lr_templlr_32lr_32_sparselr_64lr_64_sparser  s                     rK   test_dtype_matchr8    s;    !=gfX%LMN%4"**J88A;bjj)D88B<rzz*D88A;bjj)D88B<rzz*D4K4KJ!#H (OE	IId;;
*** ?L['##z111 (OE	IId;;

*** ?L['##rzz111 j D	ww$99 EKK!3!3BJJ!?dKM EKK!3!3$?EKK!3!3$?rM   c                  
   [         R                  R                  S5      n [         R                  " U R	                  SS5      SS/-   U R	                  SS5      45      n[         R
                  " S/S-  S/S-  -   5      n[        SSSS9n[        SS	SS9n[        X#R                  X5      R                  U5      5      n[        S
5       H  nUR                  X5        M     [        X$R                  U5      5      n[        XWSS9  g )Nr   rP   r4   r3   r2   r0   F)r~   r/  r+   Tr   r   r  )r9   r   r   r   r   r   r   r   r<   r?   r  r   )r   rD   rE   lr_no_wslr_wslr_no_ws_lossr   
lr_ws_losss           rK   test_warm_start_converge_LRr>  >  s     ))


"C
		#q)QF2CIIc14EFGA
!sbTCZ'(A!5qQHe1MEQQ 2 @ @ CDM1X		! !0034JMD9rM   c                     [        SS9u  pSnSn[        5       nSU4SS4 H@  u  pV[        UUSSUS	S
S9nUR                  X5        UR	                  UR
                  5        MB     Uu  pn
[        R                  " XSSS9(       a   e[        R                  " XSSS9(       a   e[        R                  " XSSS9(       a   eg )Nr   r*   r  r^   r   )r   Nr  r1   r   rk  )r   rQ   r~   r+   l1_ratior   r   r\   )rr  r  )r   r  r   r<   appendr   r9   allclose)rD   rE   rQ   r@  coeffsr   ratiorz   elastic_net_coeffs	l1_coeffs	l2_coeffss              rK   test_elastic_net_coeffsrH  O  s     A.DAAHVF((3\<P
 	qbhh Q 06,9{{-qsKKK{{-qsKKK{{9acBBBBrM   rQ   )r   r\   r3   r   rP   r       .Azpenalty, l1_ratio)r   r3   )r  r   c           	          [        SS9u  p4[        SU USSSS9n[        XSSSS9nUR                  X45        UR                  X45        [        UR                  UR                  5        g )Nr   r*   r   r1   r   )r   rQ   r@  r~   r+   r   r   rQ   r~   r+   r   )r   r   r<   r   r   )rQ   r   r@  rD   rE   lr_enetlr_expecteds          rK   "test_elastic_net_l1_l2_equivalencerN  k  so    
 A.DA 
G %V!K KKOOAgmm[->->?rM   )r   r3   rP   rI  c                    [        SSS9u  p[        XSS9u  p4pVS[        R                  " SSS5      0n[	        SU SSS	S
9n[        XSS9n	[	        SU SSS	S
9n
[	        SU SSS	S
9nXU4 H  nUR                  X55        M     U	R                  XF5      U
R                  XF5      :  d   eU	R                  XF5      UR                  XF5      :  d   eg )NrO  r   r*   r@  r3   r   r   r1   r   rK  T)r  r   r  )r   r   r9   linspacer   r   r<   rh   )rQ   rD   rE   X_trainX_testy_trainy_test
param_gridenet_clfgsl1_clfl2_clfrC   s                rK   test_elastic_net_vs_l1_l2rZ    s    
 s3DA'71'M$GWbkk!Q23J!&qdH 
h$	7B&qdF  &qdF F#! $ 88F#v||F'CCCC88F#v||F'CCCCrM   r4   rt   r@  )r\   r^   r   c           
         ^ ^^^ [        SSSSSSSS9u  mm[        T5      m[        SSST TS	S
9n[        SSST S	S9nUR                  TT5        UR                  TT5        U UUU4S jnU" U5      U" U5      :  d   eg )Nr   r4   r  r   r   rF   rH   r   r-  r  r  r+   r   r1   F)r   r~   r+   rQ   r@  rS   r  )r   r~   r+   rQ   rS   c                   > U R                   R                  5       nT[        TU R                  T5      5      -  nUT[        R
                  " [        R                  " U5      5      -  -  nUST-
  S-  [        R                  " X5      -  -  nU$ )Nr  r^   )r   r   r   r?   r9   r@   r  r  )rz   r  objrQ   rD   r@  rE   s      rK   enet_objectiveEtest_LogisticRegression_elastic_net_objective.<locals>.enet_objective  su    xx~~(1b..q122x"&&...h#%t(:::
rM   )r   r!   r   r<   )rQ   r@  rL  lr_l2r`  rD   rE   s   ``   @@rK   -test_LogisticRegression_elastic_net_objectiverc    s     DAq 	aA 
G V!qE KK1	IIaO  '"^E%::::rM   rH   )r4   rs   c           
         [        SU SSS9u  p[        S5      n[        R                  " SSS5      n[        R                  " SSS5      n[        S	US
UUSSS9nUR                  X5        XTS.n[        S	S
SSS9n[        XUS9n	U	R                  X5        U	R                  S   UR                  S   :X  d   eU	R                  S   UR                  S   :X  d   eg )NrP   rs   r   rF   rH   r-  r+   r   r3   rt   r   r1   r   )r   ru   r~   rw   	l1_ratiosr+   r   rQ   r@  )r   r~   r+   r   rw   r@  rQ   )r   r   r9   rP  r   r   r<   r   r   best_params_	l1_ratio_rx   )
rH   rD   rE   rw   rg  ru   lrcvrU  rz   rW  s
             rK   2test_LogisticRegressionCV_GridSearchCV_elastic_netrm    s    
 !!DA 
	BAq!$I	RA	BD 	HHQN1J		
B 
b	,BFF1L??:&$..*;;;;??34771:---rM   c                  &   [        SSSSS9u  p[        XSS9u  p#pE[        S5      n[        R                  " SSS5      n[        R
                  " SS	S5      n[        S
USUUSSSS9n	U	R                  X$5        XS.n
[        S
SSSSS9n[        XUS9nUR                  X$5        U	R                  U5      UR                  U5      :H  R                  5       S:  d   eU	R                  U5      UR                  U5      :H  R                  5       S:  d   eg )NrP   rs   r   re  r*   r   r3   rf  rt   r   r1   r   r   )r   ru   r~   rw   rg  r+   r   r   rh  )r   r~   r+   r   r   ri  r]   )r   r   r   r9   rP  r   r   r<   r   r   r=   r   )rD   rE   rQ  rR  rS  rT  rw   rg  ru   rl  rU  rz   rW  s                rK   6test_LogisticRegressionCV_GridSearchCV_elastic_net_ovrro    s#    !!DA (81'M$GW		BAq!$I	RA	B	D 	HHW1J	
B 
b	,BFF7 LL!RZZ%88>>@CGGGLL BJJv$66<<>#EEErM   )r  r   )r   r   autoc                    SnSn[        SUUUSS9u  pE[        R                  " SSS5      nU S:X  a  [        R                  " SS	S
5      nOS n[	        U USUSUSSS9nUR                  XE5        UR                  R                  U4:X  d   eUR                  R                  U4:X  d   eUR                  R                  X#4:X  d   eg )Nrs   r  rk  r   rF   rH   r-  r   r+   rf  rt   r   r3   r4   r1   r   F)r   ru   r~   rg  r+   r   r   r  )
r   r9   r   rP  r   r<   rx   r;   rk  r   )	r   r   rH   r   rD   rE   ru   rg  rl  s	            rK   "test_LogisticRegressionCV_no_refitrs  #  s     IJDA 
RA	B,KK1a(			D 	HHQN77==YL(((>>I<///::	6666rM   c                     Sn Sn[        SU U USS9u  p#[        R                  " SSS5      n[        R                  " SSS	5      nS	n[	        S
USUUSSSS9nUR                  X#5        [        R                  " [        UR                  R                  5       5      5      nUR                  U UUR                  UR                  US-   4:X  d   e[        R                  " [        UR                  R                  5       5      5      n	U	R                  XUR                  UR                  4:X  d   eUR                  R                  XUR                  UR                  4:X  d   eg )Nrs   r  rk  r   rr  rf  rt   r3   r4   r   r1   r   r   )r   ru   r~   rw   rg  r   r+   r   )r   r9   r   rP  r   r<   r  r  r  r  r;   r|  r  r  )
rH   r   rD   rE   ru   rg  n_foldsrl  r!  ra   s
             rK   5test_LogisticRegressionCV_elasticnet_attribute_shapesrv  L  sG   
 IJDA 
RA	BAq!$IG	D 	HHQN**T$"3"3":":"<=>K
Q!    ZZT\\00234F<<IHHHH<<)bggy~~!NNNNrM   c                      Sn [         R                  " [        U S9   [        SSSS9R	                  [
        [        5        S S S 5        g ! , (       d  f       g = f)NzQl1_ratio parameter is only used when penalty is 'elasticnet'\. Got \(penalty=l1\)r   r   r1   r^   )r   r~   r@  )r   r   r   r   r<   rD   rT   )r   s    rK   test_l1_ratio_non_elasticnetrx  x  sA    	.  
k	-4EII!RP 
.	-	-s   $A		
Ac                    Sn[        USSSSSSS9u  p4[        U5      n[        SSSS S	US
U -  U-  SS9n[        SSSSSUU SS9nUR	                  X45        UR	                  X45        [        UR                  UR                  SS9  g )NrO  r4   r   r   r3   r]  r   Fr   r  r   )r   r+   rS   r   r   r@  r%  r  r   r   r1   )r   r+   rS   r   r   r@  rQ   r~   r_  )r   r!   r   r   r<   r   r   )rQ   r@  rF   rD   rE   sgdlogs          rK   test_elastic_net_versus_sgdr|    s     IDA 	aA
Ag	!	C 
	C GGAMGGAMciiA>rM   c            
         [        SSSSSSSS9u  p/ SQn[        U USUS	SS
S9u  n  n[        R                  " [        5         [        US   US   SS9  S S S 5        [        R                  " [        5         [        US   US   SS9  S S S 5        [        R                  " [        5         [        US   US   SS9  S S S 5        g ! , (       d  f       Nw= f! , (       d  f       NT= f! , (       d  f       g = f)Nrk  rs   r4   r   r3   )rF   rH   r-  r  n_clusters_per_classr+   r   )r   r3   rl  r   r1   r   )r   ru   r~   r+   r   r_  )r   r   r   r   r  r   )rD   rE   ru   r   r   s        rK   /test_logistic_regression_path_coefs_multinomialr    s     DA 
B+		!KE1a 
~	&!%(E!Ha@ 
'	~	&!%(E!Ha@ 
'	~	&!%(E!Ha@ 
'	&	 
'	&	&	&	&	&s$   C7C+C(
C
C%(
C6estrO  )r+   r   rs   r   )r+   rw   ru   r   r   c                 .    U R                   R                  $ rk   )	__class__rl   r  s    rK   r  r    s    !++&&rM   )idsc           
        ^  U 4S jn[        [        R                  5      nUS S S2   nUSS S2   n[        R                  S S S2   nUS:H  nU" XGSUS9nU" XGSUS9n	[	        UR
                  U	R
                  5        [	        UR                  U5      U	R                  U5      5        U" XFSUS9n
US:X  aS  U" XFSUS9n[	        U
R
                  UR
                  5        [	        U
R                  U5      UR                  U5      5        g U" XFS	US9n[	        U
R
                  UR
                  5        [	        U
R                  U5      UR                  U5      5        [        R                  " UR
                  U" XGS	US9R
                  5      (       a   e[        R                  " UR
                  U" XFS	US9R
                  5      (       a   eg )
Nc                 X   > [        T5      R                  " S0 UD6R                  X5      $ )Nrq   )r   r  r<   )rD   rE   kwr  s      rK   r<   6test_logistic_regression_multi_class_auto.<locals>.fit  s&    Sz$$*r*..q44rM   r   r3   r   rp  )r   r~   r   r-   r   )	r!   r   r   r   r   r   r?   r9   rB  )r  r~   r<   scaled_datarD   X2y_multir  est_auto_binest_ovr_binest_auto_multiest_ovr_multiest_multi_multis   `            rK   )test_logistic_regression_multi_class_autor    s   "5 		"KDbDA	QUU	Bkk$B$GqLEqVFCLaE&AKL&&(9(9:L..r2K4M4Mb4QRGNAE&I,,m.A.AB((,m.I.I".M	
 amFS,,o.C.CD((,o.K.KB.O	

 ;;mFCII
 
 	
 
 ;;fEKK
 
 	
 
 
rM   c                    [        SSSS9u  pSn[        S U SS9n[        R                  " [        US9   UR                  X5        S S S 5        [        S U SS9n[        S	[        R                  U SS
9nUR                  X5      R                  U5      nUR                  X5      R                  U5      n[        Xx5        g ! , (       d  f       N= f)Nr   r   )rF   r  r+   z&Setting penalty=None will ignore the Crt   )r   r~   rQ   r   )r   r~   r+   r  )r   rQ   r~   r+   )
r   r   r   r   r   r<   r9   r  r=   r   )	r~   rD   rE   r   rz   lr_nonelr_l2_C_inf	pred_nonepred_l2_C_infs	            rK   test_penalty_noner    s     11MDA
2C	D1	=B	k	-
q 
. !f1MG$vAK A!))!,IOOA)11!4My0 
.	-s   B??
Cr8  r   r   )r   r   r   r   r  c                    [         R                  " SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS/SS//[         R                  " S5      S9n[         R                  " / SQ[         R                  " S5      S9n[         R                  " X/5      n[         R                  " USU-
  /5      n[         R
                  " [        U5      S-  S	9nS
U[        U5      S & [        X4US
S9u  p4n[        SSS9nUR                  " S0 U D6  [        U5      R                  X5      n[        U5      R                  X4US9nS H0  n	[        Xy5      " U5      n
[        X5      " U5      n[        X5        M2     g )Nr3   rs   r4   rt   floatr   )r3   r3   r3   r3   r4   r4   r4   r4   r3   r3   r3   r3   r4   r4   r4   r4   r  r  r   r*   r-   r   )r~   r+   r  )r=   r?   r   rq   )r9   r   r   vstackhstackrA   r8   r$   r   r  r   r<   getattrr   )r8  rD   rE   r  y2rg   base_clfclf_no_weightclf_with_weightmethodX_clf_no_weightX_clf_with_weights               rK   /test_logisticregression_liblinear_sample_weightr    s    	FFFFFFFFFFFFFFFF!	
$ hhw'	A* 	8	A 
A6	B	Aq1u:	BGG#a&1*-MM#a&(#BMJBM!2FH!&!(O''-MHo))")NOC!-8;#O<Q?; DrM   c                     [        SSS9u  p[        SS9nSS/n/ SQn[        S	S
UUUSSSS9nUR                  X5        UR                  S   R                  SS9n[        U5       H`  u  px[        U5       HL  u  p[        S	S
UU
SSSS9n[        XXS9R                  5       nXgU	4   [        R                  " U5      :X  a  ML   e   Mb     g )Nr   r   r  r   )n_splitsr\   r   )r\   r3   r   r   r1      r   )r   r~   rg  ru   rw   r+   r   r   r3   r6   )r   r~   rQ   r@  r+   r   r   ri  )r   r   r   r<   r  r   r   r   r   r   approx)rD   rE   rw   rg  ru   rl  avg_scores_lrcvr   rQ   jr@  rz   avg_score_lrs                rK   'test_scores_attribute_layout_elasticnetr  N  s     A>DA	!	$Bc
I	B	D 	HHQNll1o***2O"$Y/KA#$!B +2!;@@BL"a4(FMM,,GGGG 0 rM   )r,   r.   r/   c                    [         R                  R                  u  p#[         R                  [         R                     n[        [        [         R                  5      SUS9n[        [         R                  5      nUR                  Xd5        [        UR                  R                  SS9SSS9  U(       a3  UR                  R                  SS9[        R                  " SSS9:X  d   eg	g	)
a<  Test that the multinomial classification is identifiable.

A multinomial with c classes can be modeled with
probability_k = exp(X@coef_k) / sum(exp(X@coef_l), l=1..c) for k=1..c.
This is not identifiable, unless one chooses a further constraint.
According to [1], the maximum of the L2 penalized likelihood automatically
satisfies the symmetric constraint:
sum(coef_k, k=1..c) = 0

Further details can be found in [2].

Reference
---------
.. [1] :doi:`Zhu, Ji and Trevor J. Hastie. "Classification of gene microarrays by
       penalized logistic regression". Biostatistics 5 3 (2004): 427-43.
       <10.1093/biostatistics/kxg046>`

.. [2] :arxiv:`Noah Simon and Jerome Friedman and Trevor Hastie. (2013)
       "A Blockwise Descent Algorithm for Group-penalized Multiresponse and
       Multinomial Regression". <1311.6529>`
r,   )rQ   r~   rS   r   r6   r  r  gdy=)r  N)r   r   r;   r   r   r   r8   r!   r<   r   r   r@   r   r   r  )r~   rS   rF   r   r   rC   X_scaleds          rK   (test_multinomial_identifiability_on_irisr  z  s    4 !IIOOIt{{+F

dii.#C TYYHGGH CIIMMqM)159~~!!q!)V]]1%-HHHH rM   r  g      $@c                     [        SS9u  p#[        U5      n[        R                  " U5      nSUS US-  & UR	                  5       n[        SUSU S9nUR                  X#US9  [        Xe5        g )NT
return_X_yr4   r   rk  )r+   rA  r   r   r  )r   r8   r9   rA   rR  r   r<   r   )r   rA  rD   rE   r   WexpectedrC   s           rK   test_sample_weight_not_modifiedr    sp     %DAQJ

AA
avvxH
\C[C GGAG"H rM   c           	         U" [         R                  " SSUS95      nS H'  n[        X4[        X45      R	                  S5      5        M)     [
        R                  R                  U5      nUR                  SUR                  S   S9nU S	;   a=  S
n[        R                  " [        US9   [        U S9R                  X65        S S S 5        g [        U S9R                  X65        g ! , (       d  f       g = f)Nr  r   r*   )indicesindptrint64r4   r   r  )r-   r0   r1   z0Only sparse matrices with 32-bit integer indicesr   r  )r   randsetattrr  r   r9   r   r   r  r;   r   r   r   r   r<   )r~   r   rN   rD   attrr   rE   r   s           rK   test_large_sparse_matrixr    s     	fkk"b7IJKA%)009: &
))

 2
3CAAGGAJ'A--@]]:S1f-11!7 21 	&)--a3 21s   'C""
C0c                      [         R                  " / SQ/5      R                  n [         R                  " / SQ5      nU R                  S   S:X  d   e[	        SSS9R                  X5        g )N)r^   g?g?g      ?r]   gHzG?r   ffffff?)r3   r3   r   r   r3   r3   r   r3   r3   r.   T)r~   rS   )r9   r   r  r;   r   r<   )rD   rE   s     rK   test_single_feature_newton_cgr    sT     	>?@BBA
)*A771:??k>BB1HrM   c            
         [         R                  R                  5       n [         R                  R                  5       nXS:g     n XS:g     n[	        5       R                  U 5      n[        XSS9S-  n[        SSSSS	S
US9n[        R                  " 5          [        R                  " S[        5        UR                  X!5        S S S 5        g ! , (       d  f       g = f)Nr4   r{  )r  gnt@r   r-   r   rP   r   r   )r   r~   r   r   r   r+   rQ   error)r   r   rR  r   r    r  r"   r   r   r   r   r   r<   )rD   rE   X_preprQ   rC   s        rK   test_liblinear_not_stuckr    s    		AA	q&	A	q&	A++A.FE"_4A
!
C 
	 	 	"g'9: 
#	"	"s   -C
Cenable_metadata_routingc                     [         R                  R                  S5      n [        SU S9u  p[        SU S9u  p4[         R                  " [        U5      5      nSUS[        U5      S-  & SU0n[        S5      n[        US9nUR                  " X40 UD6  [        S5      n	U	R                  SS	9  [        U	S9n
U
R                  " X40 UD6  [         R                  " UR                  S
   U
R                  S
   5      (       a   eUR                  " X440 UD6nU
R                  " X440 UD6n[         R                  " X5      (       a   eg)zTest that `sample_weight` is correctly passed to the scorer in
`LogisticRegressionCV.fit` and `LogisticRegressionCV.score` by
checking the difference in scores with the case when `sample_weight`
is not requested.
r   r  r4   Nrg   r#  rv   Tr  r3   )r9   r   r   r   rA   r8   r   r   r<   set_score_requestrB  r  rh   )r   rD   rE   X_ty_trg   kwargsscorer1lr_cv1scorer2lr_cv2score_1score_2s                rK   8test_lr_cv_scores_differ_when_sample_weight_is_requestedr    s%    ))


#C#>DA"RcBHCGGCFOM#$M-CFaK }-F$G!'2F
JJqv$GD1!'2F
JJqv{{6>>!,fnnQ.?@@@@ll3.v.Gll3.v.G{{7,,,,,rM   c                     [         R                  R                  S5      n [        SU S9u  p[        SU S9u  p4[         R                  " [        U5      5      nSUS[        U5      S-  & SU0n[        SS9   [        S5      n[        US	9nUR                  " X40 UD6  UR                  " X440 UD6n	SSS5        [        S
S9   [        S5      n
U
R                  S
S9  [        U
S	9nUR                  " X40 UD6  UR                  " X440 UD6nSSS5        [        WR                  S   WR                  S   5        [        W	W5        g! , (       d  f       N= f! , (       d  f       NR= f)zTest that `sample_weight` is passed correctly to the scorer in
`LogisticRegressionCV.fit` and `LogisticRegressionCV.score` even
when `enable_metadata_routing=False`
r   r  r4   Nrg   Fr  r#  r  Tr  r3   )r9   r   r   r   rA   r8   r   r   r   r<   rh   r  r   r  )r   rD   rE   r  r  rg   r  r  r  r  r  r  r  s                rK   3test_lr_cv_scores_without_enabling_metadata_routingr  	  s:   
 ))


#C#>DA"RcBHCGGCFOM#$M-CFaK }-F		6Z(%g6

1"6",,s262	 
7 
	5Z(!!!5%g6

1"6",,s262 
6 FNN1%v~~a'89GW% 
7	6 
6	5s   5;EA
E
E
E%c                 z   [        SS9u  pUS:H  n[        [        S9   [        U SS9R	                  X5      nS S S 5        U S;  a  WR
                  S:X  d   eU S:w  a  [        WR                  [        R                  " UR                  5      5        [        UR                  U5      [        R                  " UR                  S   UR                  S	95        [        UR                  U5      [        R                  " UR                  S   S4S
S	95        WR                  X5      S:  d   eg ! , (       d  f       N= f)NTr  r4   r  r   rn  )r1   r0   r,   )r;   
fill_valuer^   r  )r   r%   r   r   r<   r  r   r   r9   
zeros_liker   r  r;   r   r?   rh   )r~   rD   rE   rC   s       rK   test_zero_max_iterr  -	  s     %DA	QA	"4	5 ;??E 
6_${{a		2==#;<!!!$GG!''!*@	
 	a GG1771:q/c:	
 99Q?S   # 
6	5s   D,,
D:c                     [        SSS9u  p[        5       nSn[        SS9   SS0n[        R                  " [
        US	9   UR                  " X40 UD6  S
S
S
5        [        R                  " [
        US	9   UR                  " X40 UD6  S
S
S
5        S
S
S
5        g
! , (       d  f       NL= f! , (       d  f       N(= f! , (       d  f       g
= f)zTest that the right error message is raised when metadata params
are passed while not supported when `enable_metadata_routing=False`.r   r   r  z1is only supported if enable_metadata_routing=TrueFr  extra_paramr  r   N)r   r   r   r   r   r   r<   rh   )rD   rE   r   r   r8  s        rK   5test_passing_params_without_enabling_metadata_routingr  G	  s     !<DA "E
=C		6%]]:S1IIa%f% 2 ]]:S1KK'' 2 
7	6 21 21 
7	6s;   B< B!B<5B+	B<
B(	$B<+
B9	5B<<
C
c                     [        SSSS9u  p[        SS9nSn[        R                  " [        US9   UR                  X5        S	S	S	5        [        SS9n[        R                  " [        US9   UR                  X5        S	S	S	5        [        S
SSS9u  p[        SS9nSn[        R                  " [        US9   UR                  X5        S	S	S	5        [        SS9n[        R                  " [        US9   UR                  X5        S	S	S	5        g	! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nm= f! , (       d  f       g	= f)z)Check `multi_class` parameter deprecated.rs   r  r,  )rH   rF   r-  r   r  z'multi_class' was deprecatedr   Nr4   r   z-'multi_class' was deprecated.*binary problems)r   r   r   r   FutureWarningr<   r   )rD   rE   rz   r   lrCVs        rK   test_multi_class_deprecatedr  Y	  s    bJDA		.B
(C	m3	/
q 
0  E2D	m3	/ 
0 bJDA		6B
9C	m3	/
q 
0  M:D	m3	/ 
0	/ 
0	/ 
0	/ 
0	/ 
0	/s/   D.D!9D25E
D!
D/2
E 
Ec                    [        SSU S9u  pSn[        SUS9n[        R                  " 5          [        R                  " S5        UR                  X5        UR                  S   nS S S 5        WS	:  d   e[        S
US9n[        [        S9   UR                  X5        UR                  S   nS S S 5        WU:X  d   e[        S
X5S	-
  S9n[        [        S9   [        R                  " [        SS9   UR                  X5        UR                  S   n	S S S 5        S S S 5        W	UR                  S	-
  :X  d   eg ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NN= f! , (       d  f       NW= f)Nr   r  rI  gꌠ9Y>)Fr,   )r~   rQ   r  r   r3   r/   r  )r~   rQ   r   r  r   )r   r   r   r   r   r<   r  r%   r	   r   r   r   r   )
r   rD   rE   rQ   lr_lbfgsn_iter_lbfgslr_nc	n_iter_nclr_nc_limitedn_iter_nc_limiteds
             rK   &test_newton_cholesky_fallback_to_lbfgsr  q	  sW    2DDA 	A "A6H		 	 	"g&Q''* 
#
 1 &71=E	-	0		!MM!$	 
1 $$$ ' Aq0@M 
-	0\\,4NOa# - 5 5a 8 P 
1
  6 6 ::::9 
#	" 
1	0 PO 
1	0s;   7D9!E
E,2!EE,9
E

E
E)	%E,,
E:	Estimatorc                     Sn[         R                  " [        US9   U " SS9R                  [        R
                  [        R                  5        SSS5        g! , (       d  f       g= f)z2Check that liblinear warns on multiclass problems.a  Using the 'liblinear' solver for multiclass classification is deprecated. An error will be raised in 1.8. Either use another solver which supports the multinomial loss or wrap the estimator in a OneVsRestClassifier to keep applying a one-versus-rest scheme.r   r-   r  N)r   r   r  r<   r   r   r   )r  r   s     rK   !test_liblinear_multiclass_warningr  	  sE    	  
m3	/%))$))T[[A 
0	/	/s   3A
A&)rb  r*  r   	functoolsr   numpyr9   r   numpy.testingr   r   r   r   scipyr   scipy.linalgr	   r
   sklearnr   sklearn._lossr   sklearn.baser   sklearn.datasetsr   r   r   sklearn.exceptionsr   sklearn.linear_modelr   sklearn.linear_model._logisticr   LogisticRegressionDefaultr   LogisticRegressionCVDefaultr   r   sklearn.metricsr   r   sklearn.model_selectionr   r   r   r   r   sklearn.multiclassr   sklearn.preprocessingr   r    r!   sklearn.svmr"   sklearn.utilsr#   r$   sklearn.utils._testingr%   r&   sklearn.utils.fixesr'   r(   r)   markfilterwarnings
pytestmarkra  rD   rT   r   r   rL   parametrizerV   r|   r   r   r8   r   r   r   r   r   r   r   r   r   r   r  r	  r  r"  r<  rG  rL  r[  rg  rv  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r3  r  r  rC  rs  r  r   r&  r8  r>  rH  rN  rZ  r   rc  rm  ro  rs  rv  rx  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rq   rM   rK   <module>r     s    	       + " -  Q Q 1 . 1  3 E E   7 G I I[[''<
 6QG :K  P!Wq!fq!f{8$ .9 :"B 
 
 .9F :F STO 	S^KUSS^G<S^K@$))nU%VX	
 	$))n	
 	S^4EF&*' U.*: ST 24HIJ% K U%P  24HIJ@ K@ ST#HI) J U)2 ST/ U/* .92 :20<(;;
|?,8B06 "	bT	x-. 
+&'	"	Hk*+ 
 
F&IR .9 :  ST?- U?-D
$ ST5$-8  9 U F 5$-8B 9BJ $4###6N#OP(J)?@+
 A Q+
\ $45S@M 6@MF FAA<8<v ;-.*HI#E J#EL8Jv4 .9! :! .9! :!!!BH .9/B :/Bd -T4L15 2 .50+. STRYYq!_5(>?"%# @ 6 U(%0 STO 7+.8 , U
.8b 6#g,k]9K*K#LM}5-8# 9 6 N#< $5{#CD-8L1: 2 9 E:> .9*J :*J\ ST(>?C 5$-8.9E@ : 9 @ UE@P:"C8 AB,y).DE@ F C@, 23D 4D8 bkk"a34_5&; 6 5&;R f-#. .#.P ST*F U*F\ ST$89(FG 7 H : U 7L ST(O U(OVQ bkk"a34_5%? 6 5%?PAB STO 	C8!aTCP 	'   7+'
 , U'
T 6#g,k]9K*K#LM1 N1* %$G$u$G%4H*<*<Z(HX ST#LM5$-8&I 9 N U&IT ST(FGcds*CZ)PQ! R H U! 7+.94 : ,4&I2 -- .-<&: 7+! ,!2($0';V '9;O&PQ
B R
BrM   