Ë
    íì�i€q ã                   óÒ  — d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZm	Z	m
Z
 d dl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mZm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$m%Z%m&Z&m'Z' d dl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. d dl/m0Z0 d dl1m2Z2m3Z3m4Z4 d dl5m6Z6 d dl7m8Z8m9Z9 d dl:m;Z; d dl<m=Z=m>Z>m?Z? ej€                  jƒ                  d«      ZBej€                  jƒ                  d«      ZBdZCdd gd dgddggZDg d¢ZEg d¢ZF e«       ZGd„ ZHej€                  j“                  de?«      d„ «       ZJd„ ZKej€                  j“                  de?«      d„ «       ZLej€                  j“                  d  e eMeGjœ                  «      d!d"¬#«       e eMeGjœ                  «      d$¬%«       e eMeGjœ                  «      d&d'¬(«       e eMeGjœ                  «      d)d'¬(«       e eMeGjœ                  «      d*¬%«       e0 e eMeGjœ                  «      d+¬%«      «      g«      d,„ «       ZOej€                  jƒ                  d-«      ej€                  j“                  d.d!d*g«      d/„ «       «       ZPej€                  jƒ                  d0«      ej€                  j“                  d1eeg«      d2„ «       «       ZQej€                  jƒ                  d3«      ej€                  j“                  d1d4ged5fed6fg«      d7„ «       «       ZRej€                  j“                  d8e>«      d9„ «       ZSd:„ ZTd;„ ZUd<„ ZVd=„ ZWd>„ ZXej€                  j²                  d?„ «       ZZej€                  j“                  d@dAdBg«      dC„ «       Z[ej€                  j“                  dDdEdFgfdGdHdIgfdJdHdIgfdKdFgfdLdHdIgfg«      dM„ «       Z\dN„ Z]ej€                  j“                  de?«      dO„ «       Z^ej€                  j“                  d@dAdBg«      dP„ «       Z_dQ„ Z`ej€                  j“                  dRdBdAg«      dS„ «       Zaej€                  j“                  dRdBdAg«      dT„ «       Zbej€                  j“                  dUdVdWdXœdVdWdYdZœg«      ej€                  j“                  d[dUd\g«      d]„ «       «       Zcej€                  jƒ                  d0«      ej€                  j“                  d^d_«      ej€                  j“                  d.d«      d`„ «       «       «       Zdej€                  j“                  d.da«      db„ «       Zedc„ Zfdd„ Zgej€                  j“                  dde„ ge?z   «      df„ «       Zhdg„ Zidh„ Zjej€                  j“                  de?«      di„ «       Zkej€                  j“                  de?«      dj„ «       Zldk„ Zmdl„ Znej€                  j“                  de?«      dm„ «       Zoej€                  j“                  d5dd g«      dn„ «       Zpdo„ Zqej€                  j“                  dp ejä                  ddq«      «      ej€                  j“                  drg ds¢«      dt„ «       «       Zsej€                  j“                  d.eC«      ej€                  j“                  d@dAdBg«      du„ «       «       Ztej€                  j“                  d. eu eveC«       evd+g«      z
  «      «      ej€                  j“                  dvdw«      ej€                  j“                  dRdw«      dx„ «       «       «       Zwej€                  j“                  d.d*d$g«      ej€                  j“                  dRdw«      ej€                  j“                  dydejð                  f«      dz„ «       «       «       Zyej€                  j“                  d5dX«      ej€                  j“                  de?«      d{„ «       «       Zzej€                  j“                  d.g d|¢«      ej€                  j“                  dRdBdAg«      ej€                  j“                  de?«      d}„ «       «       «       Z{d~„ Z|d„ Z}ej€                  jƒ                  d€«      ej€                  j“                  dyg d�¢«      ej€                  j“                  d‚dƒd„g«      d…„ «       «       «       Z~ej€                  j“                  dyg d†¢«      d‡„ «       Zej€                  j“                  dy e�j                   dˆd‰dŠ«      «      ej€                  j“                  d5g d‹¢«      dŒ„ «       «       Z�ej€                  j“                  d�dŽ«      d�„ «       Z‚ej€                  j“                  d6d� e�j                  d dd‰«      f«      ej€                  j“                  d�dŽ«      d‘„ «       «       Z„ej€                  j“                  d�dŽ«      d’„ «       Z…d“„ Z†ej€                  jƒ                  d€«      d”„ «       Z‡ej€                  j“                  dy e�j                   dˆd‰dŠ«      «      ej€                  j“                  d5g d‹¢«      d•„ «       «       Zˆd–„ Z‰d—„ ZŠej€                  jƒ                  d€«      ej€                  j“                  d. eu eveC«       evd+g«      z
  «      «      d˜„ «       «       Z‹ej€                  j²                  ej€                  j“                  d™ddBdšd›dœœd dAd�d›dœœd dBd�d›dœœg«      dž„ «       «       ZŒdŸ„ Z�ej€                  j“                  d.g d ¢«      ej€                  j“                  dRdBdAg«      d¡„ «       «       ZŽej€                  j“                  d[d¢d£d¢dZœd\g«      d¤„ «       Z�ej€                  j“                  d.eC«      ej€                  j“                  de?«      d¥„ «       «       Z�d¦„ Z‘d§„ Z’d¨„ Z“ edA¬©«      dª„ «       Z”d«„ Z•ej€                  j“                  d.eC«      d¬„ «       Z–d­„ Z—d®„ Z˜ej€                  jƒ                  d0«      ej€                  j“                  d¯eeg«      d°„ «       «       Z™ej€                  jƒ                  d±«      ej€                  j“                  d²eeg«      d³„ «       «       Zšd´„ Z›ej€                  jƒ                  dµ«      ej€                  jƒ                  d±«      d¶„ «       «       Zœd·„ Z�ej€                  jƒ                  d¸«      ej€                  j“                  d‚d¹dºg«      d»„ «       «       Zžy)¼é    N)Úassert_allcloseÚassert_array_almost_equalÚassert_array_equal)Úsparse)ÚLinAlgWarningÚsvd)Úconfig_context)ÚHalfMultinomialLoss)Úclone)Ú	load_irisÚmake_classificationÚmake_low_rank_matrix)ÚConvergenceWarning)ÚLogisticRegressionÚLogisticRegressionCVÚSGDClassifier)Ú_log_reg_scoring_pathÚ_logistic_regression_path)Úbrier_score_lossÚ
