Ë
    8Ò^j«£ ã                   ó˜  — 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 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) d dl*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 d dl1m2Z2 d dl3m4Z4m5Z5m6Z6 d dl7m8Z8 d dl9m:Z:m;Z; d dl<m=Z=m>Z>m?Z? d dl<m@ZA d dlBmCZCmDZD d dlEmFZFmGZGmHZH ej’                  j•                  d«      ZKej’                  j•                  d«      ZKdZLdd gd dgddggZMg d¢ZNg d¢ZO e«       ZPd„ ZQej’                  j¥                  deH«      d „ «       ZSej’                  j¥                  deH«      d!„ «       ZTej’                  j•                  d"«      ej’                  j¥                  d#d$d%g«      d&„ «       «       ZUej’                  j•                  d'«      ej’                  j•                  d(«      ej’                  j¥                  d)e e!g«      d*„ «       «       «       ZVej’                  j•                  d'«      ej’                  j•                  d+«      ej’                  j¥                  d)d,ge d-fe!d.fg«      d/„ «       «       «       ZWej’                  j¥                  d0eG«      d1„ «       ZXd2„ ZYd3„ ZZd4„ Z[d5„ Z\d6„ Z]ej’                  j¼                  d7„ «       Z_ej’                  j¥                  d8d9d:g«      d;„ «       Z`ej’                  j•                  d'«      d<„ «       Zad=„ Zbej’                  j¥                  d>d?d@gfdAdBdCgfdDdBdCgfdEd@gfdFdBdCgfg«      dG„ «       ZcdH„ Zdej’                  j¥                  d8d9d:g«      dI„ «       Zeej’                  j¥                  dJd:d9g«      ej’                  j¥                  dKdLdMg«      dN„ «       «       ZfdO„ Zgej’                  j¥                  dPd:d9g«      dQ„ «       Zhej’                  j¥                  dPd:d9g«      dR„ «       Ziej’                  j¥                  d#eL«      ej’                  j¥                  deH«      dS„ «       «       Zjej’                  j¥                  dTdUdVdWœdUdVdXdYœg«      ej’                  j¥                  dZdTd[g«      d\„ «       «       Zkej’                  j•                  d'«      ej’                  j•                  d(«      ej’                  j¥                  d]d^«      ej’                  j¥                  d#eL«      d_„ «       «       «       «       Zlej’                  j¥                  d#eL«      d`„ «       Zmda„ Zndb„ Zoej’                  j¥                  ddc„ geHz   «      dd„ «       Zpde„ Zqdf„ Zrej’                  j¼                  ej’                  j¥                  deH«      dg„ «       «       Zsej’                  j¥                  d-dd g«      dh„ «       Ztdi„ Zuej’                  j¥                  dj ejì                  ddk«      «      ej’                  j¥                  dlg dm¢«      dn„ «       «       Zwej’                  j¥                  d#eL«      ej’                  j¥                  d8d9d:g«      do„ «       «       Zxej’                  j¥                  d# ey ezeL«       ezdpg«      z
  «      «      ej’                  j¥                  dqdr«      ej’                  j¥                  dPdr«      ds„ «       «       «       Z{ej’                  j¥                  d#d%dtg«      ej’                  j¥                  dPdr«      ej’                  j¥                  dudejø                  f«      dv„ «       «       «       Z}ej’                  j¥                  d-dW«      ej’                  j¥                  deH«      dw„ «       «       Z~ej’                  j¥                  d#eL«      ej’                  j¥                  dPd:d9g«      ej’                  j¥                  deH«      dx„ «       «       «       Zdy„ Z€dz„ Z�ej’                  j•                  d{«      ej’                  j¥                  dug d|¢«      ej’                  j¥                  d}d~dg«      d€„ «       «       «       Z‚ej’                  j¥                  dug d�¢«      d‚„ «       Zƒej’                  j¥                  du e�j                  dƒdLd„«      «      ej’                  j¥                  d-g d…¢«      d†„ «       «       Z…ej’                  j¥                  dKd‡«      dˆ„ «       Z†ej’                  j¥                  d.d‰ e�j                  d ddL«      f«      ej’                  j¥                  dKd‡«      dŠ„ «       «       Zˆej’                  j¥                  dKd‡«      d‹„ «       Z‰dŒ„ ZŠej’                  j•                  d{«      d�„ «       Z‹ej’                  j¥                  du e�j                  dƒdLd„«      «      ej’                  j¥                  d-g d…¢«      dŽ„ «       «       ZŒd�„ Z�d�„ ZŽej’                  j•                  d{«      ej’                  j¥                  d# ey ezeL«       ezdpg«      z
  «      «      d‘„ «       «       Z�ej’                  j¥                  d# ey ezeL«       ezdpg«      z
  «      «      d’„ «       Z�ej’                  j¼                  ej’                  j¥                  d“dd:d”d•d–œd d9d—d•d–œd d:d—d•d–œg«      d˜„ «       «       Z‘d™„ Z’ej’                  j¥                  d#g dš¢«      ej’                  j¥                  dPd:d9g«      d›„ «       «       Z“ej’                  j¥                  dZdœd�dœdYœd[g«      dž„ «       Z”ej’                  j¥                  d#eL«      ej’                  j¥                  deH«      dŸ„ «       «       Z•d „ Z–d¡„ Z—d¢„ Z˜ ed9¬£«      d¤„ «       Z™d¥„ Zšej’                  j¥                  d#eL«      d¦„ «       Z›d§„ Zœd¨„ Z�ej’                  j•                  d'«      ej’                  j•                  d(«      ej’                  j¥                  d©e e!g«      dª„ «       «       «       Zžej’                  j•                  d'«      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²d:d9g«      ej’                  j¥                  d³d:d9g«      ej’                  j¥                  d´d:d9g«      ej’                  j¥                  dZg dµ¢«      ej’                  j¥                  d¶ e?«       «      ej’                  j•                  d"«      d·„ «       «       «       «       «       «       Z£ej’                  j•                  d¸«      ej’                  j¥                  d}d¹dºg«      d»„ «       «       Z¤ej’                  j•                  d««      d¼„ «       Z¥ej’                  j•                  d'«      d½„ «       Z¦ej’                  j¥                  d²d9d:g«      ej’                  j¥                  d¶ e?«       «      ej’                  j•                  d"«      d¾„ «       «       «       Z§ej’                  j¥                  djg d¿¢«      edÀ„ «       «       Z¨ej’                  j¥                  dKdLdMg«      ej’                  j¥                  dPd9d:g«      edÁ„ «       «       «       Z©edÂ„ «       Zªy)Ãé    N)Úassert_allcloseÚassert_array_almost_equalÚassert_array_equal)Úsparse)ÚLinAlgWarningÚsvd)Úconfig_context)ÚHalfMultinomialLoss)Úclone)ÚRecordingCallbackÚskip_callback_test_if_wasm)Ú	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)ÚGridSearchCVÚKFoldÚLeaveOneGroupOutÚStratifiedKFoldÚcross_val_scoreÚtrain_test_split)ÚOneVsRestClassifier)ÚLabelEncoderÚStandardScalerÚscale)Úl1_min_c)Úcompute_class_weightÚshuffle)Ú_atol_for_typeÚmove_toÚ)yield_namespace_device_dtype_combinations©Údevice)Ú_array_api_for_testsÚ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   r8   r8   )é   r8   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   r8   ©ÚaxisN)ÚlenÚnpÚuniqueÚshapeÚfitÚpredictr   Úclasses_Úpredict_probar   ÚsumÚonesÚargmax)ÚclfÚXÚyÚ	n_samplesÚclassesÚ	n_classesÚ	predictedÚprobabilitiess           ús/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/sklearn/linear_model/tests/test_logistic.pyÚcheck_predictionsrQ   E   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×%Ñ%¨1Ð%Ó-¬r¯w©w°yÓ/AÔBÜ�}×+Ñ+°Ð+Ó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)rQ   r   rI   ÚY1©rS   s    rP   Útest_predict_2_classesr\   W   s|   € ô Ô(Ó*¬A¬rÔ2ÜÔ(Ó*©M¼!Ó,<¼bÔAäÔ(¨3Ô/´´BÔ7ÜÔ(¨3Ô/±¼qÓ1AÄ2ÔFäÔ(°uÔ=¼qÄ"ÔEÜÔ(°uÔ=¹}ÌQÓ?OÔQSÕTrR   c                 óŒ   — t        t        d¬«      t        t        «       t        t        d¬«       | t        «      t        «       y )Né
   rV   )rQ   r   rI   ÚY2r[   s    rP   Útest_predict_3_classesr`   e   s+   € äÔ(¨2Ô.´´2Ô6ÜÔ(¨2Ô.±¼aÓ0@Ä"ÕErR   z,error::sklearn.exceptions.ConvergenceWarningÚsolverr1   r4   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)	éüÿÿÿéýÿÿÿéþÿÿÿr7   r   r8   r9   é   é   )	r   r   r8   r   r8   r8   r8   r   r   )	r   r   r   r8   r8   r8   r8   r8   r8   ç      ð?r   Tç:Œ0âŽyE>é,  )rW   rY   ÚtolÚmax_iterra   g…Ÿÿ;Á�ì?çñhãˆµøä>©Úrtolg&+4uÜ?gGÈG‹ÔÙ�?)	r   r   r   r8   r8   r8   r9   r9   r9   )g:Mup»¾¿gH"qœ†ÒÌ?gÕôóÃœéº¿g´ÀÞ‰ÀUØ¿g²	¸Wd‰¿g0R´Éf¿g§'u±ª=¨?gnH‡öWØ?g;%‡›ö¡¿©ro   ÚatolN)	r>   ÚarrayÚTr   r@   rA   r   Ú
intercept_Úcoef_)ra   rI   rJ   Úglms       rP   Útest_logistic_glmnetrw   k   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õô Ø�	‰	à˜^Ð,Ø˜Ð/Ø˜=Ð)ð	
ð
 Øö	rR   z1ignore:The default value.*scoring.*:FutureWarningz.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©r2   zThe 'z4' solver does not support multiclass classification.©ra   ©Úmatch)r1   r3   r4   r5   z/Solver %s supports only 'l2' or None penalties,r8   )ra   Úl1_ratio©r8   )ra   Ú	l1_ratios)r1   r3   r4   r5   r6   z1Solver %s supports only dual=False, got dual=TrueT)ra   Údualz;Only 'saga' solver supports elasticnet penalty, got solver=ú.ç      à?)rƒ   z6penalty=None is not supported for the liblinear solverr2   ©rW   ra   )
ÚirisÚdataÚtargetÚpytestÚraisesÚ
ValueErrorrA   r   r>   Úinf)rx   rI   rJ   ra   ÚmsgÚlrs         rP   Ú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~   r€   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Ú
elasticnetr6   )Úpenaltyra   z.*l1_ratio.*r|   r8   r9   rf   rg   r   © )rˆ   r‰   rŠ   rA   r>   rr   )rx   r�   Úmodels      rP   Ú$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 ©N)r…   r†   r@   Útarget_namesr‡   r#   r   rA   Údecision_functionÚsparsifyr   Úissparseru   Údensifyr   )r–   rK   Ú
n_featuresr‡   rI   rH   Úpred_d_dÚpred_s_dÚsp_dataÚpred_s_sÚpred_d_ss              rP   Ú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¨Õ1rR   c                  ó   — t         j                  j                  d«      } | j                  d«      }t        j                  |j
                  d   «      }d|d<   t        d¬«      }|d d }t        j                  t        d¬«      5  |j                  t        |«       d d d «       t        j                  t        d¬«      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^   ©Úrandom_stater7   z.Found input variables with inconsistent numberr|   zX has 12 features, but)rf   é   )r>   ÚrandomÚRandomStateÚrandom_samplerF   r@   r   rˆ   r‰   rŠ   rA   rI   rB   )ÚrngÚX_Úy_rH   Úy_wrongs        rP   Útest_inconsistent_inputr±     sá   € ä
�)‰)×
Ñ
 Ó
"€CØ	×	Ñ	˜7Ó	#€BÜ	�‰�—‘˜!‘Ó	€BØ€B€q�Eä
¨!Ô
,€Cð ��"ˆg€Gä	�‰ÜÐJô
ñ ð 	�‰”�7Ô÷ô 
�‰”zÐ)AÔ	Bñ <Ø�‰��B‹×Ñ × 1Ñ 1°'Ó :Ô;÷<ð <÷ð ú÷<ð <ús   ÂC8Â>1DÃ8DÄDc                  óÆ   — t        «       } | j                  t        t        «       d| j                  d d  d| j
                  d d  t        | j                  t        «      d«       y )Nr   )r   rA   rI   rZ   ru   rt   r   rš   ©rH   s    rP   Útest_write_parametersr´   $  sG   € ä
Ó
€CØ‡G�GŒAŒr„NØ€C‡I�I‰a€LØ€C‡N�N‘1ÐÜ˜c×3Ñ3´AÓ6¸Õ:rR   c                  ó  — t        j                  t        t         j                  ¬«      } t         j                  | d<   t        «       }t        j                  t        d¬«      5  |j                  | t        «       d d d «       y # 1 sw Y   y xY w)N©Údtype©r   r8   zInput X contains NaN.r|   )r>   rr   rI   Úfloat64Únanr   rˆ   r‰   rŠ   rA   rZ   )ÚXnanrH   s     rP   Útest_nanr¼   -  s_   € ô �8‰8”AœRŸZ™ZÔ(€DÜ—‘€Dˆ�JÜ
Ó
€Cä	�‰”zÐ)@Ô	Añ Ø�‰�”bÔ÷÷ ñ ú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 )NrU   r9   r8   r7   r   rg   r^   ©r5   r6   Frm   éè  )rL   ÚCsrY   rk   ra   rl   r¨   )rW   rY   rk   ra   r¨   rl   zwith solver = %s)ÚdecimalÚerr_msg)r1   r3   r4   r2   r5   r6   ç     @�@ç�íµ ÷Æ°>ç     ˆÃ@)rL   rÀ   rk   ra   Úintercept_scalingr¨   )rW   rk   rÆ   r¨   ra   )r>   rª   r«   ÚconcatenateÚrandnÚlogspacer-   r   Ú	enumerater   rA   ru   Úravelr   rt   )Úglobal_random_seedr­   rI   rJ   rÀ   Úfra   ÚcoefsÚ_ÚirW   r�   Úlr_coefs                rP   Útest_consistency_pathrÒ   8  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ö	
ñ+
rR   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   rU   r9   r8   r7   rÃ   ç        )rL   rÀ   rk   rl   r¨   Úverbosez-lbfgs failed to converge after 1 iteration(s)z!Increase the number of iterationszscale the dataz%linear_model.html#logistic-regression)r>   rª   r«   rÇ   rÈ   rˆ   Úwarnsr   r   r=   ÚmessageÚargs)r­   rI   rJ   rÀ   ÚrecordÚwarn_msgs         rP   Ú.test_logistic_regression_path_convergence_failrÛ   x  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é   ©rK   r¨   Tçü©ñÒMbP?r2   )r¨   r�   rk   ra   r8   z)Arrays are not almost equal to 6 decimalsr|   )r   r   rA   r   ru   rˆ   r‰   ÚAssertionError)rÌ   rI   rJ   Úlr1Úlr2Úlr3rŒ   s          rP   Ú 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'Úuse_legacy_attributesTFc           
      ó†  — d\  }}}t         j                  j                  | «      }|j                  ||«      }t        j                  |j                  d|j                  |«      z  «      «      }||j                  «       z  }||j                  «       z  }t        dgd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¦   rf   r¦   rh   ©rÔ   Fr2   Úneg_log_loss)rÀ   r€   rY   r¨   ra   ÚcvÚscoringrå   )rW   rY   r¨   ra   r8   r7   r9   r   r   )r>   rª   r«   rÈ   ÚsignÚdotÚmeanÚstdr   rA   r   r   ru   r@   r   rC   r=   ÚCs_Ú
l1_ratios_ÚasarrayÚlistÚcoefs_paths_ÚvaluesÚscores_Ú
isinstanceÚC_ÚfloatÚ	l1_ratio_)rÌ   rå   rK   rž   Ún_cvr­   ÚX_refrJ   Úlr_cvr�   Ún_CsÚn_l1_ratiosÚcoefs_pathsÚscoress                 rP   Útest_logistic_cvr  ³  sl  € ð #+Ñ€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¨[¸$Ð&?Ò?Ð?Ñ?rR   c                 óˆ   — t        | ¬«      \  }}t        dgdd| ¬«      }|j                  ||«       |j                  dk(  sJ ‚y)aI  Test that non-elasticnet penalty with refit=False and
    use_legacy_attributes=False works without error.

    For non-elasticnet penalties, l1_ratio=0.0 (equivalent to pure L2).
    Previously, None was stored, which caused float() to raise a
    TypeError when use_legacy_attributes=False converted the value to a scalar.
    r§   rÔ   F)r€   Úrefitrå   r¨   N)r   r   rA   rû   )rÌ   rI   rJ   rþ   s       rP   Ú+test_logistic_cv_refit_false_non_elasticnetr  á  sL   € ô Ð,>Ô?�D€A€qÜ Ø�%ØØ#Ø'ô	€Eð 
‡I�Iˆa�„OØ�?‰?˜cÒ!Ð!Ñ!rR   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š™™™™™Ù?çš™™™™™é?rƒ   )Úcallsr  )Úselfs    rP   Ú__init__z9test_logistic_cv_mock_scorer.<locals>.MockScorer.__init__ù  s   € ØˆDŒJÚ.ˆD�KrR   Nc                 óŽ   — | j                   | j                  t        | j                   «      z     }| xj                  dz  c_        |S )Nr8   )r  r  r=   )r  r”   rI   rJ   Úsample_weightÚscores         rP   Ú__call__z9test_logistic_cv_mock_scorer.<locals>.MockScorer.__call__ý  s4   € Ø—K‘K §
¡
¬S°·±Ó-=Ñ =Ñ>ˆEØ�JŠJ˜!‰O�JØˆLrR   r˜   )Ú__name__Ú
__module__Ú__qualname__r  r  r“   rR   rP   Ú
MockScorerr	  ø  s   „ ò	/ô	rR   r  )r8   r9   rf   rg   r9   ©r   F)rÀ   r€   rì   rë   rå   r   r§   r8   N)	r   r   rA   rù   r  r=   r  rB   r  )r  Úmock_scorerrÀ   rë   r�   rI   rJ   Úcustom_scores           rP   Útest_logistic_cv_mock_scorerr  õ  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Ø×Ñ Ò!Ð!Ñ!rR   zscoring, multiclass_agg_listÚaccuracyÚ Ú	precisionÚ_macroÚ	_weightedÚf1rê   Úrecallc                 óÀ  — t        dddd¬«      \  }}t        j                  d«      t        j                  dd«      }}t        d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 )NrU   é*   rf   é   )rK   r¨   rM   Ún_informativeéP   rh   r1   r„   Úl2r’   )rW   Ún_jobsÚ
warm_start)rL   rÀ   rì   Úmax_squared_sumr  Úscore_paramsr9   r   )
r   r>   Úaranger   Ú
get_paramsrA   r   r   r   r?   )rì   Úmulticlass_agg_listrI   rJ   ÚtrainÚtestr�   ÚparamsÚkeyÚ	averagingÚscorers              rP   Ú"test_logistic_cv_multinomial_scorer6    s  € ô& Ø B°!À1ô�D€A€qô —)‘)˜B“-¤§¡¨2¨sÓ!3ˆ4€EÜ	˜c¨'Ô	2€BØ�]‰]‹_€Fð
 €Fˆ9Ñð -ò ˆØ�3‰Kðà‡F�Fˆ1ˆU‰8�Q�u‘XÔØ(ò 
ˆ	Ü˜G iÑ/Ó0ˆÜ!Ü!ØØØØð	ô
 Ÿ	™	 !›Ø�5ØØ $Ø"Ø!ñð ñð ñð ññ �2�q˜‘w  $¡Ó(õ	
ñ
rR   c                  óš  — d\  } }}t        | ||dd¬«      \  }}t        «       j                  g d¢«      j                  |«      }t	        j
                  |«      dz
  }t        «       }t        ddd¬	«      }t        «       }t        d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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ç   rf   r   )rK   rž   rM   r&  r¨   )ÚbarÚbazÚfoor8   Frê   )rÀ   rå   rì   >   r8  r9  r:  )r8   r9   r^   r9   )Úclass_weightr8  r9  N)r   r!   rA   Úinverse_transformr>   rr   r   r   r   ru   rD   ÚsortedrC   r?   rB   Úset)
rK   rž   rM   rý   rJ   Úy_strr�   rþ   Úlr_strÚ	lr_cv_strs
             rP   Ú2test_multinomial_logistic_regression_string_inputsrB  U  sl  € à'/Ñ$€Iˆz˜9Ü"ØØØØØô�H€Eˆ1ô ‹N×ÑÒ4Ó5×GÑGÈÓJ€Eä
�‰�‹�a‰€Aä	Ó	€BÜ ØØ#Øô€Eô
  Ó!€FÜ$ØØ#Øô€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ô %ÚØ#Øô÷ 
�cˆ%�Óð	 ô
 ”"—)‘)˜I×-Ñ-¨eÓ4Ó5Ó6Ò:OÒOÐOÐOô #¸À!ÈAÑ0NÔO×SÑSØˆuó€Iô ”"—)‘)˜I×-Ñ-¨eÓ4Ó5Ó6¸5À%¸.ÒHÐHÑHrR   c           
      ó.  — t         j                  t         j                  }}|j                  \  }}d}t	        |«      }t        |j                  ||«      «      }t        |d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d¬«      j                  ||«      }dD �]X  }|dv rdnd}t        ||d|dv rdnd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 ‚ �ŒKd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 ‚ �Œ[ 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d ¬!«      j                  ||«      }t        j:                  |j"                  d"k(  «      sJ ‚t        |d#t        j*                  d$dd«      d¬%«      j                  ||«      }|j@                  d&k(  sJ ‚|j"                   }t        j:                  |d'kD  «      sJ ‚t        jL                  |«      d(k  sJ ‚y c c}w ))Nr9   r4   Trê   )rë   ra   rå   rì   rf   ©r   r8   r9   r^   r8   )r^   r{   Úestimator__Crc   rg   )Únum©rì   )r1   r3   r5   r6   r¾   éô  é   r$  rß   ç{®Gáz„?)ra   rl   r¨   rk   rë   rì   rå   r1   r   r7   r;   )re   r7   ©Ún_splitsFr  )rë   rå   rì   rÔ   Úneg_brier_scoreéúÿÿÿ)rë   rì   rÀ   rå   rÄ   gffffffö?gš™™™™™ù?)'r…   r†   r‡   r@   r   rô   Úsplitr   rA   ru   r   rC   r>   ró   rõ   rö   rñ   r÷   r   r    r   rÉ   r#   r  ÚrangeÚswapaxesÚreshaper=   rE   ÚallÚdiffrø   rù   rú   rû   r   r?   r>  Úmin)rå   rI   rJ   rK   rž   rü   rë   Úprecomputed_foldsrH   r  r  Úclf_ovrra   rl   Ú	clf_multiÚmulti_scoreÚ	ovr_scoreÚfoldÚcrÎ   ÚnormsÚn_foldsÚn_csr   rM   Ún_dofrL   r0  r1  Úbrier_scoress                                 rP   Útest_multinomial_cv_irisrb  “  s,  € ô �9‰9”d—k‘k€q€AØŸG™GÑ€Iˆzð €DÜ	˜Ó	€BÜ˜RŸX™X a¨›^Ó,Ðô ØØ Ø"Øô	€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ðs@3ôJ 
˜Ô	€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ô
 ØØ#Øô÷ 
�cˆ!ˆQƒið	 ô �6‰6�#—+‘+ Ñ$Ô%Ð%Ð%ô ØØ!Ü�;‰;�r˜1˜bÓ!Ø#ô	÷
 
�cˆ!ˆQƒið ð �6‰6�TŠ>Ðˆ>Ø—K‘K�<€Lô �6‰6�, Ñ(Ô)Ð)Ð)ä�6‰6�,Ó 'Ò)Ð)Ñ)ùòAs   Í ZÚenable_metadata_routingrM   r9   rf   c           
      ón  — t        | ¬«      5  t        j                  g d¢«      dd|z   }t        j                  d|z  «      dd…df   }t	        |¬«      }|j                  ||«      D ]~  \  }}t        t        j                  ||   «      «      |dz
  k(  sJ ‚t        t        j                  ||   «      «      dk(  sJ ‚t        ||   «      t        ||   «      z  t        «       k(  rŒ~J ‚ t        |dt        j                  dd	d
«      dd¬«      j                  ||«      }|j                  dk(  sJ ‚t        |j                  ||«      «      D ]Ô  \  }\  }}t        |j                  ¬«      j                  ||«      }	|j                  |dddd…dd…f   |	_        |j                  |dddd…df   |	_        |dk  r't%        ||   |	j'                  ||   «      dddg¬«      }
n%t%        ||   |	j'                  ||   «      g d¢¬«      }
t)        |j*                  |ddf    |
«       ŒÖ 	 ddd«       y# 1 sw Y   yxY w)zlTest that LogisticRegressionCV correctly computes scores even when classes are
    missing on CV folds.
    ©rc  )Úarf  Úbrg  r\  r\  Nr9   rK  r8   rM  rN  r%  r¦   r  F)rë   rì   rÀ   r€   rå   rÄ   rV   r   r7   rg  rf  )Ú	pos_labelÚlabels)rf  rg  r\  )ri  )r	   r>   rr   r-  r   rO  r=   r?   r>  r   rÉ   rA   rù   rÊ   r   rõ   ru   rt   r   rD   r   r÷   )rc  rM   rJ   rI   rë   r0  r1  rH   rÐ   Úclf2Úbss              rP   Ú+test_logistic_cv_folds_with_classes_missingrl    s+  € ô 
Ð0GÔ	Hñ '7Ü�H‰HÒ3Ó4°_°q¸9±}ÐEˆÜ�I‰I�a˜)‘mÓ$¢Q¨ WÑ-ˆô ˜IÔ&ˆàŸ8™8 A q›>ò 	9‰KˆE�4Ü”r—y‘y  5¡Ó*Ó+¨y¸1©}Ò<Ð<Ð<Ü”r—y‘y  4¡Ó)Ó*¨aÒ/Ð/Ð/Ü�q˜‘x“=¤3 q¨¡w£<Ñ/´3³5Ó8Ð8Ð8ð	9ô
 #ØØ%Ü�{‰{˜2˜q !Ó$ØØ"'ô
÷ ‰#ˆa�‹)ð 	ð �v‰v˜Š~Ðˆ~Ü )¨"¯(©(°1°a«.Ó 9ò 	7ÑˆA‰}��tô &¨¯©Ô/×3Ñ3°A°qÓ9ˆDØ×)Ñ)¨!¨Q°²1°c°r°c¨/Ñ:ˆDŒJØ!×.Ñ.¨q°!°Qº¸2¨~Ñ>ˆDŒOØ˜AŠ~Ü%Ø�d‘GØ×&Ñ& q¨¡wÓ/Ø!Ø ˜:ô	‘ô &Ø�d‘G˜T×/Ñ/°°$±Ó8Âô�ô ˜SŸ[™[¨¨A¨q¨Ñ1Ð1°2Õ6ñ%	7÷+'7÷ '7ñ '7ús   �CH+Ã&D;H+È+H4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¦   )rK   rž   r&  r¨   r  F)rW   rY   r¨   ra   r9   ©Úrrß   ç-Cëâ6?zCompare ú vs )rq   ro   rÂ   Nr“   )	r   ÚdictÚSOLVERSr   rA   Ú	itertoolsÚcombinationsr   ru   )rÌ   rI   rJ   r2  ra   ÚclassifiersÚsolver_1Úsolver_2s           rP   Ú test_logistic_regression_solversrz  N  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 rY   c                 ó2  — d\  }}}t        ||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 }
}	|
j                  «       D ]+  \  }	}|j                  j                  ||fk(  rŒ"J d|	› d�«       ‚ 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|› �¬«       Œ~ t        t        «      t        dg«      z
  D �	ci c]5  }	|	t        ddg|	|j                  |	d«      dddœ|¤Žj                  ||«      “Œ7 }}	|D ]U  }	t        ||	   j                  |
|	   j                  d¬«       | sŒ.t        ||	   j                  |
|	   j                  d¬«       ŒW yc c}	w c c}	w )zATest solvers converge to the same result for multiclass problems.)rÝ   rÝ   rf   r^   r   ©rK   rž   r&  rM   r¨   ri   r$  )rY   rk   r¨   rn  i N  ©r1   r5   r6   r2   rU   ©ra   rl   zSolver z" generates coef_ with wrong shape.r9   ro  r6   ç{®Gázt?rß   rr  ©ro   rÂ   rh   Frê   )rÀ   ra   rl   rå   rì   rJ  rn   Nr“   )r   rs  r>  rt  r   ÚgetrA   Úitemsru   r@   ru  rv  r   rt   r   )rY   rK   rž   rM   rI   rJ   rk   r2  Úsolver_max_iterra   rw  rH   rx  ry  Úclassifiers_cvs                  rP   Ú+test_logistic_regression_solvers_multiclassr…  h  sœ  € ð (1Ñ$€Iˆz˜9ÜØØØØØô�D€A€qð €CÜ °3ÀRÔH€Fð !$¨F¸FÑC€Oô œ'“l¤S¨+¨Ó%7Ñ7ö	ð ð 	Ô"ð 
Ø O×$7Ñ$7¸ÀÓ$Dñ
ØHNñ
ç
‰#ˆa�‹)ñ	ð€Kð ð #×(Ñ(Ó*ò 
‰ˆ�Ø�y‰y�‰ 9¨jÐ"9Ó9ð 	
Ø�f�XÐ?Ð@ó	
Ð9ð
ô
 (×4Ñ4°[ÀAÔFò Ñˆ�(ÜØ˜Ñ!×'Ñ'Ø˜Ñ!×'Ñ'Ø" fÒ,°¸FÒ0B‘ÈØ�j  X JÐ/õ		
ò ÜØ˜HÑ%×0Ñ0Ø˜HÑ%×0Ñ0Ø&¨&Ò0°HÀÒ4F‘TÈTØ#˜* D¨¨
Ð3ö	ðô6 œ'“l¤S¨+¨Ó%7Ñ7ö
ð ð 	Ô$ð 
ØˆuØØ$×(Ñ(¨°Ó5Ø"'Ø"ñ
ð ñ
÷ ‰#ˆa�‹)ñ	ð
€Nð 
ð !ò 	ˆÜØ˜6Ñ"×(Ñ(¨+°fÑ*=×*CÑ*CÈ$õ	
ò ÜØ˜vÑ&×1Ñ1Ø˜FÑ#×.Ñ.Øöñ	ùòQùò:
s   Á6HÅ8:H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.)rU   rg   rf   r  )rK   rž   Úeffective_rankÚtail_strengthr¨   r8   Nr7   rß   rU   rf   )ÚlowÚhighÚsize)rM   )ÚnÚpvals)r   r   g•Ö&è.>)rY   r¨   rn  é'  r}  ri   r¾   r2   )rW   ra   rk   rl   r   r;   ç»½×Ùß|Û=)rq   rÂ   r9   ro  r6   r  gü©ñÒMb`?rr  r€  r“   ) r>   rª   r«   r   r   rS  ÚmaxrU  ÚuniformrR  rs   r
   ÚlinkÚinverseÚzerosrP  ÚargwhereÚmultinomialrs  r>  rt  r   r‹   r�  rA   Úkeysr   ru   rE   ru  rv  rt   )rY   rÌ   rK   rž   rM   r­   rI   ÚUÚsÚVtÚcoefÚ	interceptÚraw_predictionÚlossÚprobarJ   rÐ   rk   r2  rƒ  Ú