get_scorerÚlog_lossÚmake_scorer)ÚGridSearchCVÚKFoldÚLeaveOneGroupOutÚStratifiedKFoldÚcross_val_scoreÚtrain_test_split)ÚOneVsRestClassifier)ÚLabelEncoderÚStandardScalerÚscale)Úl1_min_c)Úcompute_class_weightÚshuffle)Úignore_warnings)Ú	_IS_32BITÚCOO_CONTAINERSÚCSR_CONTAINERSz6error::sklearn.exceptions.ConvergenceWarning:sklearn.*z6ignore:The default value for l1_ratios.*:FutureWarning)ÚlbfgsÚ	liblinearú	newton-cgúnewton-choleskyÚsagÚsagaéÿÿÿÿé   )r   r1   r1   )é   r1   r   c                 óê  — t        |«      }t        j                  |«      }|j                  d   }| j	                  ||«      j                  |«      }t        | j                  |«       |j                  |fk(  sJ ‚t        ||«       | j                  |«      }|j                  ||fk(  sJ ‚t        |j                  d¬«      t        j                  |«      «       t        |j                  d¬«      |«       y)z;Check that the model is able to fit the classification datar   r1   ©Ú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/ITT-ServiceAPI-Services/ITT-Document-Scan/mrzscanner/mrzenv/lib/python3.12/site-packages/sklearn/linear_model/tests/test_logistic.pyÚcheck_predictionsrJ   9   sÎ   € ä�A“€IÜ�i‰i˜‹l€GØ—‘˜aÑ €Ià—‘˜˜1“×%Ñ% aÓ(€IÜ�s—|‘| WÔ-à�?‰?˜y˜lÒ*Ð*Ð*Ü�y !Ô$à×%Ñ% aÓ(€MØ×Ñ 9¨iÐ"8Ò8Ð8Ð8Ü˜m×/Ñ/°QÐ/Ó7¼¿¹ÀÓ9KÔLÜ�}×+Ñ+°Ð+Ó3°QÕ7ó    Úcsr_containerc                 ó”  — t        t        «       t        t        «       t        t        «        | t        «      t        «       t        t        d¬«      t        t        «       t        t        d¬«       | t        «      t        «       t        t        d¬«      t        t        «       t        t        d¬«       | t        «      t        «       y )Néd   ©ÚCF©Úfit_intercept)rJ   r   rB   ÚY1©rL   s    rI   Útest_predict_2_classesrU   K   s|   € ô Ô(Ó*¬A¬rÔ2ÜÔ(Ó*©M¼!Ó,<¼bÔAäÔ(¨3Ô/´´BÔ7ÜÔ(¨3Ô/±¼qÓ1AÄ2ÔFäÔ(°uÔ=¼qÄ"ÔEÜÔ(°uÔ=¹}ÌQÓ?OÔQSÕTrK   c                  ó�  —  G d„ d«      }  | «       }g d¢}d}t        |d||d¬«      }t        d¬	«      \  }}|j                  ||«       |j                  |d   k(  sJ ‚|j                  |t        |«      z  k(  sJ ‚d|_        |j                  ||j                  |«      «      }||j                  d   k(  sJ ‚|j                  d
k(  sJ ‚y)z0Test that LogisticRegressionCV calls the scorer.c                   ó   — e Zd Zd„ Zdd„Zy)ú0test_logistic_cv_mock_scorer.<locals>.MockScorerc                 ó$   — d| _         g d¢| _        y )Nr   )çš™™™™™¹?gš™™™™™Ù?çš™™™™™é?ç      à?)ÚcallsÚscores)Úselfs    rI   Ú__init__z9test_logistic_cv_mock_scorer.<locals>.MockScorer.__init__]   s   € ØˆDŒJÚ.ˆD�KrK   Nc                 óŽ   — | j                   | j                  t        | j                   «      z     }| xj                  dz  c_        |S )Nr1   )r^   r]   r6   )r_   ÚmodelrB   rC   Úsample_weightÚscores         rI   Ú__call__z9test_logistic_cv_mock_scorer.<locals>.MockScorer.__call__a   s4   € Ø—K‘K §
¡
¬S°·±Ó-=Ñ =Ñ>ˆEØ�JŠJ˜!‰O�JØˆLrK   ©N)Ú__name__Ú
__module__Ú__qualname__r`   re   © rK   rI   Ú
MockScorerrX   \   s   „ ò	/ô	rK   rk   )r1   r2   é   é   r2   ©r   F)ÚCsÚ	l1_ratiosÚscoringÚcvÚuse_legacy_attributesr   ©Úrandom_stater1   N)	r   r   r:   ÚC_r]   r6   rd   r;   r^   )rk   Úmock_scorerro   rr   ÚlrrB   rC   Úcustom_scores           rI   Útest_logistic_cv_mock_scorerrz   Y   sØ   € ÷ñ ñ “,€KÚ	€BØ	
€Bä	ØØØØØ#ô
€Bô ¨AÔ.�D€A€qØ‡F�Fˆ1ˆa„Lð �5‰5�B�q‘EŠ>Ðˆ>ð ×Ñ ¤S¨£W¡Ò,Ð,Ð,ð €KÔØ—8‘8˜A˜rŸz™z¨!›}Ó-€Là˜;×-Ñ-¨aÑ0Ò0Ð0Ð0Ø×Ñ Ò!Ð!Ñ!rK   c                 óŒ   — t        t        d¬«      t        t        «       t        t        d¬«       | t        «      t        «       y )Né
   rO   )rJ   r   rB   ÚY2rT   s    rI   Útest_predict_3_classesr~   ‚   s+   € äÔ(¨2Ô.´´2Ô6ÜÔ(¨2Ô.±¼aÓ0@Ä"ÕErK   rA   r*   éÈ   )rP   ÚsolverÚmax_iterr,   ©rP   r€   r.   ç{®Gáz„?©rP   r€   Útolr/   r-   r+   c                 óþ  — t        | «      } t        j                  j                  \  }}t        j                  t        j
                     }t        | dd«      dv r| j                  |¬«       | j                  t        j                  |«       t        t        j                  |«      | j                  «       | j                  t        j                  «      }t        j                  ||k(  «      dkD  sJ ‚| j                  t        j                  «      }t!        |j#                  d¬«      t        j$                  |«      «       t        j                  |j'                  d¬«         }t        j                  ||k(  «      dkD  sJ ‚y)z¶Test logistic regression with the iris dataset.

    Test that different solvers handle multiclass data correctly and
    give good accuracy score (>0.95) for the training data.
    r€   N)r.   r/   r+   rt   çffffffî?r1   r4   )r   ÚirisÚdatar9   Útarget_namesÚtargetÚgetattrÚ
set_paramsr:   r   r7   r8   r<   r;   Úmeanr=   r   r>   r?   r@   )rA   Úglobal_random_seedrD   Ú_r‹   ÚpredrH   s          rI   Útest_predict_irisr’   ˆ   s  € ô2 �‹*€CÜ—9‘9—?‘?�L€IˆqÜ×ÑœtŸ{™{Ñ+€Fäˆs�H˜dÓ#Ð'CÑCØ�‰Ð$6ˆÔ7Ø‡G�GŒD�I‰I�vÔÜ”r—y‘y Ó(¨#¯,©,Ô7à�;‰;”t—y‘yÓ!€DÜ�7‰7�4˜6‘>Ó" TÒ)Ð)Ð)à×%Ñ%¤d§i¡iÓ0€MÜ�M×%Ñ%¨1Ð%Ó-¬r¯w©w°yÓ/AÔBä×Ñ˜]×1Ñ1°qÐ1Ó9Ñ:€DÜ�7‰7�4˜6‘>Ó" TÒ)Ð)Ñ)rK   z,error::sklearn.exceptions.ConvergenceWarningr€   c                 ó  — t        j                  g d¢g d¢g«      j                  }t        j                  g d¢«      }t        d|j                  d   z  ddd| ¬	«      }|j                  ||«       t        |j                  d
d¬«       t        |j                  ddggd¬«       t        j                  g d¢«      }|j                  ||«       t        |j                  g d¢d¬«       t        |j                  ddgddgddggdd¬«       y)z<Compare Logistic regression with L2 regularization to glmnet)	éüÿÿÿéýÿÿÿéþÿÿÿr0   r   r1   r2   rl   rm   )	r   r   r1   r   r1   r1   r1   r   r   )	r   r   r   r1   r1   r1   r1   r1   r1   ç      ð?r   Tç:Œ0âŽyE>é,  )rP   rR   r…   r�   r€   g…Ÿÿ;Á�ì?çñhãˆµøä>©Úrtolg&+4uÜ?gGÈG‹ÔÙ�?)	r   r   r   r1   r1   r1   r2   r2   r2   )g:Mup»¾¿gH"qœ†ÒÌ?gÕôóÃœéº¿g´ÀÞ‰ÀUØ¿g²	¸Wd‰¿g0R´Éf¿g§'u±ª=¨?gnH‡öWØ?g;%‡›ö¡¿©rœ   ÚatolN)	r7   ÚarrayÚTr   r9   r:   r   Ú
intercept_Úcoef_)r€   rB   rC   Úglms       rI   Útest_logistic_glmnetr¤   ´   só   € ô  	�‰Ò1Ò3NÐOÓP×RÑR€AÜ
�‰Ò,Ó-€AÜ
Ø
�!—'‘'˜!‘*Ñ
ØØØØô€Cð ‡G�GˆAˆq„MÜ�C—N‘N M¸Õ=Ü�C—I‘I °Ð >Ð?ÀdÕKô6 	�‰Ò,Ó-€AØ‡G�GˆAˆq„MÜØ�‰ÒHÈtõô Ø�	‰	à˜^Ð,Ø˜Ð/Ø˜=Ð)ð	
ð
 Øö	rK   z.ignore:.*use_legacy_attributes.*:FutureWarningÚLRc                 ó&  — t         j                  t         j                  }}dD ]G  }d|› d�} | |¬«      }t        j                  t
        |¬«      5  |j                  ||«       d d d «       ŒI dD ][  }d|z  }| t        k(  r | |d¬	«      }n
 | |d
¬«      }t        j                  t
        |¬«      5  |j                  ||«       d d d «       Œ] dD ]G  }d|z  } | |d¬«      }t        j                  t
        |¬«      5  |j                  ||«       d d d «       ŒI dD ]\  }d|› d�}| t        k(  r | |d¬	«      }n
 | |d¬«      }t        j                  t
        |¬«      5  |j                  ||«       d d d «       Œ^ | t        u rQd} | t        j                  d¬«      }t        j                  t
        |¬«      5  |j                  ||«       d d d «       y y # 1 sw Y   �Œ»xY w# 1 sw Y   �Œ|xY w# 1 sw Y   �Œ)xY w# 1 sw Y   ŒéxY w# 1 sw Y   y xY w)N©r+   zThe 'z4' solver does not support multiclass classification.©r€   ©Úmatch)r*   r,   r-   r.   z/Solver %s supports only 'l2' or None penalties,r1   )r€   Úl1_ratio©r1   )r€   rp   ©r*   r,   r-   r.   r/   z1Solver %s supports only dual=False, got dual=TrueT)r€   Údualz;Only 'saga' solver supports elasticnet penalty, got solver=ú.r\   )r\   z6penalty=None is not supported for the liblinear solverr+   r‚   )
rˆ   r‰   r‹   ÚpytestÚraisesÚ
ValueErrorr:   r   r7   Úinf)r¥   rB   rC   r€   Úmsgrx   s         rI   Útest_check_solver_optionrµ   ü   s  € ô �9‰9”d—k‘k€q€Að  ò ˆØ�f�XÐQÐRˆÙ�vÔˆÜ�]‰]œ:¨SÔ1ñ 	Ø�F‰F�1�aŒL÷	ð 	ðð Cò ˆØ?À&ÑHˆØÔ#Ò#Ù˜6¨AÔ.‰Bá˜6¨TÔ2ˆBÜ�]‰]œ:¨SÔ1ñ 	Ø�F‰F�1�aŒL÷	ð 	ðð Kò ˆØAÀFÑJˆÙ�v DÔ)ˆÜ�]‰]œ:¨SÔ1ñ 	Ø�F‰F�1�aŒL÷	ð 	ðð  ò ˆØKÈFÈ8ÐSTÐUˆØÔ#Ò#Ù˜6¨CÔ0‰Bá˜6¨VÔ4ˆBÜ�]‰]œ:¨SÔ1ñ 	Ø�F‰F�1�aŒL÷	ð 	ðð 
ÔÑØFˆÙ”"—&‘& Ô-ˆÜ�]‰]œ:¨SÔ1ñ 	Ø�F‰F�1�aŒL÷	ð 	ð  ÷A	ñ 	ú÷	ñ 	ú÷
	ñ 	ú÷	ð 	ú÷	ð 	ús<   ÁGÂ0G!Ã<G.ÅG;Æ7HÇG	Ç!G+	Ç.G8	Ç;H	ÈHzignore::FutureWarningÚargr«   rp   c                 óþ   —  | ddddœ|d i¤Ž}t        j                  t        d¬«      5  |j                  t	        j
                  ddgdd	gg«      t	        j
                  d
dg«      «       d d d «       y # 1 sw Y   y xY w)NÚ
elasticnetr/   )Úpenaltyr€   z.*l1_ratio.*r©   r1   r2   rl   rm   r   rj   )r°   r±   r²   r:   r7   rŸ   )r¥   r¶   rb   s      rI   Ú$test_elasticnet_l1_ratio_err_helpfulrº   -  st   € ñ ÐB�|¨FÑB°s¸D°kÑB€EÜ	�‰”z¨Ô	9ñ @Ø�	‰	”"—(‘(˜Q ˜F Q¨ FÐ+Ó,¬b¯h©h¸¸1°vÓ.>Ô?÷@÷ @ñ @ús   ©AA3Á3A<Úcoo_containerc                 óH  — t         j                  j                  \  }}t         j                  t         j                     }t        t         j                  «      }t        «       j                  ||«      }|j                  |«      }|j                  «        t        j                  |j                  «      sJ ‚|j                  |«      } | |«      }|j                  |«      }	|j                  «        |j                  |«      }
t        ||«       t        ||	«       t        ||
«       y rf   )rˆ   r‰   r9   rŠ   r‹   r"   r   r:   Údecision_functionÚsparsifyr   Úissparser¢   Údensifyr   )r»   rD   Ú
n_featuresr‹   rB   rA   Úpred_d_dÚpred_s_dÚsp_dataÚpred_s_sÚpred_d_ss              rI   Útest_sparsifyrÇ   :  sÝ   € ô !ŸI™IŸO™OÑ€IˆzÜ×ÑœtŸ{™{Ñ+€FÜŒd�i‰iÓ€AÜ
Ó
×
"Ñ
" 1 fÓ
-€Cà×$Ñ$ QÓ'€Hà‡L�L„NÜ�?‰?˜3Ÿ9™9Ô%Ð%Ð%Ø×$Ñ$ QÓ'€Há˜AÓ€GØ×$Ñ$ WÓ-€Hà‡K�K„MØ×$Ñ$ WÓ-€Hä˜h¨Ô1Ü˜h¨Ô1Ü˜h¨Õ1rK   c                  ó  — t         j                  j                  d«      } | j                  d«      }t        j                  |j
                  d   «      }d|d<   t        d¬«      }|d d }t        j                  t        «      5  |j                  t        |«       d d d «       t        j                  t        «      5  |j                  ||«      j                  | j                  d«      «       d d d «       y # 1 sw Y   Œ\xY w# 1 sw Y   y xY w)Nr   )é   r|   rt   r0   )rl   é   )r7   ÚrandomÚRandomStateÚrandom_sampler?   r9   r   r°   r±   r²   r:   rB   r;   )ÚrngÚX_Úy_rA   Úy_wrongs        rI   Útest_inconsistent_inputrÒ   S  sÖ   € ä
�)‰)×
Ñ
 Ó
"€CØ	×	Ñ	˜7Ó	#€BÜ	�‰�—‘˜!‘Ó	€BØ€B€q�Eä
¨!Ô
,€Cð ��"ˆg€Gä	�‰”zÓ	"ñ Ø�‰”�7Ô÷ô 
�‰”zÓ	"ñ <Ø�‰��B‹×Ñ × 1Ñ 1°'Ó :Ô;÷<ð <÷	ð ú÷<ð <ús   ÂC4Â:1D Ã4C=Ä D	c                  óÆ   — t        «       } | j                  t        t        «       d| j                  d d  d| j
                  d d  t        | j                  t        «      d«       y )Nr   )r   r:   rB   rS   r¢   r¡   r   r½   ©rA   s    rI   Útest_write_parametersrÕ   g  sG   € ä
Ó
€CØ‡G�GŒAŒr„NØ€C‡I�I‰a€LØ€C‡N�N‘1ÐÜ˜c×3Ñ3´AÓ6¸Õ:rK   c                  ó  — t        j                  t        t         j                  ¬«      } t         j                  | d<   t        «       }t        j                  t        «      5  |j                  | t        «       d d d «       y # 1 sw Y   y xY w)N©Údtype©r   r1   )r7   rŸ   rB   Úfloat64Únanr   r°   r±   r²   r:   rS   )ÚXnanÚlogistics     rI   Útest_nanrÞ   p  s\   € ô �8‰8”AœRŸZ™ZÔ(€DÜ—‘€Dˆ�JÜ!Ó#€Hä	�‰”zÓ	"ñ Ø�‰�Tœ2Ô÷÷ ñ ús   Á B Â B	c                 ób  — t         j                  j                  | «      }t        j                  |j	                  dd«      ddgz   |j	                  dd«      f«      }dgdz  dgdz  z   }t        j
                  ddd«      }t        }dD ]ˆ  }  |t        «      ||ddg|d	d
|d| ¬«	      \  }}}t        |«      D ]W  \  }	}
t        |
d	d
|| d¬«      }|j                  ||«       |j                  j                  «       }t        |||	   dd|z  ¬«       ŒY ŒŠ dD ]˜  }dg}  |t        «      ||ddg|d|d| ¬«      \  }}}t        |d   dd| |¬«      }|j                  ||«       t        j                  |j                  j                  «       |j                  g«      }t        ||d   dd|z  ¬«       Œš y )NrN   r2   r1   r0   r   rm   r|   ©r.   r/   Frš   éè  )rE   ro   rR   r…   r€   r�   ru   )rP   rR   r…   r€   ru   r�   zwith solver = %s)ÚdecimalÚerr_msg)r*   r,   r-   r+   r.   r/   ç     @�@ç�íµ ÷Æ°>ç     ˆÃ@)rE   ro   r…   r€   Úintercept_scalingru   )rP   r…   rç   ru   r€   )r7   rË   rÌ   ÚconcatenateÚrandnÚlogspacer&   r   Ú	enumerater   r:   r¢   Úravelr   r¡   )r�   rÎ   rB   rC   ro   Úfr€   Úcoefsr�   ÚirP   rx   Úlr_coefs                rI   Útest_consistency_pathrñ   {  så  € ä
�)‰)×
Ñ
Ð 2Ó
3€CÜ
�‰˜Ÿ	™	 # qÓ)¨Q°¨FÑ2°C·I±I¸cÀ1Ó4EÐFÓG€AØ	
ˆˆc‰	�R�D˜3‘JÑ€AÜ	�‰�Q˜˜2Ó	€Bä€Að "ò ˆØ3‘qÔ2Ó3ØØØ˜�FØØØØØØ+ô

‰ˆˆr�1ô ˜b“Mò 	‰DˆAˆqÜ#ØØ#ØØØ/ØôˆBð �F‰F�1�aŒLØ—h‘h—n‘nÓ&ˆGÜ%Ø˜˜q™¨1Ð6HÈ6Ñ6Qöñ	ðð8 Xò 
ˆØˆUˆØ3‘qÔ2Ó3ØØØ˜�FØØØØ%Ø+ô	
‰ˆˆr�1ô  Ø�‰eØØ%Ø+Øô
ˆð 	�‰ˆq�!ŒÜ—.‘. "§(¡(§.¡.Ó"2°B·M±MÐ!BÓCˆÜ!Ø�U˜1‘X qÐ2DÀvÑ2Mö	
ñ+
rK   c                  óè  — t         j                  j                  d«      } t        j                  | j	                  dd«      ddgz   | j	                  dd«      f«      }dgdz  dgdz  z   }dg}t        j                  t        «      5 }t        ||ddg|dddd¬«       d d d «       t        «      dk(  sJ ‚|d   j                  j                  d   }d	|v sJ ‚d
|v sJ ‚d|v sJ ‚d|v sJ ‚y # 1 sw Y   ŒNxY w)Nr   rN   r2   r1   r0   rä   ç        )rE   ro   r…   r�   ru   Úverbosez-lbfgs failed to converge after 1 iteration(s)z!Increase the number of iterationszscale the dataz%linear_model.html#logistic-regression)r7   rË   rÌ   rè   ré   r°   Úwarnsr   r   r6   ÚmessageÚargs)rÎ   rB   rC   ro   ÚrecordÚwarn_msgs         rI   Ú.test_logistic_regression_path_convergence_failrú   »  s  € Ü
�)‰)×
Ñ
 Ó
"€CÜ
�‰˜Ÿ	™	 # qÓ)¨Q°¨FÑ2°C·I±I¸cÀ1Ó4EÐFÓG€AØ	
ˆˆc‰	�R�D˜3‘JÑ€AØ
ˆ€Bô
 
�‰Ô(Ó	)ð 
¨VÜ!Øˆq˜1˜a˜& R¨S¸1È1ÐVWõ	
÷
ô
 ˆv‹;˜!ÒÐÐØ�a‰y× Ñ ×%Ñ% aÑ(€HØ:¸hÑFÐFÐFØ.°(Ñ:Ð:Ð:Ø˜xÑ'Ð'Ð'Ø2°hÑ>Ð>Ñ>÷
ð 
ús   ÂC(Ã(C1c                 óÔ  — t        d| ¬«      \  }}t        | ddd¬«      }|j                  ||«       t        | ddd¬«      }|j                  ||«       t        | dz   ddd¬«      }|j                  ||«       t        |j                  |j                  «       d}t        j                  t        |¬	«      5  t        |j                  |j                  «       d d d «       y # 1 sw Y   y xY w)
Né   ©rD   ru   Tçü©ñÒMbP?r+   )ru   r®   r…   r€   r1   z)Arrays are not almost equal to 6 decimalsr©   )r   r   r:   r   r¢   r°   r±   ÚAssertionError)r�   rB   rC   Úlr1Úlr2Úlr3r´   s          rI   Ú test_liblinear_dual_random_stater  Ó  s×   € ô ¨Ð:LÔM�D€A€qÜ
Ø'ØØØô	€Cð ‡G�GˆAˆq„MÜ
Ø'ØØØô	€Cð ‡G�GˆAˆq„MÜ
Ø'¨!Ñ+ØØØô	€Cð ‡G�GˆAˆq„Mô ˜cŸi™i¨¯©Ô3à
5€CÜ	�‰”~¨SÔ	1ñ 8Ü! #§)¡)¨S¯Y©YÔ7÷8÷ 8ñ 8ús   Â4!CÃC'rs   TFc           	      ó„  — d\  }}}t         j                  j                  | «      }|j                  ||«      }t        j                  |j                  d|j                  |«      z  «      «      }||j                  «       z  }||j                  «       z  }t        dgdd| d||¬«      }|j                  ||«       t        dd| d¬«      }	|	j                  ||«       t        |	j                  |j                  «       |j                  j                  d	|fk(  sJ ‚t        |j                  d
d	g«       t!        |j                  «      dk(  sJ ‚|j"                  j                  dk(  sJ ‚|j"                  j                  d   }
|j$                  j                  dk(  sJ ‚|j$                  j                  d   }|r˜t        j&                  t)        |j*                  j-                  «       «      «      }|j                  d	||
||fk(  sJ ‚t        j&                  t)        |j.                  j-                  «       «      «      }|j                  d	||
|fk(  sJ ‚y |j*                  j                  |||
d	|fk(  sJ ‚t1        |j2                  t4        «      sJ ‚t1        |j6                  t4        «      sJ ‚|j.                  j                  |||
fk(  sJ ‚y )N©é2   rÉ   rl   rÉ   r—   ©ró   Fr+   )ro   rp   rR   ru   r€   rr   rs   )rP   rR   ru   r€   r1   r0   r2   r¬   r   )r7   rË   rÌ   ré   ÚsignÚdotrŽ   Ústdr   r:   r   r   r¢   r9   r   r<   r6   ÚCs_Ú
l1_ratios_ÚasarrayÚlistÚcoefs_paths_ÚvaluesÚscores_Ú
isinstancerv   ÚfloatÚ	l1_ratio_)r�   rs   rD   rÁ   Ún_cvrÎ   ÚX_refrC   Úlr_cvrx   Ún_CsÚn_l1_ratiosÚcoefs_pathsr^   s                 rI   Útest_logistic_cvr  ö  si  € ð #+Ñ€Iˆz˜4Ü
�)‰)×
Ñ
Ð 2Ó
3€CØ�I‰I�i Ó,€EÜ
�‰�—	‘	˜!˜cŸi™i¨
Ó3Ñ3Ó4Ó5€AØ	ˆU�Z‰Z‹\Ñ€EØ	ˆU�Y‰Y‹[Ñ€EÜ Øˆ5ØØØ'ØØØ3ô€Eð 
‡I�Iˆe�QÔÜ	Ø
˜UÐ1CÈKô
€Bð ‡F�Fˆ5�!ÔÜ˜bŸh™h¨¯©Ô4à�;‰;×Ñ  J Ò/Ð/Ð/Ü�u—~‘~¨¨A wÔ/Üˆu�~‰~Ó !Ò#Ð#Ð#Ø�9‰9�?‰?˜dÒ"Ð"Ð"Ø�9‰9�?‰?˜1Ñ€DØ×Ñ×!Ñ! TÒ)Ð)Ð)Ø×"Ñ"×(Ñ(¨Ñ+€KÙÜ—j‘j¤ e×&8Ñ&8×&?Ñ&?Ó&AÓ!BÓCˆØ× Ñ  Q¨¨d°KÀÐ$LÒLÐLÐLÜ—‘œD §¡×!5Ñ!5Ó!7Ó8Ó9ˆØ�|‰|  4¨¨{Ð;Ò;Ð;Ñ;à×!Ñ!×'Ñ'¨D°+¸tÀQÈ
Ð+SÒSÐSÐSÜ˜%Ÿ(™(¤EÔ*Ð*Ð*Ü˜%Ÿ/™/¬5Ô1Ð1Ð1Ø�}‰}×"Ñ" t¨[¸$Ð&?Ò?Ð?Ñ?rK   zscoring, multiclass_agg_listÚaccuracyÚ Ú	precisionÚ_macroÚ	_weightedÚf1Úneg_log_lossÚrecallc                 ó¾  — t        d| dd¬«      \  }}t        j                  d«      t        j                  dd«      }}t        d¬«      }|j	                  «       }d|d	<   d
D ]  }	||	= Œ |j                  ||   ||   «       |D ]X  }
t        ||
z   «      }t        t        ||||ft        j                  |«      dg|d d d dœ|¤Žd   d    ||||   ||   «      «       ŒZ y )NrN   rl   é   )rD   ru   rF   Ún_informativeéP   r—   rO   Úl2r¹   )rP   Ún_jobsÚ
warm_start)rE   ro   rq   Úmax_squared_sumrc   Úscore_paramsr2   r   )
r   r7   Úaranger   Ú
get_paramsr:   r   r   r   r8   )r�   rq   Úmulticlass_agg_listrB   rC   ÚtrainÚtestrx   ÚparamsÚkeyÚ	averagingÚscorers               rI   Ú"test_logistic_cv_multinomial_scorer6  "  s  € ô* ØÐ$6À!ÐSTô�D€A€qô —)‘)˜B“-¤§¡¨2¨sÓ!3ˆ4€EÜ	˜cÔ	"€Bà�]‰]‹_€Fð
 €Fˆ9Ñð -ò ˆØ�3‰Kðà‡F�Fˆ1ˆU‰8�Q�u‘XÔØ(ò 
ˆ	Ü˜G iÑ/Ó0ˆÜ!Ü!ØØØØð	ô
 Ÿ	™	 !›Ø�5ØØ $Ø"Ø!ñð ñð ñð ññ �2�q˜‘w  $¡Ó(õ	
ñ
rK   c                  ó”  — d\  } }}t        | ||dd¬«      \  }}t        «       j                  g d¢«      j                  |«      }t	        j
                  |«      dz
  }t        «       }t        dd¬«      }t        «       }t        dd¬«      }	|j                  ||«       |j                  ||«       |j                  ||«       |	j                  ||«       t        |j                  |j                  «       t        |j                  |«      |j                  |«      «       t        |j                  «      g d¢k(  sJ ‚t        |j                  |	j                  «       t        |j                  |«      |	j                  |«      «       t        |j                  «      g d¢k(  sJ ‚t        |	j                  «      g d¢k(  sJ ‚t        t	        j                  |j                  |«      «      «      g d¢k(  sJ ‚t        t	        j                  |	j                  |«      «      «      h d	£k  sJ ‚t        g d
¢d¬«      j                  ||«      }	t        t	        j                  |	j                  |«      «      «      g d¢k(  sJ ‚t        ddddœ¬«      j                  ||«      }	t        t	        j                  |	j                  |«      «      «      ddgk(  sJ ‚y)zTest internally encode labelsr  rl   r   )rD   rÁ   rF   r&  ru   )ÚbarÚbazÚfoor1   F)ro   rs   >   r8  r9  r:  )r1   r2   r|   r2   )Úclass_weightr8  r9  N)r   r    r:   Úinverse_transformr7   rŸ   r   r   r   r¢   r=   Úsortedr<   r8   r;   Úset)
rD   rÁ   rF   r  rC   Úy_strrx   r  Úlr_strÚ	lr_cv_strs
             rI   Ú2test_multinomial_logistic_regression_string_inputsrB  \  sR  € à'/Ñ$€Iˆz˜9Ü"ØØØØØô�H€Eˆ1ô ‹N×ÑÒ4Ó5×GÑGÈÓJ€Eä
�‰�‹�a‰€Aä	Ó	€BÜ  A¸UÔC€EÜÓ!€FÜ$¨ÀÔG€Ià‡F�Fˆ5�!ÔØ	‡I�Iˆe�QÔØ
‡J�Jˆu�eÔØ‡M�M�%˜Ôä�B—H‘H˜fŸl™lÔ+Ü�B×$Ñ$ UÓ+¨V×-AÑ-AÀ%Ó-HÔIÜ�&—/‘/Ó"Ò&;Ò;Ð;Ð;Ü�E—K‘K §¡Ô1Ü�E×'Ñ'¨Ó.°	×0GÑ0GÈÓ0NÔOÜ�&—/‘/Ó"Ò&;Ò;Ð;Ð;Ü�)×$Ñ$Ó%Ò)>Ò>Ð>Ð>ô ”"—)‘)˜FŸN™N¨5Ó1Ó2Ó3Ò7LÒLÐLÐLäŒr�y‰y˜×*Ñ*¨5Ó1Ó2Ó3Ò7LÒLÐLÐLô %ª
È%ÔP×TÑTØˆuó€Iô ”"—)‘)˜I×-Ñ-¨eÓ4Ó5Ó6Ò:OÒOÐOÐOô #¸À!ÈAÑ0NÔO×SÑSØˆuó€Iô ”"—)‘)˜I×-Ñ-¨eÓ4Ó5Ó6¸5À%¸.ÒHÐHÑHrK   c                 ót  — t        dd| ¬«      \  }}d||dk  <    ||«      }t        d¬«      }|j                  ||«       t        d¬«      }|j                  ||«       t        |j                  |j                  «       t        |j
                  |j
                  «       |j                  |j                  k(  sJ ‚y )NrN   rÉ   ©rD   rÁ   ru   ró   r—   F©rs   )r   r   r:   r   r¢   r¡   rv   )r�   rL   rB   rC   ÚcsrrA   Úclfss          rI   Útest_logistic_cv_sparserH  �  sš   € äØ !Ð2Dô�D€A€qð €A€aˆ#�g�JÙ
˜Ó
€Cä
°UÔ
;€CØ‡G�GˆAˆq„MÜ°eÔ<€DØ‡H�HˆS�!ÔÜ˜dŸj™j¨#¯)©)Ô4Ü˜dŸo™o¨s¯~©~Ô>Ø�7‰7�c—f‘fÒÐÑrK   c           
      óL  — t         j                  t         j                  }}|j                  \  }}d}t	        |«      }t        |j                  ||«      «      }t        |dd¬«      }|j                  ||«       |j                  j                  d|fk(  sJ ‚t        |j                  g d¢«       t        j                  t        |j                  j                  «       «      «      }	|	j                  d|d|dz   fk(  sJ ‚|j                   j                  d	k(  sJ ‚t        j                  t        |j"                  j                  «       «      «      }
|
j                  d|dfk(  sJ ‚t%        t'        t)        d¬
«      «      dt        j*                  ddd¬«      i«      j                  ||«      }dD �]W  }|dv rdnd}t        ||d|dv rdndd| ¬«      }|dk(  rt-        |«      }|j                  ||«       |j/                  ||«      }|j/                  ||«      }||kD  sJ ‚|j                  j                  |j                  j                  k(  sJ ‚t        |j                  g d¢«       | �r�t        j                  t        |j                  j                  «       «      «      }	|	j                  d|d|dz   fk(  sJ ‚|j                   j                  d	k(  sJ ‚t        j                  t        |j"                  j                  «       «      «      }
|
j                  d|dfk(  sJ ‚t1        |j                  d   j                  d   «      D ]³  }|j                  D �cg c]  }|j                  |   |d d …d d…f   ‘Œ }}t        j2                  |dd«      j5                  t7        |j                   «      d«      }t        j8                  ||z  d¬«      }t        j:                  t        j<                  |«      dk\  «      rŒ³J ‚ �ŒJdddd|dz   f\  }}}}}|j                  j                  |||||fk(  sJ ‚t?        |j@                  tB        «      sJ ‚t?        |jD                  tB        «      sJ ‚|j"                  j                  |||fk(  sJ ‚t1        |j                  j                  d   «      D ]c  }|j                  |dd d …d d …d d…f   }t        j8                  ||z  d¬«      }t        j:                  t        j<                  |«      dk\  «      rŒcJ ‚ �ŒZ tG        d¬«      }t        jH                  |«      }t7        |«      dk(  sJ ‚|j                  ||«      D ]{  \  }}t7        t        jH                  ||   «      «      dk(  sJ ‚t7        t        jH                  ||   «      «      dk(  sJ ‚tK        ||   «      tK        ||   «      z  tK        «       k(  rŒ{J ‚ t        |d¬«      j                  ||«      }t        j:                  |j"                  dk(  «      sJ ‚tM        tN        dd d|¬!«      }t        ||t        j*                  d"dd«      d¬#«      j                  ||«      }|j@                  d$k(  sJ ‚|j"                   }t        j:                  |d%kD  «      sJ ‚t        jP                  |«      d&k  sJ ‚y c c}w )'Nr2   r-   T)rr   r€   rs   rl   ©r   r1   r2   r|   r1   )r|   r¨   Úestimator__Cr”   rm   )Únum©r*   r,   r.   r/   rà   éô  é   é*   rþ   rƒ   )r€   r�   ru   r…   rr   rs   r*   r   r0   r4   )r–   r0   ©Ún_splitsF)rr   rs   ró   r=   )Úgreater_is_betterÚresponse_methodÚscale_by_halfÚlabelsiúÿÿÿ)rr   rq   ro   rs   rå   çffffffæ?r[   ))rˆ   r‰   r‹   r9   r   r  Úsplitr   r:   r¢   r   r<   r7   r  r  r  r  r  r   r   r   rê   r"   rd   ÚrangeÚswapaxesÚreshaper6   r>   ÚallÚdiffr  rv   r  r  r   r8   r>  r   r   Úmin)rs   rB   rC   rD   rÁ   r  rr   Úprecomputed_foldsrA   r  r^   Úclf_ovrr€   r�   Ú	clf_multiÚmulti_scoreÚ	ovr_scoreÚfoldÚcrî   ÚnormsÚn_foldsÚn_csr  rF   Ún_dofrE   r0  r1  rq   Úbrier_scoress                                  rI   Útest_multinomial_cv_irisrk  ¡  s-  € ô �9‰9”d—k‘k€q€AØŸG™GÑ€Iˆzð €DÜ	˜Ó	€BÜ˜RŸX™X a¨›^Ó,Ðô ØÐ%6Èdô€Cð ‡G�GˆAˆq„Mð �9‰9�?‰?˜q *˜oÒ-Ð-Ð-Ü�s—|‘|¢YÔ/Ü—*‘*œT #×"2Ñ"2×"9Ñ"9Ó";Ó<Ó=€KØ×Ñ  D¨"¨j¸1©nÐ =Ò=Ð=Ð=Ø�7‰7�=‰=˜EÒ!Ð!Ð!Ü�Z‰Zœ˜SŸ[™[×/Ñ/Ó1Ó2Ó3€FØ�<‰<˜A˜t R˜=Ò(Ð(Ð(ô ÜÔ.Ð6GÔHÓIØ	œŸ™ R¨°Ô3Ð4ó÷ 
�cˆ!ˆQƒið ð 8ó ?3ˆØ  OÑ3‘3¸ˆÜ(ØØØØ /Ñ1‘°tØØ"7ô
ˆ	ð �WÒä�a“ˆAà�‰�a˜ÔØ—o‘o a¨Ó+ˆØ—M‘M ! QÓ'ˆ	Ø˜YÒ&Ð&Ð&ð �y‰y�‰ )§/¡/×"7Ñ"7Ò7Ð7Ð7Ü˜9×-Ñ-ªyÔ9Ú ÜŸ*™*¤T¨)×*@Ñ*@×*GÑ*GÓ*IÓ%JÓKˆKØ×$Ñ$¨¨D°"°jÀ1±nÐ(EÒEÐEÐEØ—=‘=×&Ñ&¨%Ò/Ð/Ð/Ü—Z‘Z¤ Y×%6Ñ%6×%=Ñ%=Ó%?Ó @ÓAˆFØ—<‘< A t¨R =Ò0Ð0Ð0ô ˜i×4Ñ4°QÑ7×=Ñ=¸aÑ@ÓAò 3�ð FO×EWÑEWöØ@A�I×*Ñ*¨1Ñ-¨d²A°s¸°s¨lÓ;ð�ð ô Ÿ™ E¨1¨aÓ0×8Ñ8¼¸Y¿]¹]Ó9KÈRÓP�ÜŸ™˜u u™}°1Ô5�Ü—v‘vœbŸg™g e›n°Ñ1Õ2Ð2Ð2ò3ð <=¸bÀ!ÀQÈ
ÐUVÉÐ;VÑ8ˆG�T˜;¨	°5Ø×)Ñ)×/Ñ/ØØØØØð4ò ð ð ô ˜iŸl™l¬EÔ2Ð2Ð2Ü˜i×1Ñ1´5Ô9Ð9Ð9Ø×$Ñ$×*Ñ*¨w¸ÀTÐ.JÒJÐJÐJô ˜i×4Ñ4×:Ñ:¸1Ñ=Ó>ò 3�ð
 "×.Ñ.¨t°Qºº1¸c¸r¸cÐ/AÑB�ÜŸ™˜u u™}°8Ô<�Ü—v‘vœbŸg™g e›n°Ñ1Õ2Ð2Ð2ò3ðq?3ôH 
˜Ô	€Bä�i‰i˜‹l€GÜˆw‹<˜1ÒÐÐØ—x‘x  1“~ò 5‰ˆˆtÜ”2—9‘9˜Q˜u™XÓ&Ó'¨1Ò,Ð,Ð,Ü”2—9‘9˜Q˜t™WÓ%Ó&¨!Ò+Ð+Ð+Ü�1�U‘8‹}œs 1 T¡7›|Ñ+¬s«uÓ4Ð4Ð4ð5ô
  "¸EÔ
B×
FÑ
FÀqÈ!Ó
L€Cô �6‰6�#—+‘+ Ñ$Ô%Ð%Ð%ô
 ÜØØ'ØØô€Gô Ø�w¤2§;¡;¨r°1°bÓ#9ÐQVôç	�cˆ!ˆQƒið ð �6‰6�TŠ>Ðˆ>Ø—K‘K�<€Lô �6‰6�, Ñ$Ô%Ð%Ð%ä�6‰6�,Ó #Ò%Ð%Ñ%ùòEs   Í Z!c                 óJ  — t        ddd| ¬«      \  }}t        dd| ¬«      }t        D �ci c]   }|t        dd|i|¤Žj	                  ||«      “Œ" }}t        j                  |d	¬
«      D ]5  \  }}t        ||   j                  ||   j                  ddd|› d|› �¬«       Œ7 yc c}w )z)Test solvers converge to the same result.r   r|   rÉ   )rD   rÁ   r&  ru   rZ   F)rP   rR   ru   r€   r2   ©Úrrþ   ç-Cëâ6?zCompare ú vs )rž   rœ   rã   Nrj   )	r   ÚdictÚSOLVERSr   r:   Ú	itertoolsÚcombinationsr   r¢   )r�   rB   rC   r2  r€   ÚclassifiersÚsolver_1Úsolver_2s           rI   Ú test_logistic_regression_solversrx  )  sÌ   € äØ "°AÐDVô�D€A€qô �C uÐ;MÔN€Fô öàð 	Ô"Ñ;¨&Ð;°FÑ;×?Ñ?ÀÀ1ÓEÑEð€Kð ô
 (×4Ñ4°[ÀAÔFò 
Ñˆ�(ÜØ˜Ñ!×'Ñ'Ø˜Ñ!×'Ñ'ØØØ˜x˜j¨¨X¨JÐ7ö	
ñ
ùòs   ©%B rR   c                 ó8  — t        ddddd¬«      \  }}d}t        | |d¬«      }d	d
d
dœ}t        t        «      t        dg«      z
  D �ci c]1  }|t	        d||j                  |d«      dœ|¤Žj                  ||«      “Œ3 }}t        j                  |d¬«      D ]|  \  }}	t        ||   j                  ||	   j                  |dk(  s|	dk(  rdnd|› d|	› �¬«       | sŒCt        ||   j                  ||	   j                  |dk(  s|	dk(  rdnd|› d|	› �¬«       Œ~ yc c}w )zATest solvers converge to the same result for multiclass problems.rü   r|   rl   r   ©rD   rÁ   r&  rF   ru   r˜   rP  )rR   r…   ru   r   é'  ©r*   r.   r/   r+   rN   ©r€   r�   r2   rm  r/   ç{®Gázt?rþ   rp  ©rœ   rã   Nrj   )r   rq  r>  rr  r   Úgetr:   rs  rt  r   r¢   r¡   )
rR   rB   rC   r…   r2  Úsolver_max_iterr€   ru  rv  rw  s
             rI   Ú+test_logistic_regression_solvers_multiclassr‚  C  sc  € ô ØØØØØô�D€A€qð €CÜ °3ÀRÔH€Fð !$¨F¸FÑC€Oô œ'“l¤S¨+¨Ó%7Ñ7ö	ð ð 	Ô"ð 
Ø O×$7Ñ$7¸ÀÓ$Dñ
ØHNñ
ç
‰#ˆa�‹)ñ	ð€Kð ô (×4Ñ4°[ÀAÔFò Ñˆ�(ÜØ˜Ñ!×'Ñ'Ø˜Ñ!×'Ñ'Ø" fÒ,°¸FÒ0B‘ÈØ�j  X JÐ/õ		
ò ÜØ˜HÑ%×0Ñ0Ø˜HÑ%×0Ñ0Ø&¨&Ò0°HÀÒ4F‘TÈTØ#˜* D¨¨
Ð3ö	ñùòs   Á6Dc                 óÖ  — d\  }}}t         j                  j                  |«      }t        ||| z   || z   d|¬«      }| r	d|dd…df<   t	        |«      \  }}}	t        j
                  |dkD  «      sJ ‚t        j                  |«      t        j                  |«      z  dk  sJ ‚| r|dd…dd…f   }|j                  dd	||z  ¬
«      }
|
j                  ||«      }
|j                  dd|¬
«      | z  }||
j                  z  |z   }t        |¬«      }|j                  j                  |«      }t        j                  |«      }t        |«      D ]5  }t        j                   |j#                  d||dd…f   ¬«      «      d   ||<   Œ7 d}t%        | |¬«      }ddddœ}dddœ}t'        t(        «      t'        dg«      z
  D �ci c]Q  }|t+        d"t         j,                  ||j/                  ||«      |j/                  |d«      dœ|¤Žj1                  ||«      “ŒS }}|j3                  «       D ].  }t5        ||   j6                  j9                  d¬«      dd|¬«       Œ0 t;        j<                  |d¬«      D ]|  \  }}t5        ||   j6                  ||   j6                  |dk(  s|dk(  rdnd|› d |› �¬!«       | sŒCt5        ||   j>                  ||   j>                  |dk(  s|dk(  rdnd|› d |› �¬!«       Œ~ yc c}w )#zGTest and compare solver results for unpenalized multinomial multiclass.)rN   rm   rl   rZ   )rD   rÁ   Úeffective_rankÚtail_strengthru   r1   Nr0   rþ   rN   rl   )ÚlowÚhighÚsize)rF   )ÚnÚpvals)r   r   g•Ö&è.>)rR   ru   r   r{  r|  r˜   rà   r+   )rP   r€   r…   r�   r   r4   ç»½×Ùß|Û=)rž   rã   r2   rm  r/   r~  gü©ñÒMb`?rp  r  rj   ) r7   rË   rÌ   r   r   r\  Úmaxr^  Úuniformr[  r    r
   ÚlinkÚinverseÚzerosrY  ÚargwhereÚmultinomialrq  r>  rr  r   r³   r€  r:   Úkeysr   r¢   r>   rs  rt  r¡   )rR   r�   rD   rÁ   rF   rÎ   rB   ÚUÚsÚVtÚcoefÚ	interceptÚraw_predictionÚlossÚprobarC   rï   r…   r2  r�  Ú
solver_tolr€   Ú
regressorsrv  rw  s                            rI   Ú7test_logistic_regression_solvers_multiclass_unpenalizedrž  k  s  € ð (1Ñ$€Iˆz˜9Ü
�)‰)×
Ñ
Ð 2Ó
3€CÜØØ Ñ-Ø! MÑ1ØØô	€Añ ØˆŠ!ˆRˆ%‰Ü�1‹v�H€A€qˆ"Ü�6‰6�!�d‘(ÔÐÐÜ�6‰6�!‹9”r—v‘v˜a“yÑ  3Ò&Ð&Ð&ÙØŠa��"�ˆf‰IˆØ�;‰;˜1 1¨:¸	Ñ+Aˆ;ÓB€DØ�<‰<˜	 :Ó.€DØ—‘ ¨°�Ó;¸mÑK€IØ˜Ÿ™‘Z )Ñ+€Nä¨Ô3€DØ�I‰I×Ñ˜nÓ-€Eä
�‰�Ó€AÜ�9Óò JˆÜ�{‰{˜3Ÿ?™?¨Q°e¸Aºq¸D±k˜?ÓBÓCÀDÑIˆˆ!ŠðJð €CÜ Ð<NÔO€FØ #¨F¸FÑC€OØ tÑ,€Jô œ'“l¤S¨+¨Ó%7Ñ7ö	ð ð 	Ô"ð 
Ü�f‰fØØ—‘˜v sÓ+Ø$×(Ñ(¨°Ó5ñ	
ð
 ñ
÷ ‰#ˆa�‹)ñ	ð	€Jð 	ð —/‘/Ó#ò 
ˆäØ�vÑ×$Ñ$×(Ñ(¨aÐ(Ó0°!¸%Èö	
ð
ô (×4Ñ4°ZÀ1ÔEò Ñˆ�(ÜØ�xÑ ×&Ñ&Ø�xÑ ×&Ñ&Ø" fÒ,°¸FÒ0B‘ÈØ�j  X JÐ/õ		
ò ÜØ˜8Ñ$×/Ñ/Ø˜8Ñ$×/Ñ/Ø&¨&Ò0°HÀÒ4F‘TÈTØ#˜* D¨¨
Ð3ö	ñùò!	s   Æ6AK&ÚweightrZ   gš™™™™™É?rÙ   r\   rJ  r;  Úbalancedc           	      óþ  — t        | «      }|dk(  r| }t        ddddd||¬«      \  }}t        dd|dd¬	«      }t        dd
di|¤Ž}t	        t
        ¬«      5  |j                  ||«       ddd«       t        t        «      t        g d¢«      z
  D ]b  }t        dd
|i|¤Ž}	|dv r|	j                  dd|dz   ¬«       |	j                  ||«       t        |	j                  |j                  d|› d�¬«       Œd y# 1 sw Y   ŒŒxY w)z+Test class_weight for LogisticRegressionCV.rŸ  rO  rl   r   )rD   rÁ   Ú
n_repeatedr&  Ún_redundantrF   ru   r1   Fr˜   )ro   rR   r;  r…   rs   r€   r*   ©ÚcategoryN)r*   r+   r-   rà   g¬CÒÑ]r2<r{  )r…   r�   ru   rþ   z	 vs lbfgsr  rj   )r6   r   rq  r   r&   r   r:   r>  rr  r�   r   r¢   )
rŸ  r;  r�   rF   rB   rC   r2  Ú	clf_lbfgsr€   rA   s
             rI   Ú(test_logistic_regressioncv_class_weightsr§  ±  s!  € ô �F“€IØ�xÒØˆäØØØØØØØ'ô�D€A€qô ØØØ!ØØ#ô€Fô %Ñ>¨GÐ>°vÑ>€Iô 
Ô"4Ô	5ñ Ø�‰�a˜Ô÷ô ”g“,¤Ò%NÓ!OÑOò 

ˆÜ"Ñ;¨&Ð;°FÑ;ˆØ�_Ñ$Ø�N‰NØ EÐ8JÈQÑ8Nð ô ð 	�‰��1ŒäØ�I‰I�y—‘¨T¸f¸XÀYÐ;Oö	
ñ

÷ð ús   ÁC3Ã3C<Úproblem)Úsinglerr   c                 óâ  — d}d}t        ||z  dddd|¬«      \  }}t        j                  j                  |«      }t        j                  |j
                  d   «      }|d|j                  d«      rd	nd