solver_tolra   Ú
regressorsrx  ry  s                            rP   Ú7test_logistic_regression_solvers_multiclass_unpenalizedr¢  ®  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&c                 ó¶  — t        dd| ¬«      \  }}d||dk  <   t        g d¢ddd¬	«      }t        d|d
ddœ|¤Ž}|j                  ||«       t        d|d
ddœ|¤Ž}|j                   ||«      |«       |dv rdnd}t	        |j
                  |j
                  |¬«       t	        |j                  |j                  |¬«       |j                  |j                  k(  sJ ‚y)z?Test that sparse and dense X gives same result for each solver.rU   r¦   ©rK   rž   r¨   rÔ   )r  r8   ç      $@rŽ  gH¯¼šò×z>r$  )rÀ   rl   rk   r¨   Frê   )ra   rå   rì   r¾   g¸…ëQ¸®?rm   rn   Nr“   )r   rs  r   rA   r   ru   rt   rù   )	rÌ   ra   rS   rI   rJ   r2  rH   Úclfsro   s	            rP   Útest_logistic_cv_sparser§  ô  sí   € ô Ø !Ð2Dô�D€A€qð €A€aˆ#�g�JÜ’^¨f¸$ÈRÔP€Fä
ð ØØ#Øñð ñ	€Cð ‡G�GˆAˆq„MÜð ØØ#Øñð ñ	€Dð 	‡H�H‰]˜1Ó˜qÔ!à˜_Ñ,‰4°$€DÜ�D—J‘J §	¡	°Õ5Ü�D—O‘O S§^¡^¸$Õ?Ø�7‰7�c—f‘fÒÐÑrR   Úweightr  çš™™™™™É?r¸   rƒ   rD  r;  Úbalancedc           	      ó  — t        | «      }|dk(  r| }t        ddddd||¬«      \  }}t        dd|dd¬	«      }t        dd
ddœ|¤Ž}t	        t
        ¬«      5  |j                  ||«       ddd«       t        t        «      t        g d¢«      z
  D ]c  }t        d|ddœ|¤Ž}	|dv r|	j                  dd|dz   ¬«       |	j                  ||«       t        |	j                  |j                  d|› d�¬«       Œe y# 1 sw Y   Œ�xY w)z+Test class_weight for LogisticRegressionCV.r¨  rI  rf   r   )rK   rž   Ú