ddœ}	|	j                  «       }
|j                  dd|¬«      |d | t        j                  ||j                  t        «      d¬«      }t        j                  ||j                  t        «      d¬«      }| dk(  rt        }nú| dk(  rõt        }t        j                  t        j                  |d«      t        j                  |d«      t        j                  |d«      g«      }t!        t#        «       j%                  ||¬«      «      }|	j'                  d|dœ«       t        j                  ||j                  t        «      d¬«      }t!        t#        «       j%                  ||¬«      «      }|
j'                  d|dœ«        dd|i|	¤Ž} |dd|i|
¤Ž}|dk(  r^t)        j*                  «       5  t)        j,                  dt.        «       |j1                  |||¬«       |j1                  ||«       d d d «       n&|j1                  |||¬«       |j1                  ||«       | dk(  r&t3        |j4                  d   |j4                  d   «       t3        |j6                  |j6                  d¬«       y # 1 sw Y   ŒWxY w)Nr   rl   rÉ   r2   r   )rD   rÁ   r&  rF   r£  ru   Fr.   é † rá   r˜   ©ru   rR   r�   r…   ©rˆ  r4   r©  rr   r1   )ÚgroupsrN   )ro   rr   r€   r*   Úignore©rc   rš   ©rž   rj   )r   r7   rË   rÌ   r?   r9   Ú
startswithÚcopyÚrandintÚrepeatÚastypeÚintr   r   rè   Úfullr  r   rX  ÚupdateÚwarningsÚcatch_warningsÚsimplefilterr   r:   r   r  r¢   )r¨  r€   r�   Ún_samples_per_cv_groupÚn_cv_groupsrB   rC   rÎ   ÚswÚkw_weightedÚkw_repeatedÚ
X_repeatedÚ
y_repeatedr¥   Úgroups_weightedÚsplits_weightedÚgroups_repeatedÚsplits_repeatedÚclf_sw_weightedÚclf_sw_repeateds                       rI   Ú'test_logistic_regression_sample_weightsrÊ  ã  s²  € ð !ÐØ€KäØ(¨;Ñ6ØØØØØ'ô�D€A€qô �)‰)×
Ñ
Ð 2Ó
3€CÜ	�‰�—‘˜‘Ó	€Bð +ØØ%×0Ñ0°Ô7‘G¸UØñ	€Kð ×"Ñ"Ó$€KØ"%§+¡+¨a°Ð9O +Ó"P€BÐÐÐÜ—‘˜1˜bŸi™i¬›n°1Ô5€JÜ—‘˜1˜bŸi™i¬›n°1Ô5€Jà�(ÒÜ‰Ø	�DŠÜ!ˆäŸ.™.ä—‘Ð.°Ó2Ü—‘Ð.°Ó2Ü—‘Ð.°Ó2ðó
ˆô Ô/Ó1×7Ñ7¸À/Ð7ÓRÓSˆØ×Ñ #¨_Ñ=Ô>äŸ)™) O°R·Y±Y¼s³^È!ÔLˆÜÜÓ×$Ñ$ Z¸Ð$ÓHó
ˆð 	×Ñ #¨_Ñ=Ô>áÑ6 Ð6¨+Ñ6€OÙÑ6 Ð6¨+Ñ6€Oà�Òô ×$Ñ$Ó&ñ 	8Ü×!Ñ! (Ô,>Ô?Ø×Ñ  1°BÐÔ7Ø×Ñ 
¨JÔ7÷	8ð 	8ð 	×Ñ˜A˜q°ÐÔ3Ø×Ñ˜J¨
Ô3à�$‚Ü˜×/Ñ/°Ñ2°O×4KÑ4KÈAÑ4NÔOÜ�O×)Ñ)¨?×+@Ñ+@ÀtÖL÷	8ð 	8ús   È'AK%Ë%K.r­   c                 ó  — t        dddd|¬«      \  }}|dz   }|ddd	d
œ}t        d| dddœdœ|¤Ž}|j                  ||«       t        dd| i|¤Ž}|j                  |||¬«       t        |j                  |j                  d¬«       y )Nr™   rÉ   rl   r2   rz  r1   Fr«  r˜   r¬  rÙ   )r€   r;  r€   r°  rå   r±  rj   ©r   r   r:   r   r¢   )r€   r�   rB   rC   rc   rÀ  Ú	clf_cw_12Ú	clf_sw_12s           rI   Ú-test_logistic_regression_solver_class_weightsrÏ  +  s«   € ô ØØØØØ'ô�D€A€qð ˜‘E€Mð +ØØØñ	€Kô #ð Ø¨¨a¡LñØ4?ñ€Ið ‡M�M�!�QÔÜ"Ñ@¨&Ð@°KÑ@€IØ‡M�M�!�Q m€MÔ4Ü�I—O‘O Y§_¡_¸4Ö@rK   c           
      óì  — t        dddd| ¬«      \  }}|dz   }t        ddddd	œdd
d| ¬«      }|j                  ||«       t        dddd
d| ¬«      }|j                  |||«       t        |j                  |j                  d¬«       t        ddddd	œdd
dd| ¬«      }|j                  ||«       t        dddd
dd| ¬«      }|j                  |||«       t        |j                  |j                  d¬«       y )Nr™   rÉ   rl   r2   rz  r1   r+   FrÙ   r{  çê-�™—q=)r€   rR   r;  r«   r�   r…   ru   )r€   rR   r«   r�   r…   ru   r‹  r±  r   T)r€   rR   r;  r«   r�   r…   r®   ru   )r€   rR   r«   r�   r…   r®   ru   rÌ  )r�   rB   rC   rc   Úclf_cwÚclf_sws         rI   Ú2test_sample_and_class_weight_equivalence_liblinearrÔ  L  s  € ô ØØØØØ'ô�D€A€qð ˜‘E€MäØØØ˜q‘\ØØØØ'ô€Fð ‡J�Jˆq�!ÔÜØØØØØØ'ô€Fð ‡J�Jˆq�!�]Ô#Ü�F—L‘L &§,¡,°UÕ;äØØØ˜q‘\ØØØØØ'ô	€Fð ‡J�Jˆq�!ÔÜØØØØØØØ'ô€Fð ‡J�Jˆq�!�]Ô#Ü�F—L‘L &§,¡,°UÖ;rK   c                 óv   — t        j                  | «      }t        d|| ¬«      }t        t	        ||«      «      }|S )Nr   )rE   rC   )r7   r8   r$   rq  Úzip)rC   rE   r;  Úclass_weight_dicts       rI   Ú _compute_class_weight_dictionaryrØ  ‡  s5   € ä�i‰i˜‹l€GÜ'¨
¸GÀqÔI€LÜœS ¨,Ó7Ó8ÐØÐrK   c                 ó   — | S rf   rj   )Úxs    rI   ú<lambda>rÛ  �  s   € °Q€ rK   c                 ó>  — t        t        j                  «      }|dd …d d …f   } ||«      }t        j                  dd  }t	        |«      }t        t        «      t        ddg«      z
  D �]  }t        |d| ¬«      }t        dddi|¤Ž}t        dd|i|¤Ž}	|j                  ||«       |	j                  ||«       t        |j                  «      dk(  sJ ‚t        |j                  |	j                  d	¬
«       t        j                  |j                   d   «      }
|j                  D ]  }|
||k(  xx   ||   z  cc<   Œ t        di |¤Žj                  |||
¬«      }t        |j                  |	j                  d	¬
«       �Œ |dd…d d …f   }t        j                  dd }t	        |«      }t        D ]p  }t        |d| ¬«      }t        dddi|¤Ž}t        dd|i|¤Ž}	|j                  ||«       |	j                  ||«       t#        |j                  |	j                  d¬«       Œr y )Né-   r+   r-   éÐ  )r€   r�   ru   r;  r   rl   ro  r›   r   r°  rN   rá   r%  ©râ   rj   )r"   rˆ   r‰   r‹   rØ  r>  rr  rq  r   r:   r6   r<   r   r¢   r7   r?   r9   r   )r�   rL   ÚX_irisrB   rC   r×  r€   r2  Úclf1Úclf2r¿  re  Úclf3s                rI   Ú&test_logistic_regression_class_weightsrä  �  sø  € ô ”4—9‘9Ó€Fàˆr‰s’Aˆv‰€AÙ�aÓ€AÜ�‰�B�CÐ€AÜ8¸Ó;Ðä”g“,¤ kÐ3DÐ%EÓ!FÑFó ;ˆÜ˜V¨dÐASÔTˆÜ!ÑD¨zÐD¸VÑDˆÜ!ÑKÐ/@ÐKÀFÑKˆØ�‰��AŒØ�‰��AŒÜ�4—=‘=Ó! QÒ&Ð&Ð&Ü˜Ÿ
™
 D§J¡J°TÕ:ä�W‰W�Q—W‘W˜Q‘ZÓ ˆØ—‘ò 	/ˆAØˆq�A‰v‹JÐ+¨AÑ.Ñ.ŒJð	/ä!Ñ+ FÑ+×/Ñ/°°1ÀBÐ/ÓGˆÜ˜Ÿ
™
 D§J¡J°T×:ð;ð  	ˆr�#ˆv’qˆyÑ€AÜ�‰�B�sÐ€AÜ8¸Ó;Ðäò EˆÜ˜V¨dÐASÔTˆä!ÑD¨zÐD¸VÑDˆÜ!ÑKÐ/@ÐKÀFÑKˆØ�‰��AŒØ�‰��AŒÜ! $§*¡*¨d¯j©jÀ!ÖDñErK   c           	      ó  — d\  }}}t        ||d|| ¬«      \  }}t        d¬«      j                  |«      }t        d¬«      }t        dd¬«      }|j	                  ||«       |j	                  ||«       |j
                  j                  ||fk(  sJ ‚|j
                  j                  ||fk(  sJ ‚d	D ]å  }t        || d
d¬«      }	t        || d
dd¬«      }
|	j	                  ||«       |
j	                  ||«       |	j
                  j                  ||fk(  sJ ‚|
j
                  j                  ||fk(  sJ ‚t        |j
                  |	j
                  d¬«       t        |j
                  |
j
                  d¬«       t        |j                  |	j                  d¬«       Œç dD ]j  }t        || d
ddgd¬«      }|j	                  ||«       t        |j
                  |j
                  d¬«       t        |j                  |j                  d¬«       Œl y )N)r   rü   rl   r|   rz  F)Ú	with_meanr‹  )r…   )rR   r…   )r.   r/   r,   rÞ  ©r€   ru   r�   r…   )r€   ru   r�   r…   rR   gú~j¼t“h?r›   rƒ   rþ   rM  r—   )r€   ru   r�   r…   ro   rs   )
r   r!   Úfit_transformr   r:   r¢   r9   r   r¡   r   )r�   rD   rÁ   rF   rB   rC   Úref_iÚref_wr€   Úclf_iÚclf_wÚclf_paths               rI   Ú$test_logistic_regression_multinomialrî  ·  s÷  € ð (2Ñ$€Iˆz˜9ÜØØØØØ'ô�D€A€qô 	 Ô'×5Ñ5°aÓ8€Aô  5Ô)€EÜ¨U¸Ô>€EØ	‡I�Iˆa�„OØ	‡I�Iˆa�„OØ�;‰;×Ñ ¨JÐ 7Ò7Ð7Ð7Ø�;‰;×Ñ ¨JÐ 7Ò7Ð7Ð7Ø.ò GˆÜ"ØØ+ØØô	
ˆô #ØØ+ØØØô
ˆð 	�	‰	�!�QŒØ�	‰	�!�QŒØ�{‰{× Ñ  Y°
Ð$;Ò;Ð;Ð;Ø�{‰{× Ñ  Y°
Ð$;Ò;Ð;Ð;ô 	˜Ÿ™ U§[¡[°tÕ<Ü˜Ÿ™ U§[¡[°tÕ<Ü˜×(Ñ(¨%×*:Ñ*:ÀÖFð-Gð6 8ò JˆÜ'ØØ+ØØØˆuØ"'ô
ˆð 	�‰�Q˜ÔÜ˜Ÿ™¨¯©¸$Õ?Ü˜×+Ñ+¨U×-=Ñ-=ÀDÖIñJrK   c                 óì   — t        dd| ¬«      \  }}t        dd| ¬«      }|j                  ||«       t        j                  d«      }t        |j                  |«      t        j                  d«      «       y )NrÉ   rD  Fr+   )rR   r€   ru   )rÉ   rÉ   )r   r   r:   r7   r�  r   r;   )r�   rB   rC   rA   s       rI   Ú%test_liblinear_decision_function_zerorð  ö  sg   € ô Ø Ð0Bô�D€A€qô Ø KÐ>Pô€Cð ‡G�GˆAˆq„Mô 	�‰�Ó€AÜ�s—{‘{ 1“~¤r§x¡x°£{Õ3rK   c                 óp   — t        dd|¬«      \  }}t        dd¬«      }|j                   | |«      |«       y )Nr|   rÉ   rD  r+   F)r€   rs   ©r   r   r:   ©rL   r�   rB   rC   rA   s        rI   Útest_liblinear_logregcv_sparserô  	  s;   € ô Ø Ð1Cô�D€A€qô  kÈÔ
O€CØ‡G�G‰M˜!Ó˜aÕ rK   c                 ót   — t        dd|¬«      \  }}t        dd|d¬«      }|j                   | |«      |«       y )Nr|   rÉ   rD  r/   rƒ   F)r€   r…   ru   rs   rò  ró  s        rI   Útest_saga_sparserö    sG   € ô Ø Ð1Cô�D€A€qô ØØØ'Ø#ô	€Cð ‡G�G‰M˜!Ó˜aÕ rK   c                  ór   — t        d¬«      } | j                  t        t        «       | j                  dk(  sJ ‚y )NFrQ   ró   )r   r:   rB   rS   r¡   rÔ   s    rI   Ú"test_logreg_intercept_scaling_zerorø  $  s-   € ô ¨5Ô
1€CØ‡G�GŒAŒr„NØ�>‰>˜SÒ Ð Ñ rK   c           	      óÈ  — t         j                  j                  | «      }d}t        |d| ¬«      \  }}|j	                  |df¬«      }t        j
                  |df¬«      }t        j                  |||fd¬	«      }t        dd
dddd| ¬«      }|j                  ||«       t        dd
dddd| ¬«      }|j                  ||«       t        |j                  |j                  d¬«       y )NrN   rü   rD  rl   r­  r2   ©r9   r1   r4   r—   r+   Fr{  r‹  ©r«   rP   r€   rR   r�   r…   ru   r/   g333333Ó?r±  )r7   rË   rÌ   r   Únormalr?   rè   r   r:   r   r¢   )	r�   rÎ   rD   rB   rC   ÚX_noiseÚ
X_constantÚlr_liblinearÚlr_sagas	            rI   Útest_logreg_l1r  ,  sé   € ô �)‰)×
Ñ
Ð 2Ó
3€CØ€IÜØ¨Ð9Kô�D€A€qð �j‰j˜y¨!˜nˆjÓ-€GÜ—‘ 	¨1˜~Ô.€JÜ
�‰˜˜7 JÐ/°aÔ8€AÜ%ØØ
ØØØØØ'ô€Lð ×Ñ�Q˜Ôä ØØ
ØØØØØ'ô€Gð ‡K�K��1Ôä�G—M‘M <×#5Ñ#5¸CÖ@rK   c           	      óJ  — t         j                  j                  | «      }d}t        |d| ¬«      \  }}|j	                  d|df¬«      }t        j
                  |df¬«      }t        j                  |||fd	¬
«      }d||d	k  <    ||«      }t        d	ddddd| ¬«      }|j                  ||«       t        d	ddddd| ¬«      }	|	j                  ||«       t        |	j                  |j                  «       t        |j                  ddd …f   t        j
                  d«      «       t        |	j                  ddd …f   t        j
                  d«      «       t        d	ddddd| ¬«      }
|
j                  |j                  «       |«       t        |	j                  |
j                  «       y )Nr  rü   rD  rZ   rl   )r"   rˆ  r2   rú  r1   r4   r   r—   r+   Fr‹  r{  )r«   rP   r€   rR   r…   r�   ru   r/   rû  éûÿÿÿrÉ   )r7   rË   rÌ   r   rü  r�  rè   r   r:   r   r¢   Útoarray)r�   rL   rÎ   rD   rB   rC   rý  rþ  rÿ  r   Úlr_saga_denses              rI   Útest_logreg_l1_sparse_datar  Q  s“  € ô
 �)‰)×
Ñ
Ð 2Ó
3€CØ€IÜØ¨Ð9Kô�D€A€qð �j‰j˜s¨)°Q¨ˆjÓ8€GÜ—‘ ¨A Ô/€JÜ
�‰˜˜7 JÐ/°aÔ8€AØ€A€aˆ!�e�HÙ�aÓ€Aä%ØØ
ØØØØØ'ô€Lð ×Ñ�Q˜Ôä ØØ
ØØØØØ'ô€Gð ‡K�K��1ÔÜ˜gŸm™m¨\×-?Ñ-?Ô@ô ˜l×0Ñ0°°B±C°Ñ8¼"¿(¹(À1»+ÔFÜ˜gŸm™m¨A¨r©s¨FÑ3´R·X±X¸a³[ÔAô 'ØØ
ØØØØØ'ô€Mð ×Ñ�a—i‘i“k 1Ô%Ü˜gŸm™m¨]×-@Ñ-@ÕArK   c                 ó  — t        dd| ¬«      \  }}t        d| dd¬«      }t        ddg|fd	d
dœ|¤Ž}|j                  ||«       t	        dd|dœ|¤Ž}|j                  ||«       t        |j                  |j                  «       y )NrN   rü   rD  r/   r{  rÑ  rç  r—   TF)ro   rp   Úrefitrs   ©rP   r«   rj   )r   rq  r   r:   r   r   r¢   )r�   r«   rB   rC   Úcommon_paramsr  rx   s          rI   Ú!test_logistic_regression_cv_refitr  Š  sŸ   € ô Ø "Ð3Eô�D€A€qô ØØ'ØØô	€Mô !ð Øˆ5Ø�+ØØ#ñ	ð
 ñ€Eð 
‡I�Iˆa�„OÜ	Ð	F˜c¨HÑ	F¸Ñ	F€BØ‡F�Fˆ1ˆa„LÜ˜eŸk™k¨2¯8©8Õ4rK   c                 ó   — t        dd| dd¬«      \  }}t        «       }|j                  ||«       t        ||j	                  |«      «      }t        t        «       «      }|j                  ||«       t        ||j	                  |«      «      }||kD  sJ ‚t        ||j	                  |«      «      }t        ||j                  |«      «      }||kD  sJ ‚y )Nr|   rü   rl   )rD   rÁ   ru   rF   r&  )r   r   r:   r   r=   r   Ú_predict_proba_lr)r�   rB   rC   ra  Úclf_multi_lossr`  Úclf_ovr_lossÚclf_wrong_losss           rI   Ú%test_logreg_predict_proba_multinomialr  ª  sÍ   € ÜØØØ'ØØô�D€A€qô #Ó$€IØ‡M�M�!�QÔÜ˜a ×!8Ñ!8¸Ó!;Ó<€NÜ!Ô"4Ó"6Ó7€GØ‡K�K��1ÔÜ˜A˜w×4Ñ4°QÓ7Ó8€LØ˜.Ò(Ð(Ð(ô ˜a ×!8Ñ!8¸Ó!;Ó<€NÜ˜a ×!<Ñ!<¸QÓ!?Ó@€NØ˜NÒ*Ð*Ñ*rK   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.)r.   ú?The max_iter was reached which means the coef_ did not converge)r/   r  )r*   úlbfgs failed to converge)r-   z6Newton solver did not converge after [0-9]* iterationsc                 óx  — t         j                  t         j                  j                  «       }}d||dk(  <   |dk(  r|dkD  rt	        j
                  d«       t        |d| |¬«      }t	        j                  t        |¬«      5  |j                  ||«       d d d «       |j                  d   |k(  sJ ‚y # 1 sw Y   ŒxY w)	Nr   r2   r-   r1   z/solver newton-cholesky might converge very fastgVçž¯Ò<)r�   r…   ru   r€   r©   )rˆ   r‰   r‹   r³  r°   Úskipr   rõ   r   r:   Ún_iter_)r�   r�   r€   rö   rB   Úy_binrx   s          rI   Útest_max_iterr  Ä  sª   € ô( �y‰yœ$Ÿ+™+×*Ñ*Ó,€u€AØ€Eˆ%�1‰*ÑàÐ"Ò" x°!¢|Ü�‰ÐEÔFä	ØØØ'Øô	
€Bô 
�‰Ô(°Ô	8ñ Ø
�‰ˆq�%Ô÷ð �:‰:�a‰=˜HÒ$Ð$Ñ$÷ð ús   Â B0Â0B9c           	      ó8  — t         j                  t         j                  }}| dk(  rt        |«      }t	        j
                  |«      j                  d   }|dk(  sJ ‚|j                  «       }d||dk(  <   d}d}d}t        dd| d	¬
«      }	|	j                  ||«       |	j                  j                  dk(  sJ ‚t        d| |d|d	|¬«      }
|
j                  ||«       |r|
j                  j                  d|||fk(  s J ‚|
j                  j                  |||fk(  sJ ‚| dv ry |	j                  ||«       |	j                  j                  dk(  sJ ‚|
j                  ||«       |r |
j                  j                  d|||fk(  sJ ‚y |
j                  j                  |||fk(  sJ ‚y )Nr*   r   rl   r2   rm   r1   rƒ   r—   rP  )r…   rP   r€   ru   r¬   r  )r…   r€   ro   rp   rr   ru   rs   r§   )rˆ   r‰   r‹   r"   r7   r8   r9   r³  r   r:   r  r   )r€   rs   rB   rC   rF   r  r  Ú	n_cv_foldr  rA   Úclf_cvs              rI   Útest_n_iterr  ê  s£  € ô �9‰9”d—k‘k€q€AØ�Òä�!‹Hˆä—	‘	˜!“×"Ñ" 1Ñ%€IØ˜Š>Ðˆ>ð �F‰F‹H€EØ€Eˆ%�1‰*Ñà€DØ€IØ€Kô  ¨°VÈ"Ô
M€CØ‡G�GˆAˆuÔØ�;‰;×Ñ Ò$Ð$Ð$ä!ØØØØØØØ3ô€Fð ‡J�Jˆq�%ÔÙØ�~‰~×#Ñ#¨¨9°d¸KÐ'HÒHÐHÐHà�~‰~×#Ñ#¨	°;ÀÐ'EÒEÐEÐEð �Ñàð ‡G�GˆAˆq„MØ�;‰;×Ñ Ò$Ð$Ð$à
‡J�Jˆq�!ÔÙØ�~‰~×#Ñ#¨¨9°d¸KÐ'HÒHÐHÑHà�~‰~×#Ñ#¨	°;ÀÐ'EÒEÐEÑErK   r*  )TFc                 óÒ  — t         j                  t         j                  }}t        d||| |¬«      }t	        t
        ¬«      5  |j                  ||«       |j                  }d|_        |j                  ||«       d d d «       t        j                  t        j                  |j                  z
  «      «      }d|› d|›d|›�}	|rd|kD  sJ |	«       ‚y |dkD  sJ |	«       ‚y # 1 sw Y   ŒexY w)	Nro  )r…   r*  r€   ru   rR   r¤  r1   z Warm starting issue with solver zwith fit_intercept=z and warm_start=ç       @)rˆ   r‰   r‹   r   r&   r   r:   r¢   r�   r7   r>   Úabs)
r�   r€   r*  rR   rB   rC   rA   Úcoef_1Úcum_diffr´   s
             rI   Útest_warm_startr"  #  sá   € ô �9‰9”d—k‘k€q€Aä
ØØØØ'Ø#ô€Cô 
Ô"4Ô	5ñ Ø�‰��1ŒØ—‘ˆàˆŒØ�‰��1Œ÷ô �v‰v”b—f‘f˜V c§i¡iÑ/Ó0Ó1€Hà
*¨6¨(Ø
�ÐÐ0 Z Mð	3ð ñ Ø�XŠ~Ð"˜sÓ"‰~à˜#Š~Ð"˜sÓ"‰~÷ð ús   Á8CÃC&rP   c                 ó  — t         j                  t         j                  }}t        |d||| ¬«      }t	        t
        ¬«      5  |j                  ||«       ddd«       t        |dd||| ¬«      }t	        t
        ¬«      5  |j                  ||«       |j                  ||«       ddd«       t        |j                  |j                  «       |r!t        |j                  |j                  «       yy# 1 sw Y   Œ›xY w# 1 sw Y   ŒYxY w)zITest that 2 steps at once are the same as 2 single steps with warm start.r2   )r€   r�   rR   rP   ru   r¤  Nr1   T)r€   r�   r*  rR   rP   ru   )
rˆ   r‰   r‹   r   r&   r   r:   r   r¢   r¡   )r�   r€   rR   rP   rB   rC   rá  râ  s           rI   Útest_warm_start_newton_solverr$  D  sá   € ô
 �9‰9”d—k‘k€q€AäØØØ#Ø
Ø'ô€Dô 
Ô"4Ô	5ñ Ø�‰��AŒ÷ô ØØØØ#Ø
Ø'ô€Dô 
Ô"4Ô	5ñ Ø�‰��AŒØ�‰��AŒ÷ô �D—J‘J §
¡
Ô+ÙÜ˜Ÿ™¨¯©Õ9ð ÷!ð ú÷ð ús   ÁC.Á=%C:Ã.C7Ã:Dc                 ój  — t        «       }|j                  |j                  }}t        j                  |gdz  «      }t        j                  |gdz  «      }||dk     }||dk     dz  dz
  }t        dd| ¬«      \  }}	 ||«      }||f||	ffD ]¥  \  }}|j                  d   }
t        j                  ddd«      D ]w  }t        d	|
|z  z  |d
dd| d¬«      }t        d	|
|z  z  |ddd| d¬«      }|j                  ||«       |j                  ||«       t        |j                  |j                  d«       Œy Œ§ y )Nrl   r1   r2   r  rü   rD  r   r0   r—   r/   rN  Frå   )rP   r«   r€   r�   rR   ru   r…   r+   )r   r‰   r‹   r7   rè   r   r9   rê   r   r:   r   r¢   )r�   rL   r«   rˆ   rB   rC   ÚX_binr  ÚX_sparseÚy_sparserD   Úalphar/   r+   s                 rI   Útest_saga_vs_liblinearr*  f  s]  € ô ‹;€DØ�9‰9�d—k‘k€q€AÜ
�‰˜�s˜Q‘wÓ€AÜ
�‰˜�s˜Q‘wÓ€Aàˆa�1‰f‰I€EØˆa�1‰f‰I˜‰M˜AÑ€Eä,Ø Ð2DôÑ€Hˆhñ ˜XÓ&€Hà˜� (¨HÐ!5Ð6ò F‰ˆˆ1Ø—G‘G˜A‘Jˆ	ä—[‘[  Q¨Ó*ò 	FˆEÜ%Ø˜ UÑ*Ñ+Ø!ØØØ#Ø/ØôˆDô +Ø˜ UÑ*Ñ+Ø!Ø"ØØ#Ø/ØôˆIð �H‰H�Q˜ŒNØ�M‰M˜!˜QÔä% d§j¡j°)·/±/À1ÕEñ1	FñFrK   )r+   r,   r-   r/   c                 óà  — | dk(  rt         j                  nt         j                  }t        j                  t        «      j                  t         j                  «      }t        j                  t        «      j                  t         j                  «      }t        j                  t        «      j                  t         j                  «      }t        j                  t        «      j                  t         j                  «      } |t        t         j                  ¬«      } |t        t         j                  ¬«      }	d}
t        | d|
|¬«      }t        |«      }|j                  ||«       |j                  j                  |k(  sJ ‚t        |«      }|j                  ||«       |j                  j                  |k(  sJ ‚t        |«      }|j                  ||«       |j                  j                  t         j                  k(  sJ ‚t        |«      }|j                  |	|«       |j                  j                  t         j                  k(  sJ ‚d|
z  }t        j                  dk(  rt        rd}t        |j                  |j                  j                  t         j                  «      |¬	«       | d
k(  r|rd}t        |j                  |j                  |¬	«       t        |j                  |j                  |¬	«       y )Nr+   r×   gü©ñÒMb@?rP  )r€   ru   r…   rR   g…ëQ¸…@Úntrƒ   r±  r/   rZ   )r7   rÚ   Úfloat32rŸ   rB   r¶  rS   r   r   r:   r¢   rØ   ÚosÚnamer'   r   )r€   rR   rL   Ú
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                    rI   Útest_dtype_matchr<  ”  s  € ð  &¨Ò4”—’¼"¿*¹*€Jä�8‰8”A‹;×ÑœbŸj™jÓ)€DÜ�8‰8”B‹<×ÑœrŸz™zÓ*€DÜ�8‰8”A‹;×ÑœbŸj™jÓ)€DÜ�8‰8”B‹<×ÑœrŸz™zÓ*€DÙ¤¬¯©Ô4€KÙ¤¬¯©Ô4€KØ€Jä!ØØØØ#ô	€Hô �(‹O€EØ	‡I�Iˆd�DÔØ�;‰;×Ñ 
Ò*Ð*Ð*ô ˜“?€LØ×Ñ�[ $Ô'Ø×Ñ×#Ñ# zÒ1Ð1Ð1ô �(‹O€EØ	‡I�Iˆd�DÔØ�;‰;×Ñ¤§
¡
Ò*Ð*Ð*ô ˜“?€LØ×Ñ�[ $Ô'Ø×Ñ×#Ñ#¤r§z¡zÒ1Ð1Ð1ð �jÑ €DÜ	‡w�w�$‚�9àˆô �E—K‘K §¡×!3Ñ!3´B·J±JÓ!?ÀdÕKà�Ò™Mð ˆä�E—K‘K ×!3Ñ!3¸$Õ?Ü�E—K‘K ×!3Ñ!3¸$Ö?rK   c                 ó"  — t         j                  j                  | «      }t        j                  |j	                  dd«      ddgz   |j	                  dd«      f«      }t        j
                  dgdz  dgdz  z   «      }t        ddd| ¬«      }t        dd	d| ¬«      }t        ||j                  ||«      j                  |«      «      }t        d
«      D ]  }|j                  ||«       Œ t        ||j                  |«      «      }t        ||d¬«       y )NrN   r2   r1   r0   r.   Frå   )r€   r*  r…   ru   TrÉ   rš   r›   )r7   rË   rÌ   rè   ré   rŸ   r   r   r:   r=   rY  r   )	r�   rÎ   rB   rC   Úlr_no_wsÚlr_wsÚlr_no_ws_lossrï   Ú
lr_ws_losss	            rI   Útest_warm_start_converge_LRrB  Ý  sû   € ô �)‰)×
Ñ
Ð 2Ó
3€CÜ
�‰˜Ÿ	™	 # qÓ)¨Q°¨FÑ2°C·I±I¸cÀ1Ó4EÐFÓG€AÜ
�‰�!��s‘˜b˜T C™ZÑ'Ó(€AÜ!Ø ¨DÐ?Qô€Hô Ø ¨4Ð>Pô€Eô ˜Q §¡¨Q°Ó 2× @Ñ @ÀÓ CÓD€MÜ�1‹Xò ˆØ�	‰	�!�Q�ðä˜!˜U×0Ñ0°Ó3Ó4€JÜ�M :°DÖ9rK   c           	      ór  — t        | ¬«      \  }}d}t        «       }dD ]@  }t        ||d| dd¬«      }|j                  ||«       |j	                  |j
                  «       ŒB |\  }}}	t        j                  ||dd¬	«      rJ ‚t        j                  ||	dd¬	«      rJ ‚t        j                  |	|dd¬	«      rJ ‚y )
Nrt   r  )r\   r1   r   r/   rþ   rN  )rP   r«   r€   ru   r…   r�   r   r�   )r   r  r   r:   Úappendr¢   r7   Úallclose)
r�   rB   rC   rP   Úcoeffsr«   rx   Úelastic_net_coeffsÚ	l1_coeffsÚ	l2_coeffss
             rI   Útest_elastic_net_coeffsrJ  ò  sÇ   € ô Ð,>Ô?�D€A€qà€AÜ‹V€FØò 
 ˆÜØØØØ+ØØô
ˆð 	�‰ˆq�!ŒØ�‰�b—h‘hÕð
 ð 06Ñ,Ð˜	 9ô �{‰{Ð-¨y¸qÀtÕLÐLÐLÜ�{‰{Ð-¨y¸qÀtÕLÐLÐLÜ�{‰{˜9 i°a¸dÕCÐCÐCÐCrK   z1ignore:.*'penalty' was deprecated.*:FutureWarning)rþ   rZ   r1   r|   rN   rá   ç    €„.Azpenalty, l1_ratio)Úl1r1   )r(  r   c                 óì   — t        | ¬«      \  }}t        d||d| d¬«      }t        ||d| d¬«      }|j                  ||«       |j                  ||«       t        |j                  |j                  «       y )Nrt   r¸   r/   rƒ   )r¹   rP   r«   r€   ru   r…   )r¹   rP   r€   ru   r…   )r   r   r:   r   r¢   )r�   rP   r¹   r«   rB   rC   Úlr_enetÚlr_expecteds           rI   Ú"test_elastic_net_l1_l2_equivalencerP    sz   € ô Ð,>Ô?�D€A€qä ØØ
ØØØ'Øô€Gô %Ø˜1 VÐ:LÐRVô€Kð ‡K�K��1ÔØ‡O�O�A�qÔä˜gŸm™m¨[×->Ñ->Õ?rK   )rþ   r1   rN   rK  c                 óÌ  — t        dd¬«      \  }}t        ||d¬«      \  }}}}dt        j                  ddd«      i}t	        d| ddd	¬
«      }t        ||d¬«      }	t	        d| ddd	¬
«      }
t	        d| ddd	¬
«      }|	|
|fD ]  }|j                  ||«       Œ |	j                  ||«      |
j                  ||«      k\  sJ ‚|	j                  ||«      |j                  ||«      k\  sJ ‚y )NrN  r   rt   r«   r1   rÉ   r\   r/   rƒ   )r«   rP   r€   ru   r…   T)r  )r   r   r7   Úlinspacer   r   r:   rd   )rP   rB   rC   ÚX_trainÚX_testÚy_trainÚy_testÚ
param_gridÚenet_clfÚgsÚl1_clfÚl2_clfrA   s                rI   Útest_elastic_net_vs_l1_l2r\  (  s  € ô
 ˜s°Ô3�D€A€qÜ'7¸¸1È1Ô'MÑ$€GˆV�W˜fàœbŸk™k¨!¨Q°Ó2Ð3€Jä!ØØ
ØØØô€Hô 
�h 
°$Ô	7€BäØ�a °Q¸Dô€Fô  Ø�a °Q¸Dô€Fð �F˜FÐ#ò "ˆØ�‰�˜Õ!ð"ð �8‰8�F˜FÓ# v§|¡|°F¸FÓ'CÒCÐCÐCØ�8‰8�F˜FÓ# v§|¡|°F¸FÓ'CÒCÐCÑCrK   r•   r2   rm   )rZ   r\   çÍÌÌÌÌÌì?c           	      ó
  ‡ ‡‡‡— t        ddddddd¬«      \  ŠŠt        ‰«      Št        ‰‰ ddd¬	«      }t        ddd‰ d¬
«      }|j                  ‰‰«       |j                  ‰‰«       ˆ ˆˆˆfd„} ||«       ||«      k  sJ ‚y )Nrá   r2   rü   r|   r   ©rD   rF   rÁ   r&  r£  r¢  ru   r/   F)r«   rP   r€   ru   rR   )r«   r€   ru   rP   rR   c                 ó  •— | j                   j                  «       }‰t        ‰| j                  ‰«      «      z  }|‰t	        j
                  t	        j                  |«      «      z  z  }|d‰z
  dz  t	        j                  ||«      z  z  }|S )Nr—   r\   )r¢   rì   r   r=   r7   r>   r  r	  )rx   r—  ÚobjrP   rB   r«   rC   s      €€€€rI   Úenet_objectivezEtest_LogisticRegression_elastic_net_objective.<locals>.enet_objectivej  sw   ø€ Ø�x‰x�~‰~ÓˆØ”(˜1˜b×.Ñ.¨qÓ1Ó2Ñ2ˆØˆxœ"Ÿ&™&¤§¡¨£Ó.Ñ.Ñ.ˆØ��h‘ #Ñ%¬¯©¨t°TÓ(:Ñ:Ñ:ˆØˆ
rK   )r   r"   r   r:   )rP   r«   rN  Úlr_l2rb  rB   rC   s   ``   @@rI   Ú-test_LogisticRegression_elastic_net_objectiverd  J  sŸ   û€ ô ØØØØØØØô�D€A€qô 	ˆa‹€Aä ØØ
ØØØô€Gô Ø˜6°°QÀeô€Eð ‡K�K��1ÔØ	‡I�Iˆa�„O÷ñ ˜'Ó"¡^°EÓ%:Ò:Ð:Ñ:rK   rF   )r2   rl   c           	      óÀ  — t        d| dd¬«      \  }}t        d«      }t        j                  ddd«      }t        j                  ddd«      }t        ||d	|dd
d¬«      }|j                  ||«       ||dœ}t        d	dd
¬«      }t        |||¬«      }	|	j                  ||«       |	j                  d   |j                  k(  sJ ‚|	j                  d   |j                  k(  sJ ‚y )NrN   rl   r   )rD   rF   r&  ru   rÉ   r1   r”   rm   r/   rƒ   F)rp   ro   r€   rr   ru   r…   rs   r	  )r€   ru   r…   ©rr   r«   rP   )r   r   r7   rR  rê   r   r:   r   r   Úbest_params_r  rv   )
rF   rB   rC   rr   rp   ro   ÚlrcvrW  rx   rY  s
             rI   Ú2test_LogisticRegressionCV_GridSearchCV_elastic_netri  u  sì   € ô
 ØØØØô	�D€A€qô 
˜Ó	€Bä—‘˜A˜q !Ó$€IÜ	�‰�R˜˜AÓ	€BäØØØØØØØ#ô€Dð 	‡H�HˆQ�„Nà yÑ1€JÜ	ØØØô
€Bô
 
�b˜*¨Ô	,€BØ‡F�Fˆ1ˆa„Là�?‰?˜:Ñ&¨$¯.©.Ò8Ð8Ð8Ø�?‰?˜3Ñ 4§7¡7Ò*Ð*Ñ*rK   rn   c           	      ó
  — d}t        d|||d¬«      \  }}t        j                  ddd«      }t        || ddd	d
d¬«      }|j	                  ||«       |dk(  rdn|}|j
                  j                  |fk(  sJ ‚|j                  j                  |fk(  sJ ‚|j                  j                  ||fk(  sJ ‚t        |j
                  |j
                  d   «       t        | «      dkD  r$t        |j                  |j                  d   «       y y )Nrü   r   r   ©rD   rF   r&  rÁ   ru   r”   rm   rl   r/   rƒ   FT)ro   rp   r€   ru   r…   r  rs   r2   r1   )r   r7   rê   r   r:   rv   r9   r  r¢   r   r6   )rp   rF   rÁ   rB   rC   ro   rh  s          rI   Ú"test_LogisticRegressionCV_no_refitrl  ž  s  € ð
 €JÜØØØØØô�D€A€qô 
�‰�R˜˜AÓ	€BÜØØØØØØØ"ô€Dð 	‡H�HˆQ�„Nà !’^‘¨€IØ�7‰7�=‰=˜Y˜LÒ(Ð(Ð(Ø�>‰>×Ñ I <Ò/Ð/Ð/Ø�:‰:×Ñ 	¨:Ð6Ò6Ð6Ð6ä�D—G‘G˜TŸW™W Q™ZÔ(Ü
ˆ9ƒ~˜ÒÜ˜Ÿ™¨¯©°qÑ(9Õ:ð rK   c           	      ó^  — d}t        d| | |d¬«      \  }}t        j                  ddd«      }t        j                  ddd	«      }d	}t	        ||d
|ddd¬«      }|j                  ||«       t        j                  t        |j                  j                  «       «      «      }| d	k(  rdn| } |j                  | ||j                  |j                  |dz   fk(  sJ ‚t        j                  t        |j                  j                  «       «      «      }	|	j                  | ||j                  |j                  fk(  sJ ‚|j                  j                  d||j                  |j                  fk(  sJ ‚t        |j                  |j                  d   «       t        |j                   |j                   d   «       y )Nrü   r   r   rk  r”   rm   rl   r1   r2   r/   rƒ   T)ro   rp   r€   rr   ru   r…   rs   )r   r7   rê   rR  r   r:   r  r  r  r  r9   rˆ  r  r  r   rv   r  )
rF   rÁ   rB   rC   ro   rp   rg  rh  r  r^   s
             rI   Ú5test_LogisticRegressionCV_elasticnet_attribute_shapesrn  Â  sƒ  € ð
 €JÜØØØØØô�D€A€qô 
�‰�R˜˜AÓ	€BÜ—‘˜A˜q !Ó$€Ià€GÜØØØØØØØ"ô€Dð 	‡H�HˆQ�„NÜ—*‘*œT $×"3Ñ"3×":Ñ":Ó"<Ó=Ó>€Kà !’^‘¨€IØ×ÑØØØ
�‰Ø�‰Ø�Q‰ð!ò ð ð ô �Z‰Zœ˜TŸ\™\×0Ñ0Ó2Ó3Ó4€FØ�<‰<˜I w°·±¸¿¹ÐHÒHÐHÐHà�<‰<×Ñ ! W¨b¯g©g°y·~±~Ð!FÒFÐFÐFô �D—G‘G˜TŸW™W Q™ZÔ(Ü�D—N‘N D§N¡N°1Ñ$5Õ6rK   c            	      óT  — t         j                  t         j                  }} t        ddd¬«      j	                  | |«      }t        d«      }t        |j                  | |«      «      }ddgddgdd	gfD ]¶  \  }}||   d   }t        |j                  |   dd¬
«      j	                  | |   ||   «      }t        j                  |«      D ]`  }	t        |j                  |	   ||dd…f   |j                  |	   d¬«       t        |j                  |	   ||df   |j                  |	   d¬«       Œb Œ¸ y)zETest that LogisticRegressionCV produces the correct result on a fold.r-   r˜   T)r€   r…   rs   rÉ   r   r1   rl   r%  r„   Nr0   rš   r›   )rˆ   r‰   r‹   r   r:   r   r  rX  r   r  r7   r8   r   r  r¢   r¡   )
rB   rC   rh  rr   ÚfoldsÚidx_foldÚidx_CÚtrain_fold_0rx   Úcls
             rI   Ú"test_LogisticRegressionCV_on_foldsru  ò  s<  € ä�9‰9”d—k‘k€q€AÜØ  dÀ$ôç	�cˆ!ˆQƒið 	ô
 