n_repeatedr&  Ún_redundantrM   r¨   r8   Fri   )rÀ   rY   r;  rk   rå   r1   rê   )ra   rì   ©ÚcategoryN)r1   r2   r4   r¾   g¬CÒÑ]r2<rŽ  )rk   rl   r¨   rß   z	 vs lbfgsr€  r“   )r=   r   rs  r   r-   r   rA   r>  rt  Ú
set_paramsr   ru   )
r¨  r;  rÌ   rM   rI   rJ   r2  Ú	clf_lbfgsra   rH   s
             rP   Ú(test_logistic_regressioncv_class_weightsr²    s=  € ô �F“€IØ�xÒØˆäØØØØØØØ'ô�D€A€qô ØØØ!ØØ#ô€Fô %ð ØØñð ñ€Iô 
Ô"4Ô	5ñ Ø�‰�a˜Ô÷ô ”g“,¤Ò%NÓ!OÑOò 
ˆÜ"ð 
ØØ"ñ
ð ñ
ˆð
 �_Ñ$Ø�N‰NØ EÐ8JÈQÑ8Nð ô ð 	�‰��1ŒäØ�I‰I�y—‘¨T¸f¸XÀYÐ;Oö	
ñ
÷ð ús   ÁC5Ã5C>Úproblem)Úsinglerë   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)Nrn  rf   r¦   r9   r   )rK   rž   r&  rM   r­  r¨   Fr5   é † r¿   ri   ©r¨   rY   rl   rk   ©r‹  r;   r´  rë   r8   )Úgroupsr^   )rÀ   rë   ra   r1   Úignore©r  rm   ©rq   r“   )r   r>   rª   r«   rF   r@   Ú
startswithÚcopyÚrandintÚrepeatÚastypeÚintr   r   rÇ   Úfullrô   r   rO  ÚupdateÚwarningsÚcatch_warningsÚsimplefilterr   rA   r   r÷   ru   )r³  ra   rÌ   Ún_samples_per_cv_groupÚn_cv_groupsrI   rJ   r­   ÚswÚkw_weightedÚkw_repeatedÚ
X_repeatedÚ
y_repeatedrx   Úgroups_weightedÚsplits_weightedÚgroups_repeatedÚsplits_repeatedÚclf_sw_weightedÚclf_sw_repeateds                       rP   Ú'test_logistic_regression_sample_weightsrÕ  M  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Ñ<Ô=äŸ)™) O°R·Y±Y¼s³^È!ÔLˆÜÜÓ×$Ñ$ Z¸Ð$ÓHó
ˆð 	×Ñ "¨OÑ<Ô=áÑ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.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 )Nrj   r¦   rf   r9   r|  r8   Fr¶  ri   r·  r¸   )ra   r;  ra   r»  rÄ   r¼  r“   ©r   r   rA   r   ru   )ra   rÌ   rI   rJ   r  rË  Ú	clf_cw_12Ú	clf_sw_12s           rP   Ú-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Ö@rR   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 )Nrj   r¦   rf   r9   r|  r8   r2   Fr¸   rŽ  çê-�™—q=)ra   rY   r;  r~   rl   rk   r¨   )ra   rY   r~   rl   rk   r¨   r�  r¼  r   T)ra   rY   r;  r~   rl   rk   r�   r¨   )ra   rY   r~   rl   rk   r�   r¨   r×  )rÌ   rI   rJ   r  Úclf_cwÚclf_sws         rP   Ú2test_sample_and_class_weight_equivalence_liblinearrß  ´  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Ö;rR   c                 óv   — t        j                  | «      }t        d|| ¬«      }t        t	        ||«      «      }|S )Nrª  )rL   rJ   )r>   r?   r%   rs  Úzip)rJ   rL   r;  Úclass_weight_dicts       rP   Ú _compute_class_weight_dictionaryrã  ï  s5   € ä�i‰i˜‹l€GÜ'¨
¸GÀqÔI€LÜœS ¨,Ó7Ó8ÐØÐrR   c                 ó   — | S r˜   r“   )Úxs    rP   ú<lambda>ræ  ÷  s   € °Q€ rR   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é-   r2   r4   éÐ  )ra   rl   r¨   r;  rª  rf   rq  rn   r   r»  rU   r¿   r%  ©rÁ   r“   )r#   r…   r†   r‡   rã  r>  rt  rs  r   rA   r=   rC   r   ru   r>   rF   r@   r   )rÌ   rS   ÚX_irisrI   rJ   râ  ra   r2  Úclf1rj  rÊ  r\  Úclf3s                rP   Ú&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rR   c                 óì   — t        dd| ¬«      \  }}t        dd| ¬«      }|j                  ||«       t        j                  d«      }t        |j                  |«      t        j                  d«      «       y )Nr¦   r¤  Fr2   )rY   ra   r¨   )r¦   r¦   )r   r   rA   r>   r”  r   rB   )rÌ   rI   rJ   rH   s       rP   Ú%test_liblinear_decision_function_zerorð    sg   € ô Ø Ð0Bô�D€A€qô Ø KÐ>Pô€Cð ‡G�GˆAˆq„Mô 	�‰�Ó€AÜ�s—{‘{ 1“~¤r§x¡x°£{Õ3rR   c                  ór   — t        d¬«      } | j                  t        t        «       | j                  dk(  sJ ‚y )NFrX   rÔ   )r   rA   rI   rZ   rt   r³   s    rP   Ú"test_logreg_intercept_scaling_zerorò  2  s-   € ô ¨5Ô
1€CØ‡G�GŒAŒr„NØ�>‰>˜SÒ Ð Ñ rR   c                 óâ  — t         j                  j                  | «      }d}t        |d| ¬«      \  }}|j	                  |df¬«      }t        j
                  |df¬«      }t        j                  |||fd¬	«      }t        dd
ddd| ¬«      }t        dddi|¤Ž}	|	j                  ||«       t        dddi|¤Ž}
|
j                  ||«       t        |
j                  |	j                  d¬«        ||«      }t        dddi|¤Ž}|j                  ||«       t        |j                  |	j                  «       t        dddi|¤Ž}|j                  ||«       t        |j                  |
j                  «       y )NrU   rÝ   r¤  rf   r¸  r9   ©r@   r8   r;   rh   FrŽ  r�  )r~   rW   rY   rl   rk   r¨   ra   r2   r6   g333333Ó?r¼  r“   )r>   rª   r«   r   ÚnormalrF   rÇ   rs  r   rA   r   ru   )rÌ   rS   r­   rK   rI   rJ   ÚX_noiseÚ
X_constantr2  Úlr_liblinearÚlr_sagaÚX_spÚlr_liblinear_spÚ
lr_saga_sps                 rP   Útest_logreg_l1rý  <  sa  € ô �)‰)×
Ñ
Ð 2Ó
3€CØ€IÜØ¨Ð9Kô�D€A€qð �j‰j˜y¨!˜nˆjÓ-€GÜ—‘ 	¨1˜~Ô.€JÜ
�‰˜˜7 JÐ/°aÔ8€AÜØØ
ØØØØ'ô€Fô &ÑC¨[ÐC¸FÑC€LØ×Ñ�Q˜Ôä Ñ9¨Ð9°&Ñ9€GØ‡K�K��1Ôä�G—M‘M <×#5Ñ#5¸CÕ@ñ ˜Ó€DÜ(ÑF°ÐF¸vÑF€OØ×Ñ˜˜aÔ Ü�O×)Ñ)¨<×+=Ñ+=Ô>ä#Ñ<¨6Ð<°VÑ<€JØ‡N�N�4˜ÔÜ�J×$Ñ$ g§m¡mÕ4rR   c           	      ó  — t        dd| ¬«      \  }}t        d| dd¬«      }t        ddg|fd	d
ddœ|¤Ž}|j                  ||«       t	        dd|dœ|¤Ž}|j                  ||«       t        |j                  |j                  «       y )NrU   rÝ   r¤  r6   rŽ  rÜ  )ra   r¨   rl   rk   rh   Trê   F)rÀ   r€   r  rì   rå   ©rW   r~   r“   )r   rs  r   rA   r   r   ru   )rÌ   r~   rI   rJ   Úcommon_paramsrþ   r�   s          rP   Ú!test_logistic_regression_cv_refitr  e  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 §¡Õ*rR   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Ý   rf   )rK   rž   r¨   rM   r&  )r   r   rA   r   rD   r    Ú_predict_proba_lr)rÌ   rI   rJ   rX  Úclf_multi_lossrW  Úclf_ovr_lossÚclf_wrong_losss           rP   Ú%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Ò*Ð*Ñ*rR   rl   r¦   zsolver, message))r3   zAnewton-cg failed to converge.* Increase the number of iterations.)r2   z@Liblinear failed to converge, increase the number of iterations.)r5   ú?The max_iter was reached which means the coef_ did not converge)r6   r  )r1   úlbfgs failed to converge)r4   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   r9   r4   r8   z/solver newton-cholesky might converge very fastgVçž¯Ò<)rl   rk   r¨   ra   r|   )r…   r†   r‡   r¾  rˆ   Úskipr   rÖ   r   rA   Ún_iter_)rÌ   rl   ra   r×   rI   Úy_binr�   s          rP   Útest_max_iterr     sª   € ô( �y‰yœ$Ÿ+™+×*Ñ*Ó,€u€AØ€Eˆ%�1‰*ÑàÐ"Ò" x°!¢|Ü�‰ÐEÔFä	ØØØ'Øô	
€Bô 
�‰Ô(°Ô	8ñ Ø
�‰ˆq�%Ô÷ð �:‰:�a‰=˜HÒ$Ð$Ñ$÷ð ús   Â B0Â0B9c           
      ó:  — 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	|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 )Nr1   r   rf   r9   rg   r8   rJ  rh   r$  )rk   rW   ra   r¨   r   ré   rê   )rk   ra   rÀ   r€   rë   r¨   rå   rì   rz   )r…   r†   r‡   r#   r>   r?   r@   r¾  r   rA   r  r   )ra   rå   rI   rJ   rM   r  rÿ   Ú	n_cv_foldr   rH   Úclf_cvs              rP   Ú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ÑErR   r2   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)	Nrq  )rk   r*  ra   r¨   rY   r®  r8   z Warm starting issue with solver zwith fit_intercept=z and warm_start=ç       @)r…   r†   r‡   r   r-   r   rA   ru   rl   r>   rE   Úabs)
rÌ   ra   r*  rY   rI   rJ   rH   Úcoef_1Úcum_diffrŒ   s
             rP   Ú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&r3   rW   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.r9   )ra   rl   rY   rW   r®  Nr8   T)ra   rl   r*  rY   rW   )
r…   r†   r‡   r   r-   r   rA   r   ru   rt   )ra   rY   rW   rI   rJ   rì  rj  s          rP   Útest_warm_start_newton_solverr  !  sÛ   € ô
 �9‰9”d—k‘k€q€AäØØØ#Ø
ô	€Dô 
Ô"4Ô	5ñ Ø�‰��AŒ÷ô ØØØØ#Ø
ô€Dô 
Ô"4Ô	5ñ Ø�‰��AŒØ�‰��AŒ÷ô �D—J‘J §
¡
Ô+ÙÜ˜Ÿ™¨¯©Õ9ð ÷ð ú÷ð ús   Á C,Á;%C8Ã,C5Ã8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 )Nrf   r8   r9   rè   rÝ   r¤  r   r7   rh   r6   rH  FrÄ   )rW   r~   ra   rl   rY   r¨   rk   r2   )r   r†   r‡   r>   rÇ   r   r@   rÉ   r   rA   r   ru   )rÌ   rS   r~   r…   rI   rJ   ÚX_binr  ÚX_sparseÚy_sparserK   Úalphar6   r2   s                 rP   Útest_saga_vs_liblinearr   A  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rR   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
v r|rd}t        |j                  |j                  |¬	«       t        |j                  |j                  |¬	«       y )Nr2   r¶   gü©ñÒMb@?r$  )ra   r¨   rk   rY   g…ëQ¸…@ÚntrJ  r¼  r¾   r©  )r>   r¹   Úfloat32rr   rI   rÁ  rZ   r   r   rA   ru   r·   ÚosÚnamer.   r   )ra   rY   rS   Ú
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_sparserq   s                    rP   Útest_dtype_matchr2  o  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à�Ñ ¡]ð ˆä�E—K‘K ×!3Ñ!3¸$Õ?Ü�E—K‘K ×!3Ñ!3¸$Ö?rR   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 )NrU   r9   r8   r7   r5   FrÄ   )ra   r*  rk   r¨   Tr¦   rm   rn   )r>   rª   r«   rÇ   rÈ   rr   r   r   rA   rD   rP  r   )	rÌ   r­   rI   rJ   Úlr_no_wsÚlr_wsÚlr_no_ws_lossrÐ   Ú
lr_ws_losss	            rP   Útest_warm_start_converge_LRr8  ¶  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Ö9rR   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 )
Nr§   r  )rƒ   r8   r   r6   rß   rH  )rW   r~   ra   r¨   rk   rl   r   rp   )r   rô   r   rA   Úappendru   r>   Úallclose)
rÌ   rI   rJ   rW   Úcoeffsr~   r�   Úelastic_net_coeffsÚ	l1_coeffsÚ	l2_coeffss
             rP   Útest_elastic_net_coeffsr@  Ë  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ÐCrR   z1ignore:.*'penalty' was deprecated.*:FutureWarning)rß   r  r8   r^   rU   r¿   ç    €„.Azpenalty, l1_ratio)Úl1r8   )r(  r   c                 óì   — t        | ¬«      \  }}t        d||d| d¬«      }t        ||d| d¬«      }|j                  ||«       |j                  ||«       t        |j                  |j                  «       y )Nr§   r‘   r6   rJ  )r’   rW   r~   ra   r¨   rk   )r’   rW   ra   r¨   rk   )r   r   rA   r   ru   )rÌ   rW   r’   r~   rI   rJ   Úlr_enetÚlr_expecteds           rP   Ú"test_elastic_net_l1_l2_equivalencerF  ç  sz   € ô Ð,>Ô?�D€A€qä ØØ