˜Ó	€BÜ�—‘˜!˜Q“Ó €Eð  ˜F Q¨ F¨Q°¨FÐ3ò ‰ˆ�%Ø˜X‘ qÑ)ˆÜØ�h‰h�u‰oØ$Øô
÷ ‰#ˆa�‰o˜q ™Ó
/ð	 	ô —)‘)˜A“,ò 	ˆBäØ×!Ñ! "Ñ% h°°s¸°sÐ&:Ñ;Ø—‘˜‘Øõô Ø×!Ñ! "Ñ% h°°rÐ&9Ñ:Ø—‘˜bÑ!Øöñ	ñrK   c                  ó´   — d} t        j                  t        | ¬«      5  t        ddd¬«      j	                  t
        t        «       d d d «       y # 1 sw Y   y xY w)NzQl1_ratio parameter is only used when penalty is 'elasticnet'\. Got \(penalty=l1\)r©   rL  r/   r\   )r¹   r€   r«   )r°   rõ   ÚUserWarningr   r:   rB   rS   )r´   s    rI   Útest_l1_ratio_non_elasticnetrx    sN   € ð	.ð ô 
�‰”k¨Ô	-ñ QÜ 4°ÀÔE×IÑIÌ!ÌRÔP÷Q÷ Qñ Qús   ž'AÁAc           
      ó*  — d}t        |ddddd| ¬«      \  }}t        |«      }t        d|| dd dd	|z  |z  d
¬«      }t        || ddd|d¬«      }|j	                  ||«       |j	                  ||«       t        |j                  |j                  d¬«       y )NrN  r2   rÉ   r   r_  r¸   FrÞ  r—   r   )r¹   r«   ru   rR   r…   r�   r)  rš  rš   rá   r/   )r«   ru   rR   r…   r�   rP   r€   gffffffÖ?r±  )r   r"   r   r   r:   r   r¢   )r�   rP   r«   rD   rB   rC   ÚsgdÚlogs           rI   Útest_elastic_net_versus_sgdr|  !  s³   € ð €IÜØØØØØØØ'ô�D€A€qô 	ˆa‹€Aä
ØØØ'ØØØØ�A‰g˜	Ñ!Øô	€Cô ØØ'ØØØØ
Øô€Cð ‡G�GˆAˆq„MØ‡G�GˆAˆq„Mä�C—I‘I˜sŸy™y¨tÖ4rK   c            	      ó  — t        ddddddd¬«      \  } }g d¢}t        | |t        j                  |«      d|d	d¬
«      \  }}}t	        j
                  t        «      5  t        |d   |d   d¬«       d d d «       t	        j
                  t        «      5  t        |d   |d   d¬«       d d d «       t	        j
                  t        «      5  t        |d   |d   d¬«       d d d «       y # 1 sw Y   ŒvxY w# 1 sw Y   ŒLxY w# 1 sw Y   y xY w)Nr   rl   r2   r   r1   ©rD   rF   r&  r£  Ún_clusters_per_classru   rÁ   )rš   r1   r{  rL  r/   )rE   r¹   ro   r€   ru   rß  )r   r   r7   r8   r°   r±   rÿ   r   )rB   rC   ro   rî   r�   s        rI   Ú/test_logistic_regression_path_coefs_multinomialr€  K  s  € ô ØØØØØØØô�D€A€qò 
€BÜ+Ø	Ø	Ü—	‘	˜!“ØØØØô�K€Eˆ1ˆaô 
�‰”~Ó	&ñ AÜ! %¨¡(¨E°!©H¸aÕ@÷Aä	�‰”~Ó	&ñ AÜ! %¨¡(¨E°!©H¸aÕ@÷Aä	�‰”~Ó	&ñ AÜ! %¨¡(¨E°!©H¸aÕ@÷Að A÷	Að Aú÷Að Aú÷Að Aús$   ÁC&ÂC2ÃC>Ã&C/Ã2C;Ã>Dc            	      ó>  — t        ddddddd¬«      \  } }t        j                  |«      }t        j                  d«      }t	        | |||d¬«       d	t        j                  t        |j                  «      «      › d
�}t        j                  t        |¬«      5  t	        | |||dd¬«       d d d «       t        ddddddd¬«      \  } }t        j                  |«      }t        j                  d«      }t	        | |||d¬«       t        j                  d«      }t	        | |||d¬«       d	t        j                  t        |j                  «      «      › d�}t        j                  t        |¬«      5  t	        | |||dd¬«       d d d «       y # 1 sw Y   ŒßxY w# 1 sw Y   y xY w)Nr   rl   r2   r   r1   r~  )rl   rl   )rE   r—  ru   z Initialization coef is of shape z.+expected.+\(3, 2\)r©   F)rE   r—  ru   rR   )r1   rl   z.+expected.+\(2,\) or \(1, 2\))r   r7   r8   r?   r   ÚreÚescapeÚstrr9   r°   r±   r²   )rB   rC   rE   r—  r´   s        rI   Ú(test_logistic_regression_path_init_coefsr…  k  s¥  € ÜØØØØØØØô�D€A€qô �i‰i˜‹l€Gô �7‰7�6‹?€DÜØ	Ø	ØØØõð ,¬B¯I©I´c¸$¿*¹*³oÓ,FÐ+GØð	 ð ô 
�‰”z¨Ô	-ñ 
Ü!Øˆq˜'¨¸1ÈEõ	
÷
ô
 ØØØØØØØô�D€A€qô �i‰i˜‹l€Gô
 �7‰7�1‹:€DÜØ	Ø	ØØØõô �7‰7�6‹?€DÜØ	Ø	ØØØõð ,¬B¯I©I´c¸$¿*¹*³oÓ,FÐ+GØ)ð	*ð ô 