ØØØ'Øô€Gô %Ø˜1 VÐ:LÐRVô€Kð ‡K�K��1ÔØ‡O�O�A�qÔä˜gŸm™m¨[×->Ñ->Õ?rR   )rß   r8   rU   rA  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 )NrH  r   r§   r~   r8   r¦   rƒ   r6   rJ  )r~   rW   ra   r¨   rk   T)r  )r   r   r>   Úlinspacer   r   rA   r  )rW   rI   rJ   ÚX_trainÚX_testÚy_trainÚy_testÚ
param_gridÚenet_clfÚgsÚl1_clfÚl2_clfrH   s                rP   Útest_elastic_net_vs_l1_l2rR    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ÑCrR   rd   rg   )r  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¿   r9   rÝ   r^   r   ©rK   rM   rž   r&  r­  r¬  r¨   r6   F)r~   rW   ra   r¨   rY   )r~   ra   r¨   rW   rY   c                 ó  •— | j                   j                  «       }‰t        ‰| j                  ‰«      «      z  }|‰t	        j
                  t	        j                  |«      «      z  z  }|d‰z
  dz  t	        j                  ||«      z  z  }|S )Nrh   rƒ   )ru   rË   r   rD   r>   rE   r  rî   )r�   r›  ÚobjrW   rI   r~   rJ   s      €€€€rP   Úenet_objectivezEtest_LogisticRegression_elastic_net_objective.<locals>.enet_objectiveC  sw   ø€ Ø�x‰x�~‰~ÓˆØ”(˜1˜b×.Ñ.¨qÓ1Ó2Ñ2ˆØˆxœ"Ÿ&™&¤§¡¨£Ó.Ñ.Ñ.ˆØ��h‘ #Ñ%¬¯©¨t°TÓ(:Ñ:Ñ:ˆØˆ
rR   )r   r#   r   rA   )rW   r~   rD  Úlr_l2rX  rI   rJ   s   ``   @@rP   Ú-test_LogisticRegression_elastic_net_objectiverZ  #  sŸ   û€ ô ØØØØØØØô�D€A€qô 	ˆa‹€Aä ØØ
ØØØô€Gô Ø˜6°°QÀeô€Eð ‡K�K��1ÔØ	‡I�Iˆa�„O÷ñ ˜'Ó"¡^°EÓ%:Ò:Ð:Ñ:rR   )r9   rf   c           
      óÄ  — t        d| dd¬«      \  }}t        d«      }t        j                  ddd«      }t        j                  ddd«      }t        ||d	|dd
dd¬«      }|j                  ||«       ||dœ}t        d	dd
¬«      }t        |||d¬«      }	|	j                  ||«       |	j                  d   |j                  k(  sJ ‚|	j                  d   |j                  k(  sJ ‚y )NrU   rf   r   )rK   rM   r&  r¨   r¦   r8   rc   rg   r6   rJ  rê   F)r€   rÀ   ra   rë   r¨   rk   rì   rå   rÿ  )ra   r¨   rk   ©rë   rì   r~   rW   )r   r   r>   rH  rÉ   r   rA   r   r   Úbest_params_rû   rù   )
rM   rI   rJ   rë   r€   rÀ   ÚlrcvrM  r�   rO  s
             rP   Ú2test_LogisticRegressionCV_GridSearchCV_elastic_netr_  N  sñ   € ô
 ØØØØô	�D€A€qô 
˜Ó	€Bä—‘˜A˜q !Ó$€IÜ	�‰�R˜˜AÓ	€BäØØØØØØØØ#ô	€Dð 	‡H�HˆQ�„Nà yÑ1€JÜ	ØØØô
€Bô
 
�b˜*¨°^Ô	D€BØ‡F�Fˆ1ˆa„Là�?‰?˜:Ñ&¨$¯.©.Ò8Ð8Ð8Ø�?‰?˜3Ñ 4§7¡7Ò*Ð*Ñ*rR   r  c           
      ó  — d}t        d|||d¬«      \  }}t        j                  ddd«      }t        || d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Ý   rn  r   ©rK   rM   r&  rž   r¨   rc   rg   rf   r6   rJ  Frê   T)rÀ   r€   ra   r¨   rk   r  rì   rå   r9   r8   )r   r>   rÉ   r   rA   rù   r@   rû   ru   r   r=   )r€   rM   rž   rI   rJ   rÀ   r^  s          rP   Ú"test_LogisticRegressionCV_no_refitrb  x  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Õ:ð rR   c           
      ó`  — d}t        d| | |d¬«      \  }}t        j                  ddd«      }t        j                  ddd	«      }d	}t	        ||d
|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Ý   rn  r   ra  rc   rg   rf   r8   r9   r6   rJ  rê   T)rÀ   r€   ra   rë   r¨   rk   rì   rå   )r   r>   rÉ   rH  r   rA   ró   rô   rõ   rö   r@   r‹  r÷   r  r   rù   rû   )
rM   rž   rI   rJ   rÀ   r€   r^  r^  r  r  s
             rP   Ú5test_LogisticRegressionCV_elasticnet_attribute_shapesrd  �  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Õ6rR   c            	      óV  — t         j                  t         j                  }} t        d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.r4   ri   Trê   )ra   rk   rå   rì   r¦   r   r8   rf   r%  )rW   ra   rk   Nr7   rm   rn   )r…   r†   r‡   r   rA   r   rô   rO  r   rñ   r>   r?   r   rõ   ru   rt   )
rI   rJ   r^  rë   ÚfoldsÚidx_foldÚidx_CÚtrain_fold_0r�   Úcls
             rP   Ú"test_LogisticRegressionCV_on_foldsrk  Î  sC  € ä�9‰9”d—k‘k€q€AÜØ ØØ"Øô	÷
 
�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Ñ!Øöñ	ñrR   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|   rB  r6   rƒ   )r’   ra   r~   )rˆ   rÖ   ÚUserWarningr   rA   rI   rZ   )rŒ   s    rP   Útest_l1_ratio_non_elasticnetrn  ö  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 )NrH  r9   r¦   r   rU  r‘   Fré  rh   r   )r’   r~   r¨   rY   rk   rl   r  rž  rm   r¿   r6   )r~   r¨   rY   rk   rl   rW   ra   gffffffÖ?r¼  )r   r#   r   r   rA   r   ru   )rÌ   rW   r~   rK   rI   rJ   ÚsgdÚlogs           rP   Útest_elastic_net_versus_sgdrr     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Ö4rR   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)Nrn  rf   r9   r   r8   ©rK   rM   r&  r­  Ún_clusters_per_classr¨   rž   )rm   r8   rŽ  rB  r6   )rL   r’   rÀ   ra   r¨   rê  )r   r   r>   r?   rˆ   r‰   rà   r   )rI   rJ   rÀ   rÎ   rÏ   s        rP   Ú/test_logistic_regression_path_coefs_multinomialrv  *  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)Nrn  rf   r9   r   r8   rt  )rf   rf   )rL   r›  r¨   z Initialization coef is of shape z.+expected.+\(3, 2\)r|   F)rL   r›  r¨   rY   )r8   rf   z.+expected.+\(2,\) or \(1, 2\))r   r>   r?   rF   r   ÚreÚescapeÚstrr@   rˆ   r‰   rŠ   )rI   rJ   rL   r›  rŒ   s        rP   Ú(test_logistic_regression_path_init_coefsr{  J  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   ©rK   r­  r¨   z&Setting penalty=None will ignore the Crg   )r’   ra   rW   r|   rj   )r’   ra   rl   r¨   r(  )r’   rW   ra   rl   r¨   )
r   r   rˆ   rÖ   rm  rA   r>   r‹   rB   r   )
rÌ   ra   rI   rJ   rŒ   r�   Úlr_noneÚlr_l2_C_infÚ	pred_noneÚpred_l2_C_infs
             rP   Ú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c                 ó2  — t        ddd¬«      \  }}t        t        j                  | ¬«      }t	        j
                  «       5  t	        j                  d«       t	        j                  dt        ¬«       |j                  ||«       d	d	d	«       y	# 1 sw Y   y	xY w)
z Test that C=np.inf (recommended approach) produces no warnings.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/32927
    rU   r   r$  r}  r„   Úerrorrº  r®  N)
r   r   r>   r‹   rÅ  rÆ  rÇ  Úfilterwarningsr   rA   )ra   rI   rJ   r�   s       rP   Útest_c_inf_no_warningr†  ´  ss   € ô ¨¸!È"ÔM�D€A€qä	œbŸf™f¨VÔ	4€BÜ	×	 Ñ	 Ó	"ñ Ü×Ñ˜gÔ&Ü×Ñ Ô3EÕFØ
�‰ˆq�!Œ÷÷ ñ ús   ÁABÂBr2  rÄ   r¿   )r~   r�   rk   rl   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 )Nr8   rf   r9   rg   rú   r¶   )r8   r8   r8   r8   r9   r9   r9   r9   r8   r8   r8   r8   r9   r9   r9   r9   rÂ  rô  r   r§   r2   )ra   r¨   r»  )rB   rD   rš   r“   )r>   rr   r·   ÚvstackÚhstackrF   r=   r&   r   r°  r   rA   Úgetattrr   )rÌ   r2  rI   rJ   ÚX2Úy2r  Úbase_clfÚclf_no_weightÚclf_with_weightÚmethodÚX_clf_no_weightÚX_clf_with_weights                rP   Ú/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Ó?ÐÜ˜Ð):Õ;ñ<rR   c                  óÂ  — t        dd¬«      \  } }t        d¬«      }ddg}g d¢}t        |||d	dd
ddd¬«	      }|j                  | |«       |j                  d   j                  d¬«      }t        |«      D ]h  \  }}t        |«      D ]U  \  }	}
t        ||
d	dd
d¬«      }t        || ||d¬«      j                  «       }|||	f   t        j                  |d¬«      k(  rŒUJ ‚ Œj y )Nr¿   r   rÞ   r¦   rK  r  rS  )r  r8   r^   r6   éú   rß   rê   T)	rÀ   r€   rë   ra   r¨   rl   rk   rì   rå   r8   r;   )rW   r~   ra   r¨   rl   rk   r\  )Úrel)r   r   r   rA   r÷   rï   rÊ   r   r   rˆ   Úapprox)rI   rJ   rë   r€   rÀ   r^  Úavg_scores_lrcvrÐ   rW   Újr~   r�   Úavg_score_lrs                rP   Ú'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ä˜"“ò R‰ˆˆ1Ü$ YÓ/ò 	R‰KˆAˆxÜ#ØØ!ØØØØôˆBô +Ø�A�q˜R¨ôç‰d‹fð ð # 1 a 4Ñ(¬F¯M©M¸,ÈDÔ,QÓQÐQÐQñ	RñRrR   )r1   r3   r4   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>`
    )rW   ra   rY   r   r;   r�  r¼  g•dyáý¥=)r  N)r…   r™   r‡   r   r=   r†   r#   rA   r   ru   rE   rt   rˆ   r—  )ra   rY   r‡   rH   ÚX_scaleds        rP   Ú(test_multinomial_identifiability_on_irisrž  +	  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ð rR   rh   r¥  c                 óì   — t        d¬«      \  }}t        |«      }t        j                  |«      }d|d |dz   |j	                  «       }t        | d¬«      }|j                  |||¬«       t        ||«       y )NT©Ú
return_X_yr9   rn  )r;  rl   r»  )r   r=   r>   rF   r¾  r   rA   r   )r;  rI   rJ   rž   ÚWÚexpectedrH   s          rP   Útest_sample_weight_not_modifiedr¤  U	  sq   € ä Ô%�D€A€qÜ�Q“€JÜ
�‰�
Ó€AØ€AÐˆ
�a‰Ðà�v‰v‹x€Hä
Ø!Øô€Cð ‡G�GˆAˆq €GÔ"Ü�H˜aÕ rR   c           	      óö  —  |t        j                  ddd¬«      «      }dD ](  }t        ||t        ||«      j	                  d«      «       Œ* t
        j                  j                  d«      }|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^   r$  r§   )ÚindicesÚindptrÚint64r9   r   r¸  )r2   r5   r6   z0Only sparse matrices with 32-bit integer indicesr|   r{   )r   ÚrandÚsetattrrŠ  rÁ  r>   rª   r«   r¿  r@   rˆ   r‰   rŠ   r   rA   )ra   rS   rI   Úattrr­   rJ   rŒ   s          rP   Útest_large_sparse_matrixr¬  f	  sØ   € ñ 	”f—k‘k " b°rÔ:Ó;€AØ%ò ;ˆÜ��4œ  DÓ)×0Ñ0°Ó9Õ:ð;ä
�)‰)×
Ñ
 Ó
#€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²Tr7   r8   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|   r2   r{   )r>   rr   rR  rˆ   r‰   rŠ   r   rA   )rI   rJ   rŒ   s      rP   Ú 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á?gffffffî?çffffffæ?)r8   r8   r   r   r8   r8   r   r8   r8   r3   T©ra   rY   )r>   rr   rs   r@   r   rA   )rI   rJ   s     rP   Útest_single_feature_newton_cgr²  Œ	  sV   € ô 	�‰Ò>Ð?Ó@×BÑB€AÜ
�‰Ò)Ó*€AØ�7‰7�1‰:˜Š?Ðˆ?Ü˜k¸Ô>×BÑBÀ1ÀaÕHrR   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)Nr9   rq  )rž  g¤›ntž²@r8   r2   rÄ   rU   rÅ   )r~   rW   ra   rk   rl   rÆ   r¨   r„  )r…   r†   r¾  r‡   r"   Úfit_transformr$   r   rÅ  rÆ  rÇ  r   rA   )rÌ   rI   rJ   ÚX_preprW   rH   s         rP   Útest_liblinear_not_stuckr¶  –	  sÅ   € ä�	‰	�‰Ó€AÜ�‰×ÑÓ€AØ	ˆ!ˆq‰&‰	€AØ	ˆ!ˆq‰&‰	€AÜÓ×+Ñ+¨AÓ.€Fä��A˜EÔ" _Ñ4€AÜ
ØØ
ØØØØ!Ø'ô€Cô 
×	 Ñ	 Ó	"ñ Ü×Ñ˜gÔ'9Ô:Ø�‰�˜Ô÷÷ ñ ús   Â-CÃCre  c                 ón  — t         j                  j                  | «      }t        d|¬«      \  }}t        d|¬«      \  }}t        j                  t        |«      «      }d|dt        |«      dz   d|i}t        d«      j                  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 ‚d}t        j                  t        t        j                   |«      ¬«      5   |	j"                  ||fi |¤Ž ddd«       |	j#                  ||«      } |j"                  ||fi |¤Ž}t        j                  ||«      rJ ‚y# 1 sw Y   ŒHxY w)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Þ   r9   Nr  r  Fr»  gTäqs*É>T)rì   rk   rå   r8   zlLogisticRegressionCV.score got unexpected argument(s) {'sample_weight'}, which are not routed to any object.r|   )r>   rª   r«   r   rF   r=   r   Úset_score_requestr   rA   r;  r÷   rˆ   r‰   Ú	TypeErrorrx  ry  r  )rÌ   r­   rI   rJ   ÚX_tÚy_tr  ÚkwargsÚscorer1Úlr_cv1Úscorer2Úlr_cv2rÂ   Úscore_1Úscore_2s                  rP   Ú8test_lr_cv_scores_differ_when_sample_weight_is_requestedrÃ  ¯	  s‘  € ô �)‰)×
Ñ
Ð 2Ó
3€CÜ¨¸CÔ@�D€A€qÜ"¨TÀÔD�H€CˆÜ—G‘GœC ›F“O€MØ#$€M�-”C˜“F˜a‘KÐ Ø˜}Ð-€Fä˜Ó$×6Ñ6ÀUÐ6ÓK€GÜ!¨'°tÐSWÔX€FØ€F‡J�Jˆq�!Ñ�vÒä˜Ó$×6Ñ6ÀTÐ6ÓJ€GÜ!¨'°tÐSWÔX€FØ€F‡J�Jˆq�!Ñ�vÒä�{‰{˜6Ÿ>™>¨!Ñ,¨f¯n©n¸QÑ.?Ô@Ð@Ð@ð	/ð ô 
�‰”y¬¯	©	°'Ó(:Ô	;ñ )Øˆ�‰�S˜#Ñ( Ò(÷)à�l‰l˜3 Ó$€GØˆf�l‰l˜3 Ñ. vÑ.€Gä�{‰{˜7 GÔ,Ð,Ð,Ð,÷)ð )ús   ÅF+Æ+F4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Þ   r9   Nr  Fre  r  )rì   rå   Tr»  r8   )r>   rª   r«   r   rF   r=   r	   r   r   rA   r  r¸  r   r÷   )r­   rI   rJ   rº  r»  r  r¼  r½  r¾  rÁ  r¿  rÀ  rÂ  s                rP   Ú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   r9   r®  r   r~  )r6   r5   r1   )r@   Ú
fill_valuerƒ   r°  )r   r-   r   r   rA   r  r   ru   r>   Ú
zeros_likerš   rÃ  r@   rt   rD   r  )ra   rI   rJ   rH   s       rP   Ú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¬«      }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Þ   Frê   )rå   rì   z1is only supported if enable_metadata_routing=Truere  Úextra_paramrh   r|   N)r   r   r	   rˆ   r‰   rŠ   rA   r  )rI   rJ   rþ   rŒ   r2  s        rP   Ú5test_passing_params_without_enabling_metadata_routingrÌ  
  sÉ   € ô ¨¸!Ô<�D€A€qÜ Ø#Øô€Eð >€Cä	°Ô	6ñ (Ø Ð%ˆä�]‰]œ:¨SÔ1ñ 	&ØˆE�I‰I�a˜Ñ%˜fÒ%÷	&ô �]‰]œ:¨SÔ1ñ 	(ØˆE�K‰K˜˜1Ñ' Ò'÷	(÷(ð (÷	&ð 	&ú÷	(ð 	(ú÷(ð (ús;   ¬ CÁB*Á!#CÂB6ÂCÂ*B3	Â/CÂ6B?	Â;CÃCc                  óú  — t        d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Ý   r$  r¤  gêŒ 9Y>)Fr1   )ra   rW   r„  r   r8   r4   r®  )ra   rW   rl   r	  r|   )r   r   rÅ  rÆ  rÇ  rA   r  r-   r   rˆ   rÖ   r   rl   )	rI   rJ   rW   Úlr_lbfgsÚn_iter_lbfgsÚlr_ncÚ	n_iter_ncÚlr_nc_limitedÚn_iter_nc_limiteds	            rP   Ú&test_newton_cholesky_fallback_to_lbfgsrÔ  %
  su  € ô ¨¸ÈÔL�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|   r2   r{   N)rˆ   r‰   rŠ   rA   r…   r†   r‡   )rÕ  rŒ   s     rP   Ú test_liblinear_multiclass_raisesr×  N
  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.r9   rÝ   r%  ©rM   rK   r&  r(  )r’   z'penalty' was deprecatedr|   N)r   rˆ   rÖ   ÚFutureWarningrA   )rØ  rI   rJ   r�   rŒ   s        rP   Útest_penalty_deprecatedrÜ  Z
  sU   € ô
 ¨°bÈÔJ�D€A€qÙ	�TÔ	€BØ
$€CÜ	�‰”m¨3Ô	/ñ Ø
�‰ˆq�!Œ÷÷ ñ ús   ¸AÁA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)	Nrf   rè   r%  rÚ  rê   rG  z@The default value of use_legacy_attributes will change from Truer|   ©r   r   rˆ   rÖ   rÛ  rA   ©rI   rJ   r�   rŒ   s       rP   Ú:test_logisticregressioncv_warns_with_use_legacy_attributesrà  g
  sY   € Ü¨°bÈÔJ�D€A€qÜ	Øô
€Bð M€CÜ	�‰”m¨3Ô	/ñ Ø
�‰ˆq�!Œ÷÷ ñ úó   »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	¬
«      }d}t        j                  t        |¬«      5  |j                  | |«       ddd«       t        dd	¬«      }d}t        j                  t        |¬«      5  |j                  | |«       ddd«       y# 1 sw Y   Œ“xY w# 1 sw Y   Œ[xY w# 1 sw Y   yxY w)z=Check that l1_ratio=None in LogisticRegression is deprecated.r9   rÝ   r%  rÚ  N)r~   z'l1_ratio=None' was deprecatedr|   rê   rG  z+The default value for l1_ratios will change)r€   rì   z'l1_ratios=None' was deprecated)r   r   rˆ   rÖ   rÛ  rA   r   rß  s       rP   Útest_l1_ratio_None_deprecatedrã  r
  sé   € ô ¨°bÈÔJ�D€A€qä	 TÔ	*€BØ
*€CÜ	�‰”m¨3Ô	/ñ Ø
�‰ˆq�!Œ÷ô 
Øô
€Bð 8€CÜ	�‰”m¨3Ô	/ñ Ø
�‰ˆq�!Œ÷ô 
ØØô
€Bð ,€CÜ	�‰”m¨3Ô	/ñ Ø
�‰ˆq�!Œ÷ð ÷ð ú÷ð ú÷ð ús#   »C Á?C,ÃC8Ã C)Ã,C5Ã8D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)	Nrf   rè   r%  rÚ  r8   )r)  z'n_jobs' has no effectr|   )r   r   rˆ   rÖ   rÛ  rA   rß  s       rP   Ú)test_logisticregression_warns_with_n_jobsrå  Ž
  sS   € Ü¨°bÈÔJ�D€A€qÜ	 1Ô	%€BØ