�‰”z¨Ô	-ñ 
Ü!Øˆq˜'¨¸1ÈEõ	
÷
ð 
÷S
ð 
ú÷R
ð 
ús   ÂFÅ,FÆFÆFc                 óÀ  — t        dd| ¬«      \  }}d}t        d |d¬«      }t        j                  t        |¬«      5  |j                  ||«       d d d «       t        d |d| ¬	«      }t        d
t        j                  |d| ¬«      }|j                  ||«      j                  |«      }|j                  ||«      j                  |«      }	t        ||	«       y # 1 sw Y   Œ…xY w)Nrá   r   )rD   r£  ru   z&Setting penalty=None will ignore the Crm   )r¹   r€   rP   r©   r™   )r¹   r€   r�   ru   r(  )r¹   rP   r€   r�   ru   )
r   r   r°   rõ   rw  r:   r7   r³   r;   r   )
r�   r€   rB   rC   r´   rx   Úlr_noneÚlr_l2_C_infÚ	pred_noneÚpred_l2_C_infs
             rI   Útest_penalty_noner‹  µ  sÖ   € ô Ø AÐ4Fô�D€A€qð 3€CÜ	 D°¸1Ô	=€BÜ	�‰”k¨Ô	-ñ Ø
�‰ˆq�!Œ÷ô !Ø˜V¨cÐ@Rô€Gô %ØÜ
�&‰&ØØØ'ô€Kð —‘˜A˜qÓ!×)Ñ)¨!Ó,€IØ—O‘O A qÓ)×1Ñ1°!Ó4€MÜ�y -Õ0÷ð ús   ½CÃCr2  rå   rá   )r«   r®   r…   r�   rÑ  c                 ó  — t        j                  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ddgddgddgddgddgddgddggt        j                  d«      ¬«      }t        j                  g d¢t        j                  d«      ¬«      }t        j                  ||g«      }t        j                  |d|z
  g«      }t        j
                  t        |«      dz  ¬	«      }d
|t        |«      d  t        |||| ¬«      \  }}}t        d| ¬«      } |j                  di |¤Ž t        |«      j                  ||«      }t        |«      j                  |||¬«      }	dD ]2  }
 t        ||
«      |«      } t        |	|
«      |«      }t        ||«       Œ4 y )Nr1   rl   r2   rm   r  r×   )r1   r1   r1   r1   r2   r2   r2   r2   r1   r1   r1   r1   r2   r2   r2   r2   r·  rú  r   rt   r+   )r€   ru   r°  )r;   r=   r½   rj   )r7   rŸ   rØ   ÚvstackÚhstackr?   r6   r%   r   r�   r   r:   rŒ   r   )r�   r2  rB   rC   ÚX2Úy2rc   Úbase_clfÚclf_no_weightÚclf_with_weightÚmethodÚX_clf_no_weightÚX_clf_with_weights                rI   Ú/test_logisticregression_liblinear_sample_weightr—  Ö  s±  € ô 	�‰à�ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFØ�ˆFð!	
ô$ �h‰h�wÓô'	€Aô* 	�‰Ú8ÄÇÁÈÃô	€Aô 
�‰�A�q�6Ó	€BÜ	�‰�A�q˜1‘u�:Ó	€BÜ—G‘G¤# a£&¨1¡*Ô-€MØ€M”#�a“&�(ÐÜ#Ø
ˆB�Ð,>ôÑ€BˆˆMô "¨ÐCUÔV€HØ€H×ÑÑ!˜&Ò!Ü˜(“O×'Ñ'¨¨1Ó-€MÜ˜H“o×)Ñ)¨"¨bÀÐ)ÓN€OàCò <ˆØ8œ' -°Ó8¸Ó;ˆØ<œG O°VÓ<¸QÓ?ÐÜ˜Ð):Õ;ñ<rK   c            
      óº  — t        dd¬«      \  } }t        d¬«      }ddg}g d¢}t        |||d	dd