"€CÜ	�‰”m¨3Ô	/ñ Ø
�‰ˆq�!Œ÷÷ ñ úrá  ÚbinaryÚ	use_str_yÚuse_sample_weight)Nrª  rs  z(array_namespace, device_name, dtype_namec           	      ó

  — t        |||«      \  }}t        j                  j                  |d¬«      }	|	j                  \  }
}|j                  |	|¬«      }|r«| rUt        j                  dkD  j                  t        j                  «      }t        j                  ddg«      |   }|dk(  r2dd	d
œ}n,t        j                  t        j                     }|dk(  rddd	dœ}|j                  «       }t        j
                  |d¬«      }n|| r;t        j                  dkD  j                  t        j                  «      }|dk(  r!dd	dœ}nt        j                  }|dk(  rddd	dœ}|j                  |«      }|j                  ||¬«      }|rQt        j                  j                  d«      j                  dd|
¬«      j                  dd «      j                  |«      }nd }t!        dddd|¬«      }t#        j$                  «       5  t'        d#i |¤Žj)                  |	||¬«      }|j*                  |j,                  k  sJ ‚	 d d d «       t        j.                  j0                  «      j3                  «       dkD  sJ ‚|j5                  |	«      }|j7                  |	«      }|j9                  |	«      }t;        |«      dz  }|dk(  rdnd}t=        d¬«      5  t#        j$                  «       5  t#        j>                  dt@        «       t'        d#i |¤Žj)                  |||¬«      }d d d «       j*                  j                  |j*                  j                  k(  sJ ‚tC        |j*                  d   «      |j,                  k  sJ ‚dD ]m  }tE        ||«      }tE        ||«      }tG        tI        |t        d ¬!«      |||¬"«       |jJ                  |jJ                  k(  sJ ‚tM        |«      tM        |«      k(  rŒmJ ‚ |j5                  |«      }tG        tI        |t        d ¬!«      |||¬"«       |jJ                  |jJ                  k(  sJ ‚tM        |«      tM        |«      k(  sJ ‚|j7                  |«      }tG        tI        |t        d ¬!«      |||¬"«       |jJ                  |jJ                  k(  sJ ‚tM        |«      tM        |«      k(  sJ ‚|j9                  |«      }|stI        |t        d ¬!«      }tO        ||«       d d d «       y # 1 sw Y   �Œ±xY w# 1 sw Y   �ŒáxY w# 1 sw Y   y xY w)$NT©r¾  r*   r   Úsetosaú
not-setosars  rh   g      @)rë  rì  r  )Ú	virginicarë  Ú
versicolorr¸   rD  r7   r¦   r¸  rJ  r1   rÜ  rH  )rW   ra   rk   rl   r;  r»  r  r^   r#  r  rm   ©Úarray_api_dispatchr„  )ru   rt   Úcpu)Úxpr+   rp   r“   )(r,   r…   r†   rÁ  r@   ró   r‡   r>   r¨  rr   r™   r¾  rª   Údefault_rngr‘  Úcliprs  rÅ  rÆ  r   rA   r  rl   r  ru   r�  rD   Úpredict_log_probarB   r'   r	   rÇ  r   rÂ  rŠ  r   r(   r·   Úarray_api_devicer   )ræ  rç  rè  r;  Úarray_namespaceÚdevice_nameÚ
dtype_namerò  r+   ÚX_nprK   rÏ   ÚX_xpr‡   Úy_npÚ
y_xp_or_npr  Ú	lr_paramsÚlr_npÚpredict_proba_npÚpreditct_log_proba_npÚprediction_nprq   ro   Úlr_xpÚ	attr_nameÚattr_xpÚattr_npÚpredict_proba_xpÚpredict_log_proba_xpÚprediction_xps                                  rP   Ú-test_logistic_regression_array_api_compliancer
  –
  s¡  € ô$ & o°{ÀJÓO�J€BˆÜ�9‰9×Ñ˜J¨TÐÓ2€DØ—:‘:�L€IˆqØ�:‰:�d 6ˆ:Ó*€DÙÙÜ—k‘k A‘o×-Ñ-¬b¯h©hÓ7ˆFÜ—X‘X˜x¨Ð6Ó7¸Ñ?ˆFØ˜vÒ%Ø*-¸SÑA‘ä×&Ñ&¤t§{¡{Ñ3ˆFØ˜vÒ%Ø-0¸CÈsÑS�Ø�{‰{‹}ˆÜ—Z‘Z ¨4Ô0‰
áÜ—k‘k A‘o×-Ñ-¬b¯h©hÓ7ˆFØ˜vÒ%Ø#&¨3Ñ/‘ä—[‘[ˆFØ˜vÒ%Ø#&¨3°3Ñ7�Ø�}‰}˜ZÓ(ˆØ—Z‘Z ¨V�ZÓ4ˆ
áä�I‰I×!Ñ! !Ó$ß‰W�R˜ ˆWÓ+ß‰T�!�T‹]ß‰V�JÓñ	 	ð ˆô Ø
�w E°CÀlô€Iô 
×	 Ñ	 Ó	"ñ .ä"Ñ/ YÑ/×3Ñ3Ø�$ mð 4ó 
ˆð �}‰}˜uŸ~™~Ò-Ð-Ñ-÷.ô �6‰6�%—+‘+Ó×"Ñ"Ó$ sÒ*Ð*Ð*à×*Ñ*¨4Ó0ÐØ!×3Ñ3°DÓ9ÐØ—M‘M $Ó'€Mô ˜*Ó%¨Ñ*€DØ Ò*‰4°€Dä	¨4Ô	0ñ ,9Ü×$Ñ$Ó&ñ 	ô ×!Ñ! 'Ô+=Ô>Ü&Ñ3¨Ñ3×7Ñ7Ø�j°ð 8ó ˆE÷		ð �}‰}×"Ñ" e§m¡m×&9Ñ&9Ò9Ð9Ð9Ü�5—=‘= Ñ#Ó$ u§~¡~Ò5Ð5Ð5à0ò 	GˆIÜ˜e YÓ/ˆGÜ˜e YÓ/ˆGÜÜ˜¤B¨uÔ5°wÀTÐPTõð —=‘= D§J¡JÒ.Ð.Ð.Ü# GÓ,Ô0@ÀÓ0FÓFÐFÐFð	Gð !×.Ñ.¨tÓ4ÐÜÜÐ$¬°EÔ:ØØØõ		
ð  ×%Ñ%¨¯©Ò3Ð3Ð3ÜÐ 0Ó1Ô5EÀdÓ5KÒKÐKÐKà$×6Ñ6°tÓ<ÐÜÜÐ(¬R¸Ô>Ø!ØØõ		
ð $×)Ñ)¨T¯Z©ZÒ7Ð7Ð7ÜÐ 4Ó5Ô9IÈ$Ó9OÒOÐOÐOàŸ™ dÓ+ˆÙÜ# M´bÀÔGˆMÜ˜=¨-Ô8÷Y,9ð ,9÷%.ñ .ú÷&	ñ 	ú÷,9ð ,9ús8   Ç69SË S9Ë8S,ÌCS9ÏC<S9ÓS)Ó,S6	Ó1S9Ó9Tzignore:'penalty' was deprecated)rB  rÔ   )r(  rh   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Ý   ©rK   r6   )ra   r’   r~   zInconsistent values: penalty=z with l1_ratio=r|   N)r   r   rˆ   rÖ   rm  rA   )r’   r~   rI   rJ   r�   rŒ   s         rP   Ú$test_lr_penalty_l1ratio_incompatibler    sb   € ô ¨Ô,�D€A€qÜ	 6°7ÀXÔ	N€BØ)¨'¨°/À(ÀÐ
L€CÜ	�‰”k¨Ô	-ñ Ø
�‰ˆq�!Œ÷÷ ñ ús   ÁAÁA&c                  óÄ   — t        d¬«      \  } }t        dg¬«      }d}t        j                  t        |¬«      5  |j                  | |«       ddd«       y# 1 sw Y   yxY w)z$Check that scoring raises a warning.rÝ   r  r   )r€   z8The default value of the parameter 'scoring' will changer|   NrÞ  rß  s       rP   Útest_lr_scoring_warnsr  (  sS   € ô ¨Ô,�D€A€qÜ	¨¨Ô	,€BØ
D€CÜ	�‰”m¨3Ô	/ñ Ø
�‰ˆq�!Œ÷÷ ñ ús   ºAÁAc                  ój   — t        «       } | j                  «       j                  j                  dk(  sJ ‚y)z;Test that LogisticRegressionCV gets correct default scorer.Úaccuracy_scoreN)r   Ú_get_scorerÚ_score_funcr  )r�   s    rP   Útest_get_default_scorerr  3  s.   € ô 
Ó	€BØ�>‰>Ó×'Ñ'×0Ñ0Ð4DÒDÐDÑDrR   c                 ó  — t        |||«      \  }}t        j                  j                  |d¬«      }| r#t        j                  dkD  j                  |«      }nt        j                  j                  |«      }|j                  ||¬«      }|j                  ||¬«      }	t        d¬«      5  t        dddd¬	«      }
|
j                  ||	«       |
j                  |«       |
j                  ||	«       d
d
d
«       y
# 1 sw Y   y
xY w)z‚Test that warm_start=True works with array API inputs across
    multiple fit calls for both binary and multiclass classification.Trê  r   r*   rï  rJ  r1   rj   )rW   ra   rl   r*  N)
r,   r…   r†   rÁ  r‡   ró   r	   r   rA   rB   )ræ  r÷  rø  rù  rò  Údevice_rú  rü  rû  Úy_xpr�   s              rP   Ú-test_logistic_regression_array_api_warm_startr  :  sØ   € ô ' ¸ÀZÓP�K€BˆÜ�9‰9×Ñ˜J¨TÐÓ2€DÙÜ—‘˜a‘×'Ñ'¨
Ó3‰ä�{‰{×!Ñ! *Ó-ˆà�:‰:�d 7ˆ:Ó+€DØ�:‰:�d 7ˆ:Ó+€Dä	¨4Ô	0ñ Ü $¨wÀÐQUÔVˆØ
�‰ˆt�TÔØ
�
‰
�4ÔØ
�‰ˆt�TÔ÷	÷ ñ ús   Â(AC6Ã6C?)r   r9   r¿   c                 ó¬  — t        dd¬«      \  }}t        «       }t        d| ¬«      j                  |«      }|j	                  ||«       |j                  d«      dk(  sJ ‚|j                  d«      dk(  sJ ‚|j                  d	«      dt        |j                  d«      z   dz   k(  sJ ‚|j                  d
«      dt        |j                  d«      z   dz   k(  sJ ‚y)z1Test the callback support for LogisticRegression.rg   r   )rž   r¨   r1   r~  Úsetupr8   ÚteardownÚon_fit_task_beginÚon_fit_task_endN)r   r   r   Úset_callbacksrA   Úcount_hooksr�  r  )rl   rI   rJ   Úcbr�   s        rP   Ú)test_logistic_regression_callback_supportr!  Z  sÈ   € ô ¨!¸!Ô<�D€A€qä	Ó	€BÜ	 7°XÔ	>×	LÑ	LÈRÓ	P€BØ‡F�Fˆ1ˆa„Là�>‰>˜'Ó" aÒ'Ð'Ð'Ø�>‰>˜*Ó%¨Ò*Ð*Ð*à�>‰>Ð-Ó.°!´c¸"¿*¹*ÀaÓ6HÑ2HÈ1Ñ2LÒLÐLÐLØ�>‰>Ð+Ó,°´C¸¿
¹
ÀAÓ4FÑ0FÈÑ0JÒJÐJÑJrR   c                 ó   — t        ddd| d¬«      \  }}t        «       }d|dœ}t        di |¤Žj                  |«      j	                  ||«      }|j
                  d   }|j                  D �cg c]  }|d   dk(  rd|d	   j                  v r|‘Œ }	}|j                  D �cg c]  }|d   d