dd¬«      }|j                  | |«       |j                  d   j                  d¬«      }t        |«      D ]e  \  }}t        |«      D ]R  \  }	}
t        ||
d	dd
d¬«      }t        || ||¬«      j                  «       }|||	f   t        j                  |«      k(  rŒRJ ‚ Œg y )Nrá   r   rý   rÉ   rQ  rZ   r]  )rZ   r1   r|   r/   éú   rþ   T)ro   rp   rr   r€   ru   r�   r…   rs   r1   r4   )rP   r«   r€   ru   r�   r…   rf  )r   r   r   r:   r  rŽ   rë   r   r   r°   Úapprox)rB   rC   rr   rp   ro   rh  Úavg_scores_lrcvrï   rP   Újr«   rx   Úavg_score_lrs                rI   Ú'test_scores_attribute_layout_elasticnetrž  	  s  € ô ¨¸AÔ>�D€A€qÜ	 !Ô	$€Bà�c�
€IÚ	€BäØØØØØØØØ"ô	€Dð 	‡H�HˆQ�„Nà—l‘l 1‘o×*Ñ*°Ð*Ó2€Oä˜"“ò H‰ˆˆ1Ü$ YÓ/ò 	H‰KˆAˆxÜ#ØØ!ØØØØôˆBô +¨2¨q°!¸Ô;×@Ñ@ÓBˆLØ" 1 a 4Ñ(¬F¯M©M¸,Ó,GÓGÐGÐGñ	HñHrK   )r*   r,   r-   c                 óª  — t         j                  t         j                     }t        t	        t         j
                  «      ||| ¬«      }t        t         j
                  «      }|j                  ||«       t        |j                  j                  d¬«      dd¬«       |r7|j                  j                  d¬«      t        j                  dd¬«      k(  sJ ‚yy)	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>`
    )rP   r€   rR   ru   r   r4   r‹  r±  g•dyáý¥=)r  N)rˆ   rŠ   r‹   r   r6   r‰   r"   r:   r   r¢   r>   r¡   r°   rš  )r�   r€   rR   r‹   rA   ÚX_scaleds         rI   Ú(test_multinomial_identifiability_on_irisr¡  8	  s¤   € ô2 ×ÑœtŸ{™{Ñ+€Fä
Ü
Œd�i‰i‹.ØØ#Ø'ô	€Cô ”T—Y‘YÓ€HØ‡G�GˆH�fÔô �C—I‘I—M‘M q�MÓ)¨1°5Õ9ÙØ�~‰~×!Ñ! qÐ!Ó)¬V¯]©]¸1À%Ô-HÒHÐHÑHð rK   r—   g      $@c                 óî   — t        d¬«      \  }}t        |«      }t        j                  |«      }d|d |dz   |j	                  «       }t        | |d¬«      }|j                  |||¬«       t        ||«       y )NT©Ú
return_X_yr2   r   )ru   r;  r�   r°  )r   r6   r7   r?   r³  r   r:   r   )r�   r;  rB   rC   rÁ   ÚWÚexpectedrA   s           rI   Útest_sample_weight_not_modifiedr§  c	  st   € ä Ô%�D€A€qÜ�Q“€JÜ
�‰�
Ó€AØ€AÐˆ
�a‰Ðà�v‰v‹x€Hä
Ø'Ø!Øô€Cð
 ‡G�GˆAˆq €GÔ"Ü�H˜aÕ rK   c           	      óö  —  |t        j                  dd|¬«      «      }dD ](  }t        ||t        ||«      j	                  d«      «       Œ* t
        j                  j                  |«      }|j                  d|j                  d   ¬«      }| d	v rCd
}t        j                  t        |¬«      5  t        | ¬«      j                  ||«       d d d «       y t        | ¬«      j                  ||«       y # 1 sw Y   y xY w)Nrü   r|   rt   )ÚindicesÚindptrÚint64r2   r   r­  )r+   r.   r/   z0Only sparse matrices with 32-bit integer indicesr©   r¨   )r   ÚrandÚsetattrrŒ   r¶  r7   rË   rÌ   r´  r9   r°   r±   r²   r   r:   )r€   r�   rL   rB   ÚattrrÎ   rC   r´   s           rI   Útest_large_sparse_matrixr¯  u	  sÚ   € ñ 	”f—k‘k " bÐ7IÔJÓK€AØ%ò ;ˆÜ��4œ  DÓ)×0Ñ0°Ó9Õ:ð;ä
�)‰)×
Ñ
Ð 2Ó
3€CØ�‰�A˜AŸG™G A™JˆÓ'€AàÐ-Ñ-Ø@ˆÜ�]‰]œ:¨SÔ1ñ 	8Ü fÔ-×1Ñ1°!°QÔ7÷	8ð 	8ô 	 &Ô)×-Ñ-¨a°Õ3÷	8ð 	8ús   Â,C/Ã/C8c                  ó  — t        j                  ddg«      j                  dd«      } t        j                  ddg«      }d}t        j                  t
        |¬«      5  t        d¬«      j                  | |«       d d d «       y # 1 sw Y   y xY w)	Nr   g}Ã”%­I²Tr0   r1   z’Using the 'liblinear' solver while X contains a maximum value > 1e30 results in a frozen fit. Please choose another solver or rescale the input X.r©   r+   r¨   )r7   rŸ   r[  r°   r±   r²   r   r:   )rB   rC   r´   s      rI   Ú test_liblinear_with_large_valuesr±  Š	  sy   € ô
 	�‰�!�U�Ó×$Ñ$ R¨Ó+€AÜ
�‰�!�Q�Ó€Að	)ð ô
 
�‰”z¨Ô	-ñ 9Ü +Ô.×2Ñ2°1°aÔ8÷9÷ 9ñ 9ús   ÁBÂBc                  óØ   — t        j                  g d¢g«      j                  } t        j                  g d¢«      }| j                  d   dk(  sJ ‚t	        dd¬«      j                  | |«       y )N)r\   gÍÌÌÌÌÌä?gš™™™™™ñ?g      ô?r[   gHáz®Gá?r‡   rW  )r1   r1   r   r   r1   r1   r   r1   r1   r,   T)r€   rR   )r7   rŸ   r    r9   r   r:   )rB   rC   s     rI   Útest_single_feature_newton_cgr³  ›	  sV   € ô 	�‰Ò>Ð?Ó@×BÑB€AÜ
�‰Ò)Ó*€AØ�7‰7�1‰:˜Š?Ðˆ?Ü˜k¸Ô>×BÑBÀ1ÀaÕHrK   c           	      ó¾  — t         j                  j                  «       }t         j                  j                  «       }||dk7     }||dk7     }t	        «       j                  |«      }t        ||d¬«      dz  }t        d|dddd	| ¬
«      }t        j                  «       5  t        j                  dt        «       |j                  ||«       d d d «       y # 1 sw Y   y xY w)Nr2   r{  )rš  g¤›ntž²@r1   r+   rå   rN   ræ   )r«   rP   r€   r…   r�   rç   ru   Úerror)rˆ   r‰   r³  r‹   r!   rè  r#   r   rº  r»  r¼  r   r:   )r�   rB   rC   ÚX_preprP   rA   s         rI   Útest_liblinear_not_stuckr·  ¥	  sÅ   € ä�	‰	�‰Ó€AÜ�‰×ÑÓ€AØ	ˆ!ˆq‰&‰	€AØ	ˆ!ˆq‰&‰	€AÜÓ×+Ñ+¨AÓ.€Fä��A˜EÔ" _Ñ4€AÜ
ØØ
ØØØØ!Ø'ô€Cô 
×	 Ñ	 Ó	"ñ Ü×Ñ˜gÔ'9Ô:Ø�‰�˜Ô÷÷ ñ ús   Â-CÃC©Úenable_metadata_routingc                 ó¤  — t         j                  j                  | «      }t        d|¬«      \  }}t        d|¬«      \  }}t        j                  t        |«      «      }d|dt        |«      dz   d|i}t        d«      }t        |dd¬	«      }	 |	j                  ||fi |¤Ž t        d«      }
|
j                  d¬
«       t        |
dd¬	«      } |j                  ||fi |¤Ž t        j                  |	j                  d   |j                  d   «      rJ ‚ |	j                  ||fi |¤Ž} |j                  ||fi |¤Ž}t        j                  ||«      rJ ‚y)zåTest 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ý   r2   Nrc   r  gTäqs*É>T)rq   r…   rs   r°  r1   )r7   rË   rÌ   r   r?   r6   r   r   r:   Úset_score_requestrE  r  rd   )r�   rÎ   rB   rC   ÚX_tÚy_trc   ÚkwargsÚscorer1Úlr_cv1Úscorer2Úlr_cv2Úscore_1Úscore_2s                 rI   Ú8test_lr_cv_scores_differ_when_sample_weight_is_requestedrÅ  ¾	  sL  € ô �)‰)×
Ñ
Ð 2Ó
3€CÜ¨¸CÔ@�D€A€qÜ"¨TÀÔD�H€CˆÜ—G‘GœC ›F“O€MØ#$€M�-”C˜“F˜a‘KÐ Ø˜}Ð-€Fä˜Ó$€GÜ!ØØØ"ô€Fð
 €F‡J�Jˆq�!Ñ�vÒä˜Ó$€GØ×Ñ¨DÐÔ1Ü!ØØØ"ô€Fð
 €F‡J�Jˆq�!Ñ�vÒä�{‰{˜6Ÿ>™>¨!Ñ,¨f¯n©n¸QÑ.?Ô@Ð@Ð@àˆf�l‰l˜3 Ñ. vÑ.€GØˆf�l‰l˜3 Ñ. vÑ.€Gä�{‰{˜7 GÔ,Ð,Ð,Ð,rK   c                  óô  — t         j                  j                  d«      } t        d| ¬«      \  }}t        d| ¬«      \  }}t        j                  t        |«      «      }d|dt        |«      dz   d|i}t        d¬«      5  t        d«      }t        |d¬	«      } |j                  ||fi |¤Ž  |j                  ||fi |¤Ž}	ddd«       t        d
¬«      5  t        d«      }
|
j                  d
¬«       t        |
d¬	«      } |j                  ||fi |¤Ž  |j                  ||fi |¤Ž}ddd«       t        j                  d   j                  d   «       t        	«       y# 1 sw Y   Œ£xY w# 1 sw Y   ŒHxY w)z±Test that `sample_weight` is passed correctly to the scorer in
    `LogisticRegressionCV.fit` and `LogisticRegressionCV.score` even
    when `enable_metadata_routing=False`
    r|   rý   r2   Nrc   Fr¸  r  )rq   rs   Tr°  r1   )r7   rË   rÌ   r   r?   r6   r	   r   r   r:   rd   r»  r   r  )rÎ   rB   rC   r¼  r½  rc   r¾  r¿  rÀ  rÃ  rÁ  rÂ  rÄ  s                rI   Ú3test_lr_cv_scores_without_enabling_metadata_routingrÇ  å	  sl  € ô
 �)‰)×
Ñ
 Ó
#€CÜ¨¸#Ô>�D€A€qÜ"¨R¸cÔB�H€CˆÜ—G‘GœC ›F“O€MØ#$€M�-”C˜“F˜a‘KÐ Ø˜}Ð-€Fä	°Ô	6ñ 3Ü˜ZÓ(ˆÜ%ØØ"'ô
ˆð 	ˆ�
‰
�1�aÑ"˜6Ò"Ø�&—,‘,˜s CÑ2¨6Ñ2ˆ÷3ô 
°Ô	5ñ 3Ü˜ZÓ(ˆØ×!Ñ!°Ð!Ô5Ü%ØØ"'ô
ˆð 	ˆ�
‰
�1�aÑ"˜6Ò"Ø�&—,‘,˜s CÑ2¨6Ñ2ˆ÷3ô �F—N‘N 1Ñ% v§~¡~°aÑ'8Ô9Ü�G˜WÕ%÷)3ð 3ú÷3ð 3ús   Á?AE"ÃAE.Å"E+Å.E7c                 ó„  — t        d¬«      \  }}|dk(  }t        t        ¬«      5  t        | d¬«      j	                  ||«      }d d d «       | dvrj
                  dk(  sJ ‚| dk7  r¹t        j                  t        j                  |j                  «      «       t        |j                  |«      t        j                  |j                  d   |j                  ¬	«      «       t        |j                  |«      t        j                  |j                  d   dfd
¬	«      «       j                  ||«      dk  sJ ‚y # 1 sw Y   ŒôxY w)NTr£  r2   r¤  r   r}  )r/   r.   r*   )r9   Ú
fill_valuer\   rW  )r   r&   r   r   r:   r  r   r¢   r7   Ú
zeros_liker½   r¸  r9   r¡   r=   rd   )r€   rB   rC   rA   s       rI   Útest_zero_max_iterrË  
  s  € ô  Ô%�D€A€qØ	ˆQ‰€AÜ	Ô"4Ô	5ñ FÜ ¨¸Ô;×?Ñ?ÀÀ1ÓEˆ÷Fà�_Ñ$à�{‰{˜aÒÐÐà�Òä˜Ÿ	™	¤2§=¡=°·±Ó#;Ô<ÜØ×!Ñ! !Ó$Ü�G‰G˜!Ÿ'™' !™*°·±Ô@ô	
ô 	Ø×Ñ˜aÓ Ü�G‰G˜1Ÿ7™7 1™: q˜/°cÔ:ô	
ð �9‰9�Q˜‹?˜SÒ Ð Ñ ÷#Fð Fús   ¥D6Ä6D?c                  óš  — t        dd¬«      \  } }t        d¬«      }d}t        d¬«      5  dd	i}t        j                  t
        |¬
«      5   |j                  | |fi |¤Ž ddd«       t        j                  t
        |¬
«      5   |j                  | |fi |¤Ž ddd«       ddd«       y# 1 sw Y   ŒJxY w# 1 sw Y   ŒxY w# 1 sw Y   yxY w)z‰Test that the right error message is raised when metadata params
    are passed while not supported when `enable_metadata_routing=False`.r|   r   rý   FrE  z1is only supported if enable_metadata_routing=Truer¸  Úextra_paramr—   r©   N)r   r   r	   r°   r±   r²   r:   rd   )rB   rC   r  r´   r2  s        rI   Ú5test_passing_params_without_enabling_metadata_routingrÎ  "
  sÁ   € ô ¨¸!Ô<�D€A€qÜ °uÔ=€EØ
=€Cä	°Ô	6ñ (Ø Ð%ˆä�]‰]œ:¨SÔ1ñ 	&ØˆE�I‰I�a˜Ñ%˜fÒ%÷	&ô �]‰]œ:¨SÔ1ñ 	(ØˆE�K‰K˜˜1Ñ' Ò'÷	(÷(ð (÷	&ð 	&ú÷	(ð 	(ú÷(ð (ús;   « CÁB)Á #CÂB5ÂCÂ)B2	Â.CÂ5B>	Â:CÃC
c                 óú  — t        dd| ¬«      \  }}d}t        d|¬«      }t        j                  «       5  t        j                  d«       |j                  ||«       |j                  d   }d d d «       d	k\  sJ ‚t        d
|¬«      }t        t        ¬«      5  |j                  ||«       |j                  d   }d d d «       |k(  sJ ‚t        d
||d	z
  ¬«      }t        t        ¬«      5  t        j                  t        d¬«      5  |j                  ||«       |j                  d   }	d d d «       d d d «       	|j                  d	z
  k(  sJ ‚y # 1 sw Y   ŒâxY w# 1 sw Y   Œ xY w# 1 sw Y   Œ>xY w# 1 sw Y   ŒBxY w)Nr|   rü   rD  gêŒ 9Y>)Fr*   )r€   rP   rµ  r   r1   r-   r¤  )r€   rP   r�   r  r©   )r   r   rº  r»  r¼  r:   r  r&   r   r°   rõ   r   r�   )
r�   rB   rC   rP   Úlr_lbfgsÚn_iter_lbfgsÚlr_ncÚ	n_iter_ncÚlr_nc_limitedÚn_iter_nc_limiteds
             rI   Ú&test_newton_cholesky_fallback_to_lbfgsrÖ  3
  s{  € ô Ø Ð2Dô�D€A€qð 	€Aô "¨°AÔ6€HÜ	×	 Ñ	 Ó	"ñ +Ü×Ñ˜gÔ&Ø�‰�Q˜ÔØ×'Ñ'¨Ñ*ˆ÷+ð
 ˜1ÒÐÐô Ð&7¸1Ô=€EÜ	¤-Ô	0ñ %Ø�	‰	�!�QŒØ—M‘M !Ñ$ˆ	÷%ð ˜Ò$Ð$Ð$ô 'Ø  A°¸qÑ0@ô€Mô 
¤-Ô	0ñ 9Ü�\‰\Ô,Ð4NÔOñ 	9Ø×Ñ˜a Ô#Ø -× 5Ñ 5°aÑ 8Ð÷	9÷9ð
  × 6Ñ 6¸Ñ :Ò:Ð:Ñ:÷9+ð +ú÷%ð %ú÷	9ð 	9ú÷9ð 9ús;   µ7EÂ"EÃ*E1Ä"E%Ä(E1ÅEÅE"Å%E.	Å*E1Å1E:Ú	Estimatorc                 óÒ   — d}t        j                  t        |¬«      5   | d¬«      j                  t        j
                  t        j                  «       ddd«       y# 1 sw Y   yxY w)z<Check that liblinear raises an error on multiclass problems.zAThe 'liblinear' solver does not support multiclass classificationr©   r+   r¨   N)r°   r±   r²   r:   rˆ   r‰   r‹   )r×  r´   s     rI   Ú test_liblinear_multiclass_raisesrÙ  ^
  sN   € ð N€CÜ	�‰”z¨Ô	-ñ BÙ˜Ô%×)Ñ)¬$¯)©)´T·[±[ÔA÷B÷ Bñ Bús   ž6AÁA&z7ignore:.*default.*use_legacy_attributes.*:FutureWarningÚestc                 óÀ   — t        ddd¬«      \  }} | d¬«      }d}t        j                  t        |¬«      5  |j	                  ||«       d	d	d	«       y	# 1 sw Y   y	xY w)
z?Check that penalty in LogisticRegression and *CV is deprecated.r2   rü   r%  ©rF   rD   r&  r(  )r¹   z'penalty' was deprecatedr©   N)r   r°   rõ   ÚFutureWarningr:   )rÚ  rB   rC   rx   r´   s        rI   Útest_penalty_deprecatedrÞ  h
  sU   € ô ¨°bÈÔJ�D€A€qÙ	�TÔ	€BØ
$€CÜ	�‰”m¨3Ô	/ñ Ø
�‰ˆq�!Œ÷÷ ñ ús   ¸AÁAc                  óÂ   — t        ddd¬«      \  } }t        «       }d}t        j                  t        |¬«      5  |j                  | |«       d d d «       y # 1 sw Y   y xY w)Nrl   r  r%  rÜ  z@The default value of use_legacy_attributes will change from Truer©   )r   r   r°   rõ   rÝ  r:   ©rB   rC   rx   r´   s       rI   Ú:test_logisticregressioncv_warns_with_use_legacy_attributesrá  t
  sQ   € Ü¨°bÈÔJ�D€A€qÜ	Ó	€BØ
L€CÜ	�‰”m¨3Ô	/ñ Ø
�‰ˆq�!Œ÷÷ ñ ús   ¹AÁAz3ignore:l1_ratios parameter is only us.*:UserWarningc                  ó  — t        ddd¬«      \  } }t        d¬«      }d}t        j                  t        |¬«      5  |j                  | |«       ddd«       t        «       }d	}t        j                  t        |¬«      5  |j                  | |«       ddd«       t        d¬
«      }d}t        j                  t        |¬«      5  |j                  | |«       ddd«       y# 1 sw Y   Œ�xY w# 1 sw Y   ŒZxY w# 1 sw Y   yxY w)z=Check that l1_ratio=None in LogisticRegression is deprecated.r2   rü   r%  rÜ  N)r«   z'l1_ratio=None' was deprecatedr©   z+The default value for l1_ratios will change)rp   z'l1_ratios=None' was deprecated)r   r   r°   rõ   rÝ  r:   r   rà  s       rI   Útest_l1_ratio_None_deprecatedrã  }
  sÚ   € ô ¨°bÈÔJ�D€A€qä	 TÔ	*€BØ
*€CÜ	�‰”m¨3Ô	/ñ Ø
�‰ˆq�!Œ÷ô 
Ó	€BØ
7€CÜ	�‰”m¨3Ô	/ñ Ø
�‰ˆq�!Œ÷ô 
¨Ô	-€BØ
+€CÜ	�‰”m¨3Ô	/ñ Ø
�‰ˆq�!Œ÷ð ÷ð ú÷
ð ú÷
ð ús#   »CÁ=C)ÃC5ÃC&Ã)C2Ã5C>c                  óÆ   — t        ddd¬«      \  } }t        d¬«      }d}t        j                  t        |¬«      5  |j                  | |«       d d d «       y # 1 sw Y   y xY w)	Nrl   r  r%  rÜ  r1   )r)  z'n_jobs' has no effectr©   )r   r   r°   rõ   rÝ  r:   rà  s       rI   Ú)test_logisticregression_warns_with_n_jobsrå  ”
  sS   € Ü¨°bÈÔJ�D€A€qÜ	 1Ô	%€BØ
"€CÜ	�‰”m¨3Ô	/ñ Ø
�‰ˆq�!Œ÷÷ ñ ús   »AÁA zignore:'penalty' was deprecated)rL  ró   )r(  r—   c                 óÒ   — t        d¬«      \  }}t        d| |¬«      }d| › d|› �}t        j                  t        |¬«      5  |j                  ||«       ddd«       y# 1 sw Y   yxY w)	z=Check that incompatible penalty and l1_ratio raise a warning.rü   )rD   r/   )r€   r¹   r«   zInconsistent values: penalty=z with l1_ratio=r©   N)r   r   r°   rõ   rw  r:   )r¹   r«   rB   rC   rx   r´   s         rI   Ú$test_lr_penalty_l1ratio_incompatiblerç  �
  sb   € ô ¨Ô,�D€A€qÜ	 6°7ÀXÔ	N€BØ)¨'¨°/À(ÀÐ
L€CÜ	�‰”k¨Ô	-ñ Ø
�‰ˆq�!Œ÷÷ ñ ús   ÁAÁA&)Ÿrs  r.  r‚  rº  Únumpyr7   r°   Únumpy.testingr   r   r   Úscipyr   Úscipy.linalgr   r   Úsklearnr	   Úsklearn._lossr
   Úsklearn.baser   Úsklearn.datasetsr   r   r   Úsklearn.exceptionsr   Úsklearn.linear_modelr   r   r   Úsklearn.linear_model._logisticr   r   Úsklearn.metricsr   r   r   r   Úsklearn.model_selectionr   r   r   r   r   r   Úsklearn.multiclassr   Úsklearn.preprocessingr    r!   r"   Úsklearn.svmr#   Úsklearn.utilsr$   r%   Úsklearn.utils._testingr&   Úsklearn.utils.fixesr'   r(   r)   ÚmarkÚfilterwarningsÚ
pytestmarkrr  rB   rS   r}   rˆ   rJ   ÚparametrizerU   rz   r~   r6   r‰   r’   r¤   rµ   rº   rÇ   rÒ   rÕ   rÞ   rñ   rú   Úthread_unsafer  r  r6  rB  rH  rk  rx  r‚  rž  r§  rÊ  rÏ  rÔ  rØ  rä  rî  rð  rô  rö  rø  r  r  r  r  r-  r  r  r=  r>  r"  r³   r$  r*  r<  rB  rJ  rP  r\  rê   rd  ri  rR  rl  rn  ru  rx  r|  r€  r…  r‹  r—  rž  r¡  r§  r¯  r±  r³  r·  rÅ  rÇ  rË  rÎ  rÖ  rÙ  rÞ  rá  rã  rå  rç  rj   rK   rI   ú<module>r      sQ  ðÛ Û 	Û 	Û ã Û ÷ñ õ
 ß +å "Ý -Ý ß QÑ QÝ 1ß XÑ X÷÷ PÓ O÷÷ õ 3ß EÑ EÝ  ß 7Ý 2ß IÑ Ià�[‰[×'Ñ'Ø<ó€
ð �[‰[×'Ñ'Ø<ó€
ð P€Øˆ!€Wˆq�!ˆf�q˜!�fÐ€Ú€Ú€Ùƒ{€ò8ð$ ‡�×Ñ˜¨.Ó9ñ
Uó :ð
Uò&"ðR ‡�×Ñ˜¨.Ó9ñFó :ðFð
 ‡�×ÑØ	á™S §¡›^°GÀcÔJÙ™S §¡›^°KÔ@ÙÙ�$—)‘)‹nØØô	
ñ
 	Ù�$—)‘)‹nØØô	
ñ
 	™S §¡›^Ð4EÔFÙÑ.±°T·Y±Y³ÈÔTÓUðóñ&*ó'ð&*ð2 ‡�×ÑÐJÓKØ‡�×Ñ˜ GÐ->Ð#?Ó@ñBó Aó LðBðL ‡�×ÑÐLÓMØ‡�×Ñ˜Ð 2Ð4HÐIÓJñ+ó Kó Nð+ð^ ‡�×ÑÐ3Ó4Ø‡�×ÑØ	ˆ5€MØ˜*Ð%Ð(<¸kÐ'JÐKóñ@ó	ó 5ð
@ð ‡�×Ñ˜¨.Ó9ñ2ó :ð2ò0<ò(;òò=
ò@?ð0 ‡�×Ññ8ó ð8ðD ‡�×ÑÐ0°4¸°-Ó@ñ(@ó Að(@ðV ‡�×ÑØ"à	�b�TÐØ	�x Ð-Ð.ð 
�˜+Ð&Ð'Ø	˜"˜ÐØ	�H˜kÐ*Ð+ðóñ(
óð(
òV0Iðf ‡�×Ñ˜¨.Ó9ñó :ðð" ‡�×ÑÐ0°4¸°-Ó@ñD&ó AðD&òN
ð4 ‡�×Ñ˜¨5°$¨-Ó8ñ$ó 9ð$ðN ‡�×Ñ˜¨5°$¨-Ó8ñBó 9ðBðJ ‡�×Ñ˜¨°Ñ$4¸#À#È#Ñ6NÐ#OÓPØ‡�×Ñ˜¨(°JÐ)?Ó@ñ,
ó Aó Qð,
ð` ‡�×ÑÐLÓMØ‡�×Ñ˜Ð$4Ó5Ø‡�×ÑØÐSóñ@Móó 6ó Nð
@MðF ‡�×ÑØÐFóñAóðAò<8<òvð ‡�×Ñ˜©;¨-¸.Ñ*HÓIñ$Eó Jð$EòN<Jò~4ð& ‡�×Ñ˜¨.Ó9ñ!ó :ð!ð ‡�×Ñ˜¨.Ó9ñ!ó :ð!ò!ò"AðJ ‡�×Ñ˜¨.Ó9ñ5Bó :ð5Bðp ‡�×Ñ˜ a¨ VÓ,ñ5ó -ð5ò>+ð4 ‡�×Ñ˜ Y R§Y¡Y¨q°!£_Ó5Ø‡�×ÑØòóñ"%ó#ó 6ð$%ð( ‡�×Ñ˜ 7Ó+Ø‡�×ÑÐ0°4¸°-Ó@ñ4Fó Aó ,ð4Fðn ‡�×Ñ˜¡6©#¨g«,¹¸k¸]Ó9KÑ*KÓ#LÓMØ‡�×Ñ˜ }Ó5Ø‡�×Ñ˜¨-Ó8ñ#ó 9ó 6ó Nð#ð< ‡�×Ñ˜Ð$5°{Ð#CÓDØ‡�×Ñ˜¨-Ó8Ø‡�×Ñ˜˜q "§&¡&˜kÓ*ñ:ó +ó 9ó Eð:ð> ‡�×Ñ˜ VÓ,Ø‡�×Ñ˜¨.Ó9ñ)Fó :ó -ð)FðX ‡�×ÑØÒCóð ‡�×Ñ˜¨5°$¨-Ó8Ø‡�×Ñ˜¨.Ó9ñA@ó :ó 9óð
A@òH:ò*Dð8 ‡�×ÑÐOÓPØ‡�×Ñ˜ÒAÓBØ‡�×ÑÐ,¨y¸)Ð.DÓEñ@ó Fó Có Qð@ð. ‡�×Ñ˜Ò2Ó3ñDó 4ðDðB ‡�×Ñ˜˜k˜bŸkšk¨"¨a°Ó3Ó4Ø‡�×Ñ˜¢_Ó5ñ%;ó 6ó 5ð%;ðR ‡�×Ñ˜ fÓ-ñ%+ó .ð%+ðP ‡�×Ñ˜ t¨[¨R¯[ª[¸¸A¸qÓ-AÐ&BÓCØ‡�×Ñ˜ fÓ-ñ;ó .ó Dð;ðD ‡�×Ñ˜ fÓ-ñ,7ó .ð,7ò^!ðJ ‡�×ÑÐOÓPñQó QðQð ‡�×Ñ˜˜k˜bŸkšk¨"¨a°Ó3Ó4Ø‡�×Ñ˜¢_Ó5ñ%5ó 6ó 5ð%5òPAò@F
ðT ‡�×ÑÐOÓPØ‡�×Ñ˜¡6©#¨g«,¹¸k¸]Ó9KÑ*KÓ#LÓMñ1ó Nó Qð1ð> ‡�×ÑØ‡�×ÑØà ¨dÀÑEØ ¨UÀÑEØ ¨eÀÑFðóñ,<óó ð,<ò^'HðT ‡�×Ñ˜Ò#LÓMØ‡�×Ñ˜¨5°$¨-Ó8ñ&Ió 9ó Nð&IðR ‡�×Ñ˜¨c°d¸sÑ*CÀZÐ)PÓQñ!ó Rð!ð" ‡�×Ñ˜ 7Ó+Ø‡�×Ñ˜¨.Ó9ñ4ó :ó ,ð4ò&9ò"Iòñ2 ¨Ô-ñ#-ó .ð#-òL &ðF ‡�×Ñ˜ 7Ó+ñ!ó ,ð!ò2(ò"';ðV ‡�×ÑÐLÓMØ‡�×Ñ˜Ð'9Ð;OÐ&PÓQñBó Ró NðBð ‡�×ÑÐUÓVØ‡�×Ñ˜Ð!3Ð5IÐ JÓKñó Ló Wðòð ‡�×ÑÐQÓRØ‡�×ÑÐUÓVñó Wó Sðò*ð ‡�×ÑÐ=Ó>Ø‡�×ÑÐ,¨{¸KÐ.HÓIñó Jó ?ñrK   