k(  rd|d	   j                  v r|‘Œ }
}t        t        |	|
«      «      D �]l  \  }\  }}|d	   j                  |k(  sJ ‚|d	   j                  |k(  sJ ‚|dkD  r‘|d   d   }t        di |¤d|i¤Žj	                  ||«      }t        |j                  |j                  «       t        |j                  |j                  «       t        |j                  |«      |j                  |«      «       ||k  r–|d   d   }t        di |¤d|dz   i¤Žj	                  ||«      }t        |j                  |j                  «       t        |j                  |j                  «       t        |j                  |«      |j                  |«      «       �Œc|d   d   €�ŒmJ ‚ yc c}w c c}w )zÔCheck the fitted_estimator in callback hooks.

    It is able to predict, with learned parameters identical to the ones obtained if the
    owner estimator had been fitted with the same number of iterations.
    rg   r   )rž   r&  r­  rM   r¨   r1   r±  r%  r  ÚiterÚcontextr  r¼  Úfitted_estimatorrl   r8   Nr“   )r   r   r   r  rA   r  rÙ   Ú	task_namerÊ   rá  Útask_idr   ru   rt   rB   )rM   rY   rI   rJ   r   rþ  r�   Ún_iterÚrecÚiter_beginsÚ	iter_endsrÐ   Ú
iter_beginÚiter_endrØ  Úexpected_lrs                   rP   Ú2test_logistic_regression_callback_fitted_estimatorr/  l  sb  € ô ØØØØØô�D€A€qô 
Ó	€Bà"°]ÑC€IÜ	Ñ	(˜iÑ	(×	6Ñ	6°rÓ	:×	>Ñ	>¸qÀ!Ó	D€BØ�Z‰Z˜‰]€Fð —9‘9öàØˆv‰;Ð-Ò-°&¸CÀ	¹N×<TÑ<TÑ2Tò 	ð€Kð ð —9‘9öàØˆv‰;Ð+Ò+°¸#¸i¹.×:RÑ:RÑ0Rò 	ð€Ið ô &/¬s°;À	Ó/JÓ%Kó BÑ!ˆÑ!ˆJ˜Ø˜)Ñ$×,Ñ,°Ò1Ð1Ð1Ø˜	Ñ"×*Ñ*¨aÒ/Ð/Ð/àˆqŠ5Ø˜XÑ&Ð'9Ñ:ˆCÜ,ÑE¨yÑEÀ1ÒE×IÑIÈ!ÈQÓOˆKÜ˜CŸI™I {×'8Ñ'8Ô9Ü˜CŸN™N¨K×,BÑ,BÔCÜ˜CŸK™K¨›N¨K×,?Ñ,?ÀÓ,BÔCàˆvŠ:Ø˜8Ñ$Ð%7Ñ8ˆCÜ,ÑI¨yÑIÀ1ÀqÁ5ÒI×MÑMÈaÐQRÓSˆKÜ˜CŸI™I {×'8Ñ'8Ô9Ü˜CŸN™N¨K×,BÑ,BÔCÜ˜CŸK™K¨›N¨K×,?Ñ,?ÀÓ,BÖCð ˜HÑ%Ð&8Ñ9ÒAÐAÐAñ'Bùòùò
s   Á*"IÂ"Ic                  ó®   — t        «       } t        j                  t        d¬«      5  t	        d¬«      j                  | «       ddd«       y# 1 sw Y   yxY w)zLTest the warning message when trying to set a callback with solver!='lbfgs'.zECallbacks are only supported in LogisticRegression for solver='lbfgs'r|   r2   r{   N)r   rˆ   rÖ   rm  r   r  )r   s    rP   Ú1test_logistic_regression_callback_support_warningr1  ±  sL   € ô 
Ó	€BÜ	�‰ÜØUô
ñ Aô 	 +Ô.×<Ñ<¸RÔ@÷	A÷ Añ Aús   ¦AÁA)«ru  r$  rx  rÅ  Únumpyr>   rˆ   Únumpy.testingr   r   r   Úscipyr   Úscipy.linalgr   r   Úsklearnr	   Úsklearn._lossr
   Úsklearn.baser   Úsklearn.callback.tests._utilsr   r   Úsklearn.datasetsr   r   r   Úsklearn.exceptionsr   Úsklearn.linear_modelr   r   r   Úsklearn.linear_model._logisticr   r   Úsklearn.metricsr   r   r   Úsklearn.model_selectionr   r   r   r   r   r   Úsklearn.multiclassr    Úsklearn.preprocessingr!   r"   r#   Úsklearn.svmr$   Úsklearn.utilsr%   r&   Úsklearn.utils._array_apir'   r(   r)   r+   rö  Úsklearn.utils._testingr,   r-   Úsklearn.utils.fixesr.   r/   r0   Úmarkr…  Ú
pytestmarkrt  rI   rZ   r_   r…   rQ   Úparametrizer\   r`   rw   rŽ   r•   r¤   r±   r´   r¼   rÒ   rÛ   Úthread_unsaferä   r  r  r  r6  rB  rb  rl  rz  r…  r¢  r§  r²  rÕ  rÚ  rß  rã  rî  rð  rò  rý  r  r  r-  r  r  r=  r>  r  r‹   r  r   r2  r8  r@  rF  rR  rÉ   rZ  r_  rH  rb  rd  rk  rn  rr  rv  r{  r‚  r†  r“  r›  rž  r¤  r¬  r®  r²  r¶  rÃ  rÅ  rÉ  rÌ  rÔ  r×  rÜ  rà  rã  rå  r
  r  r  r  r  r!  r/  r1  r“   rR   rP   ú<module>rK     s¨  ðÛ Û 	Û 	Û ã Û ÷ñ õ
 ß +å "Ý -Ý ÷÷ RÑ QÝ 1ß XÑ X÷÷ CÑ B÷÷ õ 3ß EÑ EÝ  ß 7÷ñ õ
÷ Iß IÑ Ià�[‰[×'Ñ'Ø<ó€
ð �[‰[×'Ñ'Ø<ó€
ð P€Øˆ!€Wˆq�!ˆf�q˜!�fÐ€Ú€Ú€Ùƒ{€ò8ð$ ‡�×Ñ˜¨.Ó9ñ
Uó :ð
Uð ‡�×Ñ˜¨.Ó9ñFó :ðFð
 ‡�×ÑÐJÓKØ‡�×Ñ˜ GÐ->Ð#?Ó@ñBó Aó LðBðL ‡�×ÑÐOÓPà‡�×ÑÐLÓMØ‡�×Ñ˜Ð 2Ð4HÐIÓJñ+ó Kó Nó Qð+ð^ ‡�×ÑÐOÓPà‡�×ÑÐ3Ó4Ø‡�×ÑØ	ˆ5€MØ˜*Ð%Ð(<¸kÐ'JÐKóñ@ó	ó 5ó Qð@ð ‡�×Ñ˜¨.Ó9ñ2ó :ð2ò0<ò,;òò=
ò@?ð0 ‡�×Ññ8ó ð8ðD ‡�×ÑÐ0°4¸°-Ó@ñ)@ó Að)@ðZ ‡�×ÑÐOÓPñ"ó Qð"ò&&"ðR ‡�×ÑØ"à	�b�TÐØ	�x Ð-Ð.ð 
�˜+Ð&Ð'Ø	˜"˜ÐØ	�H˜kÐ*Ð+ðóñ%
óð%
òP:Ið| ‡�×ÑÐ0°4¸°-Ó@ñG*ó AðG*ðT ‡�×ÑÐ2°U¸D°MÓBØ‡�×Ñ˜ q¨! fÓ-ñ+7ó .ó Cð+7ò\
ð4 ‡�×Ñ˜¨5°$¨-Ó8ñBó 9ðBðJ ‡�×Ñ˜¨5°$¨-Ó8ñBó 9ðBðJ ‡�×Ñ˜ 7Ó+Ø‡�×Ñ˜¨.Ó9ñó :ó ,ðð: ‡�×Ñ˜¨°Ñ$4¸#À#È#Ñ6NÐ#OÓPØ‡�×Ñ˜¨(°JÐ)?Ó@ñ4
ó Aó Qð4
ðp ‡�×ÑÐOÓPà‡�×ÑÐLÓMØ‡�×Ñ˜Ð$4Ó5Ø‡�×Ñ˜ 7Ó+ñ@Mó ,ó 6ó Nó Qð
@MðF ‡�×Ñ˜ 7Ó+ñAó ,ðAò<8<òvð ‡�×Ñ˜©;¨-¸.Ñ*HÓIñ$Eó Jð$EòN4ò&!ð ‡�×ÑØ‡�×Ñ˜¨.Ó9ñ$5ó :ó ð$5ðN ‡�×Ñ˜ a¨ VÓ,ñ+ó -ð+ò@+ð4 ‡�×Ñ˜ Y R§Y¡Y¨q°!£_Ó5Ø‡�×ÑØòóñ"%ó#ó 6ð$%ð( ‡�×Ñ˜ 7Ó+Ø‡�×ÑÐ0°4¸°-Ó@ñ5Fó Aó ,ð5Fðp ‡�×Ñ˜¡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 ‡�×Ñ˜ 7Ó+Ø‡�×Ñ˜¨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Ó-ñ&+ó .ð&+ðR ‡�×Ñ˜ t¨[¨R¯[ª[¸¸A¸qÓ-AÐ&BÓCØ‡�×Ñ˜ fÓ-ñ ;ó .ó Dð ;ðF ‡�×Ñ˜ fÓ-ñ-7ó .ð-7ò`$ðP ‡�×ÑÐ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ð< ‡�×Ñ˜¡6©#¨g«,¹¸k¸]Ó9KÑ*KÓ#LÓMñó Nðð" ‡�×ÑØ‡�×ÑØà ¨dÀÑEØ ¨UÀÑEØ ¨eÀÑFðóñ,<óó ð,<ò^*RðZ ‡�×Ñ˜Ò#LÓMØ‡�×Ñ˜¨5°$¨-Ó8ñ%Ió 9ó Nð%IðP ‡�×Ñ˜¨c°d¸sÑ*CÀZÐ)PÓQñ!ó Rð!ð  ‡�×Ñ˜ 7Ó+Ø‡�×Ñ˜¨.Ó9ñ4ó :ó ,ð4ò&9ò"Iòñ2 ¨Ô-ñ!-ó .ð!-òH &ðF ‡�×Ñ˜ 7Ó+ñ!ó ,ð!ò2(ò(%;ðR ‡�×ÑÐOÓPà‡�×ÑÐLÓMØ‡�×Ñ˜Ð'9Ð;OÐ&PÓQñBó Ró Nó QðBð ‡�×ÑÐOÓPØ‡�×ÑÐUÓVØ‡�×Ñ˜Ð!3Ð5IÐ JÓKñó Ló Wó Qðòð ‡�×ÑÐQÓRØ‡�×ÑÐUÓVñó Wó Sðò4ð ‡�×Ñ˜ E¨4 =Ó1Ø‡�×Ñ˜ u¨d mÓ4Ø‡�×ÑÐ,¨u°d¨mÓ<Ø‡�×Ñ˜Ò)CÓDØ‡�×ÑØ.Ù-Ó/óð ‡�×ÑÐJÓKñy9ó Ló	ó Eó =ó 5ó 2ðy9ðz ‡�×ÑÐ=Ó>Ø‡�×ÑÐ,¨{¸KÐ.HÓIñó Jó ?ðð ‡�×ÑÐUÓVñó Wðð ‡�×ÑÐOÓPñEó QðEð ‡�×Ñ˜ D¨% =Ó1Ø‡�×ÑØ.Ù-Ó/óð ‡�×ÑÐJÓKñó Ló	ó 2ðð4 ‡�×Ñ˜¢\Ó2ØñKó ó 3ðKð  ‡�×Ñ˜ q¨! fÓ-Ø‡�×Ñ˜¨4°¨-Ó8Øñ1Bó ó 9ó .ð1BðD ñAó ñArR   