ó
    ¦ñ:i¾�  ã                   ób  • S SK Jr  S SKrS SKrS SKJr  S SKJ	r	  S SK
JrJr  S SKJr  S SKJr  S SKJr  S SKJrJrJrJrJrJrJr  S S	KJrJr  S S
KJrJ r   S SK!J"r"J#r#J$r$  S SK%J&r&  S SK'J(r(  S SK)J*r*J+r+  S SK,J-r-J.r.  S SK/J0r0J1r1  S SK2J3r3J4r4  S SK5J6r6  S SK7J8r8J9r9  S SK:J;r;J<r<J=r=J>r>J?r?  S SK@JArAJBrB  SrC\Rˆ                  R‹                  S\C S35      rF\RŽ                  " 5       rH\R’                  R•                  S 5      rK\KR™                  \HRš                  Rœ                  5      rO\HR                   \O   \HlP        \HRš                  \O   \HlM        SrQS rRS rSS rTS rUS rVS rW\Rˆ                  R±                  S \=\<-   \;-   \>-   \?-   5      S! 5       rYS" rZS# r[S$ r\S% r]S& r^S' r_S( r`S) raS* rbS+ rcS, rdS- reS. rfS/ rgS0 rhS1 riS2 rjS3 rkS4 rlS5 rmS6 rnS7 roS8 rpS9 rqS: rrS; rsS< rt\Rˆ                  R±                  S=\<5      S> 5       ruS? rvS@ rw\Rˆ                  R±                  SA\#\"/5      SB 5       rx\Rˆ                  R±                  SA\#\"/5      SC 5       ry\Rˆ                  R±                  SA\#\"/5      SD 5       rz\Rˆ                  R±                  SE\Rö                  \Rø                  /5      SF 5       r}SG r~SH rg)Ié    )ÚescapeN)Úassert_allclose)ÚdatasetsÚsvm)Úload_breast_cancer)ÚNotFittedError)ÚSimpleImputer)Ú
ElasticNetÚLassoÚLinearRegressionÚLogisticRegressionÚ
PerceptronÚRidgeÚSGDClassifier)Úprecision_scoreÚrecall_score)ÚGridSearchCVÚcross_val_score)ÚOneVsOneClassifierÚOneVsRestClassifierÚOutputCodeClassifier)ÚMultinomialNB)ÚKNeighborsClassifier)ÚPipelineÚmake_pipeline)ÚSVCÚ	LinearSVC)ÚDecisionTreeClassifierÚDecisionTreeRegressor)Úcheck_arrayÚshuffle)ÚCheckingClassifier)Úassert_almost_equalÚassert_array_equal)ÚCOO_CONTAINERSÚCSC_CONTAINERSÚCSR_CONTAINERSÚDOK_CONTAINERSÚLIL_CONTAINERS)Úcheck_classification_targetsÚtype_of_targetz/The default value for `force_alpha` will changezignore:z:FutureWarningé   c                  óì  • [        [        SS95      n [        R                  " [        5         U R                  / 5        S S S 5        Sn[        R                  " [        US9   [        R                  " SS/SS//5      n[        R                  " SS/SS//5      n[        [        5       5      R                  X#5        S S S 5        [        R                  " [        US9   [        R                  " SS/SS//5      n[        R                  " SS	/S
S//5      n[        [        5       5      R                  X#5        S S S 5        g ! , (       d  f       GN
= f! , (       d  f       N�= f! , (       d  f       g = f)Nr   ©Úrandom_statez@Multioutput target data is not supported with label binarization©Úmatché   é   r,   g      ø?g333333@gÍÌÌÌÌÌ@çš™™™™™é?)r   r   ÚpytestÚraisesr   ÚpredictÚ
ValueErrorÚnpÚarrayr   Úfit)ÚovrÚmsgÚXÚys       Ú`/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/sklearn/tests/test_multiclass.pyÚtest_ovr_exceptionsrA   ;   s  € Ü
œi°QÑ7Ó
8€Cô 
�Š”~Õ	&Ø�‰�BŒ÷ 
'ð M€CÜ	�Š”z¨Ó	-Ü�HŠH�q˜!�f˜q !˜fÐ%Ó&ˆÜ�HŠH�q˜!�f˜q !˜fÐ%Ó&ˆÜœM›OÓ,×0Ñ0°Ô6÷ 
.ô
 
�Š”z¨Ó	-Ü�HŠH�q˜!�f˜q !˜fÐ%Ó&ˆÜ�HŠH�s˜C�j 3¨ *Ð-Ó.ˆÜœM›OÓ,×0Ñ0°Ô6÷ 
.Ð	-÷ 
'Ö	&ú÷
 
.Õ	-ú÷
 
.Õ	-ús%   ­EÁ"AEÃAE%Å
EÅ
E"Å%
E3c                  óÆ   • [         R                  " / SQ5      n [        U 5      n[        R                  " [
        US9   [        U 5        S S S 5        g ! , (       d  f       g = f)N)ç        gš™™™™™ñ?ç       @g      @r0   )r9   r:   r+   r5   r6   r8   r*   )r?   r=   s     r@   Ú!test_check_classification_targetsrE   O   s=   € ä
�ŠÒ%Ó&€AÜ
˜Ó
€CÜ	�Š”z¨Ó	-Ü$ QÔ'÷ 
.×	-Ö	-ús   ½AÁ
A c                  ó^  • [        [        SS95      n U R                  [        R                  [        R
                  5      R                  [        R                  5      n[        U R                  5      [        :X  d   e[        SS9nUR                  [        R                  [        R
                  5      R                  [        R                  5      n[        R                  " [        R
                  U:H  5      [        R                  " [        R
                  U:H  5      :X  d   e[        [        5       5      n U R                  [        R                  [        R
                  5      R                  [        R                  5      n[        R                  " [        R
                  U:H  5      S:”  d   eg )Nr   r.   çÍÌÌÌÌÌä?)r   r   r;   ÚirisÚdataÚtargetr7   ÚlenÚestimators_Ú	n_classesr9   Úmeanr   )r<   ÚpredÚclfÚpred2s       r@   Útest_ovr_fit_predictrR   W   s  € ä
œi°QÑ7Ó
8€CØ�7‰7”4—9‘9œdŸk™kÓ*×2Ñ2´4·9±9Ó=€DÜˆs�‰Ó¤9Ó,Ð,Ð,ä
 Ñ
#€CØ�G‰G”D—I‘IœtŸ{™{Ó+×3Ñ3´D·I±IÓ>€EÜ�7Š7”4—;‘; $Ñ&Ó'¬2¯7ª7´4·;±;À%Ñ3GÓ+HÓHÐHÐHô œm›oÓ
.€CØ�7‰7”4—9‘9œdŸk™kÓ*×2Ñ2´4·9±9Ó=€DÜ�7Š7”4—;‘; $Ñ&Ó'¨$Ó.Ð.Ñ.ó    c            	      ó´  • [        [        R                  [        R                  SS9u  p[	        [        5       5      nUR                  U S S US S [        R                  " U5      5        UR                  U SS  USS  5        UR                  U 5      n[	        [        5       5      nUR                  X5      R                  U 5      n[        X55        [        UR                  5      [        [        R                  " U5      5      :X  d   e[        R                  " X:H  5      S:”  d   e[        R                  " [        R                   R#                  SS5      5      n / SQn[	        [%        SS S	SS
95      nUR                  U S S US S [        R                  " U5      5        UR                  U SS  USS  5        UR                  U 5      n[	        [%        SS S	SS
95      nUR                  X5      R                  U 5      n[        R                  " X1:H  5      [        R                  " Xq:H  5      :X  d   e[	        ['        5       5      n[)        US5      (       a   eg )Nr   r.   éd   rG   é   r3   ©r2   r2   r2   r2   r3   r,   r,   r   r   r3   r,   r2   r3   r,   r2   F)Úmax_iterÚtolr!   r/   é   Úpartial_fit)r!   rH   rI   rJ   r   r   r[   r9   Úuniquer7   r;   r#   rK   rL   rN   ÚabsÚrandomÚrandnr   r   Úhasattr)r>   r?   r<   rO   Úovr2rQ   Úovr1Úpred1s           r@   Útest_ovr_partial_fitrd   g   sÝ  € ä”4—9‘9œdŸk™k¸Ñ:�D€AÜ
œm›oÓ
.€CØ‡O�O�A�d�s�G˜Q˜t ˜W¤b§i¢i°£lÔ3Ø‡O�O�A�c�d�G˜Q˜s˜t˜WÔ%Ø�;‰;�q‹>€DÜœ}›Ó/€DØ�H‰H�Q‹N×"Ñ" 1Ó%€Eä˜Ô$Üˆs�‰Ó¤3¤r§y¢y°£|Ó#4Ó4Ð4Ð4Ü�7Š7�1‘9Ó Ó$Ð$Ð$ô 	�ŠŒr�y‰y�‰˜r 1Ó%Ó&€AÚ2€Aä
Ü˜q d°EÈÑJó€Cð ‡O�O�A�b�q�E˜1˜R˜a˜5¤"§)¢)¨A£,Ô/Ø‡O�O�A�a�b�E˜1˜Q˜R˜5Ô!Ø�;‰;�q‹>€DÜÜ˜q d°EÈÑJó€Dð �H‰H�Q‹N×"Ñ" 1Ó%€EÜ�7Š7�4‘9Ó¤§¢¨©Ó!4Ó4Ð4Ð4ô œc›eÓ
$€CÜ�s˜M×*Ñ*Ð*Ð*Ð*rS   c                  ó–  • [        [        5       5      n [        R                  " [        R                  R                  SS5      5      n/ SQnU R                  US S US S [        R                  " U5      5        S/USS -   nSn[        R                  " [        US9   U R                  USS  US	9  S S S 5        g ! , (       d  f       g = f)
NrV   r3   rW   rZ   é   éÿÿÿÿzAMini-batch contains \[.+\] while classes must be subset of \[.+\]r0   )r>   r?   )r   r   r9   r]   r^   r_   r[   r\   r5   r6   r8   )r<   r>   r?   Úy1r=   s        r@   Útest_ovr_partial_fit_exceptionsri   ‹   sœ   € Ü
œm›oÓ
.€CÜ
�ŠŒr�y‰y�‰˜r 1Ó%Ó&€AÚ2€AØ‡O�O�A�b�q�E˜1˜R˜a˜5¤"§)¢)¨A£,Ô/ð ˆˆq��2ˆw‰€BØ
N€CÜ	�Š”z¨Ó	-Ø�‰˜!˜A˜B˜% 2ˆÑ&÷ 
.×	-Ö	-ús   ÂB:Â:
Cc                  óN  • [        [        5       5      n U R                  [        R                  [        R
                  5      R                  [        R                  5      n[        U R                  5      [        :X  d   e[        [        R                  " U5      / SQ5        [        R                  " U[        R
                  :H  5      S:”  d   e[        [        5       5      n U R                  [        R                  [        R
                  5      R                  [        R                  5      n[        U R                  5      [        [        S-
  -  S-  :X  d   e[        [        R                  " U5      / SQ5        [        R                  " U[        R
                  :H  5      S:”  d   eg )N)r   r2   r3   çÍÌÌÌÌÌì?r2   r3   )r   r   r;   rH   rI   rJ   r7   rK   rL   rM   r$   r9   r\   rN   r   )r<   rO   s     r@   Útest_ovr_ovo_regressorrl   ˜   s  € ô Ô3Ó5Ó
6€CØ�7‰7”4—9‘9œdŸk™kÓ*×2Ñ2´4·9±9Ó=€DÜˆs�‰Ó¤9Ó,Ð,Ð,Ü”r—y’y “ª	Ô2ä�7Š7�4œ4Ÿ;™;Ñ&Ó'¨#Ó-Ð-Ð-ä
Ô2Ó4Ó
5€CØ�7‰7”4—9‘9œdŸk™kÓ*×2Ñ2´4·9±9Ó=€DÜˆs�‰Ó¤9´	¸A±Ñ#>ÀÑ#BÓBÐBÐBÜ”r—y’y “ª	Ô2ä�7Š7�4œ4Ÿ;™;Ñ&Ó'¨#Ó-Ð-Ñ-rS   Úsparse_containerc           
      ó  • [        SS9n[        R                  " SSSSSSS	S
9u  p#US S US S pTUSS  n[        U5      R	                  XE5      nUR                  U5      n[        U5      R	                  X@" U5      5      n	U	R                  U5      n
UR                  (       d   e[        R                  " U
5      (       d   e[        U
R                  5       U5        U	R                  U5      nUS:„  n[        XÊR                  5       5        [        R                  " 5       n[        U5      R	                  X@" U5      5      n	U	R                  U5      S	:„  R                  [         5      n[        XÙR                  U5      R                  5       5        g )Nr2   ©ÚalpharU   é   rf   r,   é2   Tr   ©Ú	n_samplesÚ
n_featuresrM   Ún_labelsÚlengthÚallow_unlabeledr/   éP   ç      à?)r   r   Úmake_multilabel_classificationr   r;   r7   Úmultilabel_ÚspÚissparser$   ÚtoarrayÚpredict_probar   r   Údecision_functionÚastypeÚint)rm   Úbase_clfr>   ÚYÚX_trainÚY_trainÚX_testrP   ÚY_predÚclf_sprsÚY_pred_sprsÚY_probarO   Údec_preds                 r@   Útest_ovr_fit_predict_sparserŽ   ª   sm  € ô
  1Ñ%€Hä×2Ò2ØØØØØØØñ�D€Að ˜˜"�v˜q  "˜vˆWØˆrˆsˆV€Fä
˜hÓ
'×
+Ñ
+¨GÓ
=€CØ�[‰[˜Ó €Fä" 8Ó,×0Ñ0°Ð:JÈ7Ó:SÓT€HØ×"Ñ" 6Ó*€Kà�?�?Ðˆ?Ü�;Š;�{×#Ñ#Ð#Ð#Ü�{×*Ñ*Ó,¨fÔ5ð ×$Ñ$ VÓ,€Gð �S‰=€DÜ�t×0Ñ0Ó2Ô3ô �'Š'‹)€CÜ" 3Ó'×+Ñ+¨GÐ5EÀgÓ5NÓO€HØ×*Ñ*¨6Ó2°QÑ6×>Ñ>¼sÓC€HÜ�x×!1Ñ!1°&Ó!9×!AÑ!AÓ!CÕDrS   c                  óV  • [         R                  " S5      n SU S S2S S 24'   [         R                  " S5      nSUSS 2S4'   SUS S 2S4'   SUS S 2S4'   [        [	        5       5      nSn[
        R                  " [        US9   UR                  X5        S S S 5        UR                  U 5      n[        [         R                  " U5      [         R                  " U5      5        UR                  U 5      n[         R                  " US S 2S	S 24   5      S:X  d   eUR                  U 5      n[        US S 2S
4   [         R                  " U R                  S   5      5        [         R                  " S5      nSUSS 2S4'   [        [	        5       5      nSn[
        R                  " [        US9   UR                  X5        S S S 5        UR                  U 5      n[        US S 2S
4   [         R                  " U R                  S   5      5        g ! , (       d  f       GN|= f! , (       d  f       Nf= f)N©é
   r3   r   rf   )r‘   r,   r2   r3   z,Label .+ is present in all training examplesr0   éþÿÿÿrg   z/Label not 1 is present in all training examples)r9   ÚonesÚzerosr   r   r5   ÚwarnsÚUserWarningr;   r7   r$   r:   r�   r\   r€   Úshape)r>   r?   r<   r=   Úy_preds        r@   Útest_ovr_always_presentr™   ×   s®  € ô 	�Š�Ó€AØ€A€b€q€bŠ!€e�Hô 	�Š�Ó€AØ€A€a�bˆ!€e�HØ€A‚aˆ€d�GØ€A‚aˆ€d�Gä
Ô0Ó2Ó
3€CØ
9€CÜ	�Š”k¨Ó	-Ø�‰�Œ÷ 
.à�[‰[˜‹^€FÜ”r—x’x Ó'¬¯ª°!«Ô5Ø×"Ñ" 1Ó%€FÜ�9Š9�VšA˜r™s˜F‘^Ó$¨Ó)Ð)Ð)Ø×Ñ˜qÓ!€FÜ�vša ˜e‘}¤b§g¢g¨a¯g©g°a©jÓ&9Ô:ô 	�Š�Ó€AØ€A€a�bˆ!€e�HÜ
Ô0Ó2Ó
3€Cà
<€CÜ	�Š”k¨Ó	-Ø�‰�Œ÷ 
.à×Ñ˜qÓ!€FÜ�vša ˜e‘}¤b§h¢h¨q¯w©w°q©zÓ&:Õ;÷% 
.Ö	-ú÷ 
.Õ	-ús   ÂHÆ(HÈ
HÈ
H(c                  ó”  • [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/5      n / SQn[         R                  " / SQ/ SQ/ S	Q/ SQ/ S	Q/5      n[        S
R                  5       5      n[	        5       [        SS9[        5       [        5       [        5       4 H¯  n[        U5      R                  X5      n[        UR                  5      U:X  d   eUR                  [         R                  " / SQ/5      5      S   n[        US/5        [        U5      R                  X5      nUR                  / SQ/5      S   n[        U/ SQ5        M±     g )N©r   r   rf   ©r   rf   r   ©r,   r   r   ©r   r   é   ©rŸ   r   r   )ÚeggsÚspamÚhamr¡   r£   )r   r   r2   ©r   r2   r   ©r2   r   r   zham eggs spamr   r.   ©r   r   é   r¡   )r9   r:   ÚsetÚsplitr   r   r   r   r
   r   r;   Úclasses_r7   r$   )r>   r?   r…   Úclassesr„   rP   r˜   s          r@   Útest_ovr_multiclassr¬   û   s  € ä
�Š’)šYª	²9ºiÐHÓI€AÚ.€AÜ
�Š’)šYª	²9ºiÐHÓI€Aä�/×'Ñ'Ó)Ó*€Gô 	‹Ü˜qÑ!ÜÓÜ‹Ü‹óˆô " (Ó+×/Ñ/°Ó5ˆÜ�3—<‘<Ó  GÓ+Ð+Ð+Ø—‘œRŸXšX¢y kÓ2Ó3°AÑ6ˆÜ˜6 F 8Ô,ô " (Ó+×/Ñ/°Ó5ˆØ—‘ši˜[Ó)¨!Ñ,ˆÜ˜6¢9Ö-òrS   c                  ó¨  ^^^^• [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/5      m/ SQm[         R                  " / SQ/5      R                  m[        SR	                  5       5      mSUUUU4S	 jjn [        S
S9[        5       [        5       [        5       4 H  nU " U5        M     [        5       [        SS9[        5       4 H
  nU " USS9  M     g )Nr›   rœ   r�   rž   r    )r¡   r¢   r¢   r¡   r¢   )r   r2   r2   r   r2   z	eggs spamc                 ó¶  >• [        U 5      R                  TT
5      n[        UR                  5      T	:X  d   eUR	                  [
        R                  " / SQ/5      5      S   n[        US/5        [        U S5      (       a#  UR                  T5      nUR                  S:X  d   eU(       au  [
        R                  " / SQ/5      nUR                  U5      nS[        US   5      :X  d   eUR                  [
        R                  " USS9   UR	                  U5      :X  d   e[        U 5      R                  TT5      nUR	                  / S	Q/5      S   nUS:X  d   eg )
Nr¦   r   r¡   r�   )rf   r3   r2   ©Úaxisr�   )r   r;   r¨   rª   r7   r9   r:   r$   r`   r�   r—   r€   rK   Úargmax)r„   Útest_predict_probarP   r˜   Údecrˆ   Úprobabilitiesr>   r…   r«   r?   s          €€€€r@   Úconduct_testÚ%test_ovr_binary.<locals>.conduct_test  s,  ø€ Ü! (Ó+×/Ñ/°°1Ó5ˆÜ�3—<‘<Ó  GÓ+Ð+Ð+Ø—‘œRŸXšX¢y kÓ2Ó3°AÑ6ˆÜ˜6 F 8Ô,Ü�8Ð0×1Ñ1Ø×'Ñ'¨Ó*ˆCØ—9‘9 Ó$Ð$Ð$æÜ—X’Xšy˜kÓ*ˆFØ×-Ñ-¨fÓ5ˆMØœ˜M¨!Ñ,Ó-Ó-Ð-Ð-Ø—<‘<¤§	¢	¨-¸aÑ @ÑAÀSÇ[Á[ÐQWÓEXÓXÐXÐXô " (Ó+×/Ñ/°°1Ó5ˆØ—‘ši˜[Ó)¨!Ñ,ˆØ˜‹{Ð‰{rS   r   r.   T©Úprobability)r²   )F)r9   r:   ÚTr¨   r©   r   r   r   r
   r   r   r   )rµ   r„   r>   r…   r«   r?   s     @@@@r@   Útest_ovr_binaryrº     s®   û€ ä
�Š’)šYª	²9ºiÐHÓI€AÚ0€AÜ
�Š’/Ð"Ó#×%Ñ%€Aä�+×#Ñ#Ó%Ó&€G÷ò ô* 	˜qÑ!ÜÓÜ‹Ü‹ó	ˆñ 	�XÖñô #“_¤c°dÑ&;Ô=OÓ=QÓRˆÙ�X°$Ô7ò SrS   c            	      ó¶  • [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/5      n [         R                  " / SQ/ SQ/ SQ/ S	Q/ S
Q/5      n[        5       [        SS9[	        5       [        5       [        5       [        SS94 HU  n[        U5      R                  X5      nUR                  / SQ/5      S   n[        U/ SQ5        UR                  (       a  MU   e   g )N)r   r§   rf   rœ   )r,   r,   r,   )r§   r   rŸ   r    )r   r2   r2   r¤   )r2   r2   r2   )r2   r   r2   r¥   r   r.   rz   ro   )r   r§   r§   )r9   r:   r   r   r   r   r
   r   r   r;   r7   r$   r|   )r>   r?   r„   rP   r˜   s        r@   Útest_ovr_multilabelr¼   =  s«   € ä
�Š’)šYª	²9ºiÐHÓI€AÜ
�Š’)šYª	²9ºiÐHÓI€Aô 	‹Ü˜qÑ!ÜÓÜ‹Ü‹Ü�CÑóˆô " (Ó+×/Ñ/°Ó5ˆØ—‘ši˜[Ó)¨!Ñ,ˆÜ˜6¢9Ô-Ø��‰ÐˆòrS   c                  ó:  • [        [        R                  " 5       5      n U R                  [        R
                  [        R                  5        [        U R                  5      S:X  d   eU R                  [        R
                  [        R                  5      S:”  d   eg )Nr,   rk   )
r   r   r   r;   rH   rI   rJ   rK   rL   Úscore)r<   s    r@   Útest_ovr_fit_predict_svcr¿   P  s`   € Ü
œcŸgšg›iÓ
(€CØ‡G�GŒD�I‰I”t—{‘{Ô#Üˆs�‰Ó 1Ó$Ð$Ð$Ø�9‰9”T—Y‘Y¤§¡Ó,¨sÓ2Ð2Ñ2rS   c                  óh  • [        SS9n [        SSS5       H˜  u  pn[        R                  " SSSS	S
USS9u  pEUS S US S pvUSS  USS  p˜[	        U 5      R                  Xg5      n
U
R                  U5      nU
R                  (       d   e[        [        X›SS9US	S9  [        [        X›SS9US	S9  Mš     g )Nr2   ro   )TF)çR¸…ëQà?g…ëQ¸å?)rÁ   r4   rU   rq   rf   r3   rr   r   rs   ry   Úmicro)Úaverage)Údecimal)r   Úzipr   r{   r   r;   r7   r|   r#   r   r   )r„   ÚauÚprecÚrecallr>   r…   r†   r‡   rˆ   ÚY_testrP   r‰   s               r@   Útest_ovr_multilabel_datasetrÊ   W  sÑ   € Ü 1Ñ%€HÜ ¨|¸\ÖJÑˆ�&Ü×6Ò6ØØØØØØØñ
‰ˆð ˜S˜b˜6 1 S b 6�Ø˜2˜3˜  2 3 �Ü! (Ó+×/Ñ/°ÓAˆØ—‘˜VÓ$ˆà��ÐˆÜÜ˜F°GÑ<¸dÈAò	
ô 	Ü˜°Ñ9¸6È1ô	
ò' KrS   c                  ó(  • [        SS9n S GH‚  n[        R                  " SSSSSUS	S
9u  p#US S US S pTUSS  n[        U 5      R	                  XE5      n[        [
        R                  " 5       5      R	                  XE5      n[        US5      (       a   e[        [
        R                  " SS95      n[        US5      (       a   eUR	                  XE5        [        US5      (       a   e[        US5      (       d   e[        [
        R                  " SS9SS/0S9n	[        U	5      n
[        U
S5      (       a   eU
R	                  XE5        [        U
S5      (       d   eUR                  U5      nUR                  U5      nUS:„  n[        XÛ5        GM…     g )Nr2   ro   )FTrU   rq   rf   r,   rr   r   rs   ry   r€   Fr·   r�   r¸   T)Ú
param_gridrz   )r   r   r{   r   r;   r   ÚSVRr`   r   r   r7   r€   r$   )r„   rÆ   r>   r…   r†   r‡   rˆ   rP   Údecision_onlyÚgsÚproba_after_fitr‰   rŒ   rO   s                 r@   Ú!test_ovr_multilabel_predict_probarÑ   q  s’  € Ü 1Ñ%€HÜˆÜ×6Ò6ØØØØØØØñ
‰ˆð ˜S˜b˜6 1 S b 6�Ø�2�3�ˆÜ! (Ó+×/Ñ/°ÓAˆô ,¬C¯GªG«IÓ6×:Ñ:¸7ÓLˆÜ˜=¨/×:Ñ:Ð:Ð:ô ,¬C¯GªGÀÑ,FÓGˆÜ˜=¨/×:Ñ:Ð:Ð:Ø×Ñ˜'Ô+Ü˜=¨/×:Ñ:Ð:Ð:Ü�}Ð&9×:Ñ:Ð:Ð:ô Ü�GŠG Ñ&°MÀDÀ6Ð3Jñ
ˆô .¨bÓ1ˆÜ˜?¨O×<Ñ<Ð<Ð<Ø×Ñ˜GÔ-Ü�¨×8Ñ8Ð8Ð8à—‘˜VÓ$ˆØ×#Ñ# FÓ+ˆð ˜‰}ˆÜ˜4×(òQ rS   c                  óê  • [        SS9n [        R                  [        R                  p!US S US S pCUSS  n[	        U 5      R                  X45      n[	        [        R                  " 5       5      R                  X45      n[        US5      (       a   eUR                  U5      nUR                  U5      n	[        U	R                  SS9S5        U	R                  SS9n
X¨-
  R                  5       (       a   eg )Nr2   ro   ry   r€   r¯   ç      ð?)r   rH   rI   rJ   r   r;   r   rÍ   r`   r7   r€   r#   Úsumr±   Úany)r„   r>   r…   r†   r‡   rˆ   rP   rÎ   r‰   rŒ   rO   s              r@   Ú#test_ovr_single_label_predict_probarÖ   ž  sÝ   € Ü 1Ñ%€HÜ�9‰9”d—k‘k€qØ˜˜"�v˜q  "˜vˆWØˆrˆsˆV€FÜ
˜hÓ
'×
+Ñ
+¨GÓ
=€Cô (¬¯ª«	Ó2×6Ñ6°wÓH€MÜ�} o×6Ñ6Ð6Ð6à�[‰[˜Ó €FØ×Ñ Ó'€Gä˜Ÿ™¨˜Ð+¨SÔ1ð �>‰>˜qˆ>Ð!€DØ‘×"Ñ"×$Ñ$Ð$Ð$Ð$rS   c            
      ó2  • [         R                  " SSSSSSSS9u  pU S S	 US S	 p2U S	S  n[        [        R                  " 5       5      R                  X#5      n[        UR                  U5      S:„  R                  [        5      UR                  U5      5        g )
NrU   rq   rf   r,   rr   Tr   rs   ry   )r   r{   r   r   r   r;   r$   r�   r‚   rƒ   r7   ©r>   r…   r†   r‡   rˆ   rP   s         r@   Ú%test_ovr_multilabel_decision_functionrÙ   ³  s•   € Ü×2Ò2ØØØØØØØñ�D€Að ˜˜"�v˜q  "˜vˆWØˆrˆsˆV€FÜ
œcŸgšg›iÓ
(×
,Ñ
,¨WÓ
>€CÜØ	×	Ñ	˜vÓ	&¨Ñ	*×2Ñ2´3Ó7¸¿¹ÀVÓ9LõrS   c                  ó   • [         R                  " SSSS9u  pU S S US S p2U SS  n[        [        R                  " 5       5      R                  X#5      n[        UR                  U5      R                  5       S:„  UR                  U5      5        g )NrU   rq   r   )rt   ru   r/   ry   )
r   Úmake_classificationr   r   r   r;   r$   r�   Úravelr7   rØ   s         r@   Ú'test_ovr_single_label_decision_functionrÝ   Å  s~   € Ü×'Ò'°#À"ÐSTÑU�D€AØ˜˜"�v˜q  "˜vˆWØˆrˆsˆV€FÜ
œcŸgšg›iÓ
(×
,Ñ
,¨WÓ
>€CÜ�s×,Ñ,¨VÓ4×:Ñ:Ó<¸qÑ@À#Ç+Á+ÈfÓBUÕVrS   c                  óü   • [        [        SS95      n / SQn[        U SU05      nUR                  [        R
                  [        R                  5        UR                  R                  S   R                  nX1;   d   eg ©Nr   r.   )çš™™™™™¹?rz   r4   Úestimator__C)
r   r   r   r;   rH   rI   rJ   Úbest_estimator_rL   ÚC)r<   ÚCsÚcvÚbest_Cs       r@   Útest_ovr_gridsearchrç   Í  sc   € Ü
œi°QÑ7Ó
8€CÚ	€BÜ	�c˜N¨BÐ/Ó	0€BØ‡F�FŒ4�9‰9”d—k‘kÔ"Ø×Ñ×+Ñ+¨AÑ.×0Ñ0€FØ‹<Ð‰<rS   c                  ó°  • [        S[        5       4/5      n [        U 5      nUR                  [        R
                  [        R                  5        [        [        5       5      nUR                  [        R
                  [        R                  5        [        UR                  [        R
                  5      UR                  [        R
                  5      5        g )NÚtree)	r   r   r   r;   rH   rI   rJ   r$   r7   )rP   Úovr_piper<   s      r@   Útest_ovr_pipelinerë   Ö  s„   € ô �VÔ3Ó5Ð6Ð7Ó
8€CÜ" 3Ó'€HØ‡L�L”—‘œDŸK™KÔ(Ü
Ô4Ó6Ó
7€CØ‡G�GŒD�I‰I”t—{‘{Ô#Ü�s—{‘{¤4§9¡9Ó-¨x×/?Ñ/?ÄÇ	Á	Ó/JÕKrS   c                  ó²   • [        [        SS95      n [        R                  " [        5         U R                  / 5        S S S 5        g ! , (       d  f       g = f©Nr   r.   )r   r   r5   r6   r   r7   ©Úovos    r@   Útest_ovo_exceptionsrð   â  s4   € Ü
œY°AÑ6Ó
7€CÜ	�Š”~Õ	&Ø�‰�BŒ÷ 
'×	&Ö	&úó   ­AÁ
Ac                  ó   • [        [        SS95      n U R                  [        R                  [        R
                  5      R                  [        R                  5      n[        R                   Vs/ s H  n[        U5      PM     nnU R                  U[        [        R
                  5      5      R                  U5      n[        X5        g s  snf rí   )	r   r   r;   rH   rI   rJ   r7   Úlistr$   )rï   Úprediction_from_arrayÚaÚiris_data_listÚprediction_from_lists        r@   Útest_ovo_fit_on_listrø   è  s�   € ô œY°AÑ6Ó
7€CØŸG™G¤D§I¡I¬t¯{©{Ó;×CÑCÄDÇIÁIÓNÐÜ'+§y¢yÓ1¢y !”d˜1–g¡y€NÐ1ØŸ7™7 >´4¼¿¹Ó3DÓE×MÑMØóÐô Ð,ÕCùò	 2s   Á0Cc                  ó*  • [        [        SS95      n U R                  [        R                  [        R
                  5      R                  [        R                  5        [        U R                  5      [        [        S-
  -  S-  :X  d   e[        [        5       5      n U R                  [        R                  [        R
                  5      R                  [        R                  5        [        U R                  5      [        [        S-
  -  S-  :X  d   eg )Nr   r.   r2   r3   )r   r   r;   rH   rI   rJ   r7   rK   rL   rM   r   rî   s    r@   Útest_ovo_fit_predictrú   ô  s³   € ä
œY°AÑ6Ó
7€CØ‡G�GŒD�I‰I”t—{‘{Ó#×+Ñ+¬D¯I©IÔ6Üˆs�‰Ó¤9´	¸A±Ñ#>ÀÑ#BÓBÐBÐBô œ]›_Ó
-€CØ‡G�GŒD�I‰I”t—{‘{Ó#×+Ñ+¬D¯I©IÔ6Üˆs�‰Ó¤9´	¸A±Ñ#>ÀÑ#BÓBÐBÑBrS   c                  óh  • [         R                  " 5       n U R                  U R                  p![	        [        5       5      nUR                  US S US S [        R                  " U5      5        UR                  USS  USS  5        UR                  U5      n[	        [        5       5      nUR                  X5        UR                  U5      n[        UR                  5      [        [        S-
  -  S-  :X  d   e[        R                  " X$:H  5      S:”  d   e[        XF5        [	        [        5       5      nUR                  US S US S [        R                  " U5      5        UR                  USS  USS  5        UR                  U5      n[	        [        5       5      nUR                  X5      R                  U5      n[        XF5        [        UR                  5      [        [        R                  " U5      5      :X  d   e[        R                  " X$:H  5      S:”  d   e[	        [        5       5      n[        R                   R#                  SS5      n/ SQnUR                  US S US S / S	Q5        UR                  USS  USS  5        UR                  U5      n[	        [        5       5      nUR                  X5      R                  U5      n[        X†5        [	        [        5       5      n/ S
Qn	[%        SR'                  [        R                  " U	5      [        R                  " U5      5      5      n
[(        R*                  " [,        U
S9   UR                  US S U	[        R                  " U5      5        S S S 5        [	        [/        5       5      n[1        US5      (       a   eg ! , (       d  f       N5= f)NrU   r2   r3   rG   é<   rV   )r2   r2   r3   r,   r,   r   r   r§   r§   r§   r§   r§   r3   r3   rZ   )r   r2   r3   r,   r§   )r   r2   r3   r,   r§   rf   r3   z6Mini-batch contains {0} while it must be subset of {1}r0   r[   )r   Ú	load_irisrI   rJ   r   r   r[   r9   r\   r7   r;   rK   rL   rM   rN   r#   r^   Úrandr   Úformatr5   r6   r8   r   r`   )Útempr>   r?   Úovo1rc   Úovo2rQ   rï   rO   Úerror_yÚ
message_rer<   s               r@   Útest_ovo_partial_fit_predictr     sã  € Ü×ÒÓ€DØ�9‰9�d—k‘k€qÜœm›oÓ.€DØ×Ñ�Q�t˜�W˜a  ˜g¤r§y¢y°£|Ô4Ø×Ñ�Q�s�t�W˜a  ˜gÔ&Ø�L‰L˜‹O€Eäœm›oÓ.€DØ‡H�HˆQ„NØ�L‰L˜‹O€EÜˆt×ÑÓ ¤I´¸Q±Ñ$?À!Ñ$CÓCÐCÐCÜ�7Š7�1‘:Ó Ó%Ð%Ð%Ü˜Ô%ô œm›oÓ.€DØ×Ñ�Q�s˜�V˜Q˜s ˜V¤R§Y¢Y¨q£\Ô2Ø×Ñ�Q�r�s�V˜Q˜r˜s˜VÔ$Ø�L‰L˜‹O€EÜœm›oÓ.€DØ�H‰H�Q‹N×"Ñ" 1Ó%€Eä˜Ô%Üˆt×ÑÓ ¤C¬¯	ª	°!«Ó$5Ó5Ð5Ð5Ü�7Š7�1‘:Ó Ó%Ð%Ð%ä
œ]›_Ó
-€CÜ
�	‰	�‰�r˜1Ó€AÚ2€AØ‡O�O�A�b�q�E˜1˜R˜a˜5¢/Ô2Ø‡O�O�A�a�b�E˜1˜Q˜R˜5Ô!Ø�;‰;�q‹>€DÜœm›oÓ.€DØ�H‰H�Q‹N×"Ñ" 1Ó%€EÜ˜Ô$ô œ]›_Ó
-€CÚ#€GÜØ@×GÑGÜ�IŠI�gÓ¤§	¢	¨!£ó	
ó€Jô
 
�Š”z¨Ó	4Ø�‰˜˜"˜1˜˜w¬¯	ª	°!«Ô5÷ 
5ô œS›UÓ
#€CÜ�s˜M×*Ñ*Ð*Ð*Ð*÷ 
5Õ	4ús   Í	+N#Î#
N1c                  óÊ  • [         R                  R                  S   n [        [	        SS95      nUR                  [         R                  [         R                  S:H  5        UR                  [         R                  5      nUR                  U 4:X  d   eUR                  [         R                  [         R                  5        UR                  [         R                  5      nUR                  U [        4:X  d   e[        UR                  SS9UR                  [         R                  5      5        [        R                  " U [        45      nSn[        [        5       Hp  n[        US-   [        5       HV  nUR                  U   R                  [         R                  5      nX7S:H  U4==   S-  ss'   X7S:H  U4==   S-  ss'   US-  nMX     Mr     [        U[        R                   " U5      5        [        [        5       Hb  n[#        US S 2U4   5      R%                  [#        / SQ5      5      (       d   e['        [        R(                  " US S 2U4   5      5      S:”  a  Mb   e   g )Nr   r.   r2   r¯   )rC   rÓ   rD   é’   )rH   rI   r—   r   r   r;   rJ   r�   rM   r$   r±   r7   r9   r”   ÚrangerL   Úroundr¨   ÚissubsetrK   r\   )	rt   Úovo_clfÚ	decisionsÚvotesÚkÚiÚjrO   Ú	class_idxs	            r@   Útest_ovo_decision_functionr  5  s×  € Ü—	‘	—‘ Ñ"€Iä ¤¸Ñ!:Ó;€Gà‡K�K”—	‘	œ4Ÿ;™;¨!Ñ+Ô,Ø×)Ñ)¬$¯)©)Ó4€IØ�?‰?˜y˜lÓ*Ð*Ð*ð ‡K�K”—	‘	œ4Ÿ;™;Ô'Ø×)Ñ)¬$¯)©)Ó4€Ià�?‰?˜y¬)Ð4Ó4Ð4Ð4Ü�y×'Ñ'¨QÐ'Ð/°·±ÄÇÁÓ1KÔLô �HŠH�i¤Ð+Ó,€Eà	€AÜ”9ÖˆÜ�q˜1‘uœiÖ(ˆAØ×&Ñ& qÑ)×1Ñ1´$·)±)Ó<ˆDØ˜!‘)˜Q�,Ó 1Ñ$ÓØ˜!‘)˜Q�,Ó 1Ñ$ÓØ�‰FŠAó	 )ñ ô �uœbŸhšh yÓ1Ô2äœ9Ö%ˆ	ô �5š˜I˜Ñ&Ó'×0Ñ0´²_Ó1E×FÑFÐFÐFô ”2—9’9˜Y¢q¨) |Ñ4Ó5Ó6¸Õ<Ð<Ð<ò &rS   c                  óü   • [        [        SS95      n / SQn[        U SU05      nUR                  [        R
                  [        R                  5        UR                  R                  S   R                  nX1;   d   eg rß   )
r   r   r   r;   rH   rI   rJ   râ   rL   rã   )rï   rä   rå   ræ   s       r@   Útest_ovo_gridsearchr  d  sc   € Ü
œY°AÑ6Ó
7€CÚ	€BÜ	�c˜N¨BÐ/Ó	0€BØ‡F�FŒ4�9‰9”d—k‘kÔ"Ø×Ñ×+Ñ+¨AÑ.×0Ñ0€FØ‹<Ð‰<rS   c                  óÞ  • [         R                  " SS/SS/SS/SS//5      n [         R                  " / SQ5      n[        [        SSS S95      nUR	                  X5      R                  U 5      nUR                  U 5      n[         R                  " U5      nXE-
  n[        US	S S 24   S5        [        [         R                  " USS  SS
9USS  5        US	   US	   R                  5       :X  d   eg )Nr2   r3   r’   rg   ©r3   r   r2   r3   Fr§   ©r!   rX   rY   r   r¯   )
r9   r:   r   r   r;   r7   r�   r	  r$   r±   )r>   r?   Ú	multi_clfÚovo_predictionÚovo_decisionr  Únormalized_confidencess          r@   Útest_ovo_tiesr  m  sæ   € ô 	�Š�1�a�&˜1˜a˜& 2 q '¨B°¨8Ð4Ó5€AÜ
�Š’Ó€AÜ"¤:°eÀaÈTÑ#RÓS€IØ—]‘] 1Ó(×0Ñ0°Ó3€NØ×.Ñ.¨qÓ1€Lô �HŠH�\Ó"€EØ)Ñ1Ðô �u˜Q¢˜T‘{ AÔ&ä”r—y’y  q r °Ñ3°^ÀAÀBÐ5GÔHà˜!ÑÐ 6°qÑ 9× @Ñ @Ó BÓBÐBÑBrS   c            	      ó.  • [         R                  " SS/SS/SS/SS//5      n [         R                  " / SQ5      n[        S5       HL  nX-   S-  n[        [	        SSS S	95      nUR                  X5      R                  U 5      nUS
   US-  :X  a  ML   e   g )Nr2   r3   r’   rg   r  r,   Fr§   r  r   )r9   r:   r  r   r   r;   r7   )r>   Úy_refr  r?   r  r  s         r@   Útest_ovo_ties2r  …  s–   € ä
�Š�1�a�&˜1˜a˜& 2 q '¨B°¨8Ð4Ó5€AÜ�HŠH’\Ó"€Eô �1ŽXˆØ‰Y˜!‰OˆÜ&¤z¸%È!ÐQUÑ'VÓWˆ	Ø"Ÿ™ qÓ,×4Ñ4°QÓ7ˆØ˜aÑ  A¨¡EÕ)Ð)Ð)ò	 rS   c                  óÜ   • [         R                  " S5      n [         R                  " / SQ5      n[        [	        5       5      nUR                  X5        [        XR                  U 5      5        g )Nr§   )rõ   ÚbÚcÚd)r9   Úeyer:   r   r   r;   r$   r7   )r>   r?   rï   s      r@   Útest_ovo_string_yr%  ’  sE   € ä
�Šˆq‹	€AÜ
�ŠÒ%Ó&€Aä
œY›[Ó
)€CØ‡G�GˆA„MÜ�qŸ+™+ a›.Õ)rS   c                  ó  • [         R                  " S5      n [         R                  " S/S-  5      n[        [	        5       5      nSn[
        R                  " [        US9   UR                  X5        S S S 5        g ! , (       d  f       g = f)Nr§   rõ   zwhen only one classr0   )	r9   r$  r:   r   r   r5   r6   r8   r;   ©r>   r?   rï   r=   s       r@   Útest_ovo_one_classr(  œ  sY   € ä
�Šˆq‹	€AÜ
�Š�#�˜‘Ó€Aä
œY›[Ó
)€CØ
€CÜ	�Š”z¨Ó	-Ø�‰�Œ÷ 
.×	-Ö	-ús   ÁA:Á:
Bc                  ó  • [         R                  n [         R                  S S 2S4   n[        [        5       5      nSn[        R
                  " [        US9   UR                  X5        S S S 5        g ! , (       d  f       g = f©Nr   zUnknown label typer0   )rH   rI   r   r   r5   r6   r8   r;   r'  s       r@   Útest_ovo_float_yr+  §  sR   € ä�	‰	€AÜ�	‰	’!�Q�$‰€Aä
œY›[Ó
)€CØ
€CÜ	�Š”z¨Ó	-Ø�‰�Œ÷ 
.×	-Ö	-úó   ÁA1Á1
A?c                  ó²   • [        [        SS95      n [        R                  " [        5         U R                  / 5        S S S 5        g ! , (       d  f       g = frí   )r   r   r5   r6   r   r7   ©Úecocs    r@   Útest_ecoc_exceptionsr0  ²  s5   € Ü¤	°qÑ 9Ó:€DÜ	�Š”~Õ	&Ø�‰�RÔ÷ 
'×	&Ö	&úrñ   c                  ó  • [        [        SS9SSS9n U R                  [        R                  [        R
                  5      R                  [        R                  5        [        U R                  5      [        S-  :X  d   e[        [        5       SSS9n U R                  [        R                  [        R
                  5      R                  [        R                  5        [        U R                  5      [        S-  :X  d   eg )Nr   r.   r3   )Ú	code_sizer/   )r   r   r;   rH   rI   rJ   r7   rK   rL   rM   r   r.  s    r@   Útest_ecoc_fit_predictr3  ¸  s¬   € ä¤	°qÑ 9ÀQÐUVÑW€DØ‡H�HŒT�Y‰YœŸ™Ó$×,Ñ,¬T¯Y©YÔ7Üˆt×ÑÓ ¤I°¡MÓ1Ð1Ð1ô  ¤£¸1È1ÑM€DØ‡H�HŒT�Y‰YœŸ™Ó$×,Ñ,¬T¯Y©YÔ7Üˆt×ÑÓ ¤I°¡MÓ1Ð1Ñ1rS   c                  óú   • [        [        SS9SS9n / SQn[        U SU05      nUR                  [        R
                  [        R                  5        UR                  R                  S   R                  nX1;   d   eg rß   )
r   r   r   r;   rH   rI   rJ   râ   rL   rã   )r/  rä   rå   ræ   s       r@   Útest_ecoc_gridsearchr5  Ä  se   € Ü¤	°qÑ 9ÈÑJ€DÚ	€BÜ	�d˜^¨RÐ0Ó	1€BØ‡F�FŒ4�9‰9”d—k‘kÔ"Ø×Ñ×+Ñ+¨AÑ.×0Ñ0€FØ‹<Ð‰<rS   c                  ó  • [         R                  n [         R                  S S 2S4   n[        [        5       5      nSn[        R
                  " [        US9   UR                  X5        S S S 5        g ! , (       d  f       g = fr*  )rH   rI   r   r   r5   r6   r8   r;   r'  s       r@   Útest_ecoc_float_yr7  Í  sR   € ä�	‰	€AÜ�	‰	’!�Q�$‰€Aä
œy›{Ó
+€CØ
€CÜ	�Š”z¨Ó	-Ø�‰�Œ÷ 
.×	-Ö	-úr,  Úcsc_containerc                 óT  • [         R                  [         R                  p!U " U5      n[        [        SSS.S9n[        USS9n[        R                  " [        SS9   UR                  X25        S S S 5        UR                  X5        [        R                  " [        SS9   UR                  U5        S S S 5        [        [        SS95      nUR                  X25      R                  U5        [        UR                  5      S	:X  d   eg ! , (       d  f       N = f! , (       d  f       Nm= f)
NTF)Ú	ensure_2dÚaccept_sparse)Úcheck_XÚcheck_X_paramsr   r.   zSparse data was passedr0   r§   )rH   rI   rJ   r"   r    r   r5   r6   Ú	TypeErrorr;   r7   r   rK   rL   )r8  r>   r?   ÚX_spÚbase_estimatorr/  s         r@   Ú(test_ecoc_delegate_sparse_base_estimatorrA  Ø  sæ   € ô �9‰9”d—k‘k€qÙ˜Ó€Dô (ÜØ%)¸EÑBñ€Nô   ¸QÑ?€Dä	�Š”yÐ(@Ó	AØ�‰�Ô÷ 
Bð 	‡H�HˆQ„NÜ	�Š”yÐ(@Ó	AØ�‰�TÔ÷ 
Bô  ¤	°qÑ 9Ó:€DØ‡H�HˆTÓ×Ñ˜dÔ#Üˆt×ÑÓ  AÓ%Ð%Ñ%÷ 
BÕ	Aú÷ 
BÕ	Aús   ÁDÂ DÄ
DÄ
D'c                  óŒ  • [         R                  " SS9n [        R                  [        R                  p![        U 5      n[        R                  " XR                  5      nUR                  XB5        [        UR                  5      nUR                  nU H.  nUR                  S   U-  US-
  -  UR                  S   :X  a  M.   e   g )NÚprecomputed©Úkernelr   r2   )r   r   rH   rI   rJ   r   r9   Údotr¹   r;   rK   rL   Úpairwise_indices_r—   )Úclf_precomputedr>   r?   Ú	ovr_falseÚlinear_kernelÚn_estimatorsÚprecomputed_indicesÚidxs           r@   Útest_pairwise_indicesrN  ó  sŸ   € Ü—g’g ]Ñ3€OÜ�9‰9”d—k‘k€qä" ?Ó3€IÜ—F’F˜1Ÿc™c“N€MØ‡M�M�-Ô#ä�y×,Ñ,Ó-€LØ#×5Ñ5Ðã"ˆà�I‰I�a‰L˜<Ñ'¨<¸!Ñ+;Ñ<À×@SÑ@SÐTUÑ@VÕVð	
ØVò #rS   c                  óª  • [         R                  [         R                  pUS   S:X  d   eU SS n USS nU R                  S:X  d   e[        R
                  " SS9R                  X5      nUR                  S:X  d   e[        U5      R                  X5      nUR                  S:X  d   eUR                   H  nUR                  S:X  a  M   e   [        U5      R                  X5      nUR                  S:X  d   eUR                  S:X  d   e[        UR                  5      S:X  d   eUR                   H  nUR                  S:X  a  M   e   X R                  -  nUR                  S	:X  d   e[        R
                  " S
S9R                  Xa5      nUR                  S:X  d   e[        U5      R                  Xa5      nUR                  S:X  d   eUR                  S:X  d   e[        UR                  5      S:X  d   eUR                   H  nUR                  S:X  a  M   e   [        U5      R                  Xa5      n	U	R                  S:X  d   eUR                  S:X  d   e[        UR                  5      S:X  d   eU	R                  S   R                  S:X  d   eU	R                  S   R                  S:X  d   eU	R                  S   R                  S:X  d   eg)aÀ  Check the n_features_in_ attributes of the meta and base estimators

When the training data is a regular design matrix, everything is intuitive.
However, when the training data is a precomputed kernel matrix, the
multiclass strategy can resample the kernel matrix of the underlying base
estimator both row-wise and column-wise and this has a non-trivial impact
on the expected value for the n_features_in_ of both the meta and the base
estimators.
rg   r   N)é•   r§   ÚlinearrD  r§   r,   )rP  rP  rC  rP  éc   r2   r3   rU   )rH   rI   rJ   r—   r   r   r;   Ún_features_in_r   rL   r   Ú
n_classes_rK   r¹   )
r>   r?   Úclf_notprecomputedÚovr_notprecomputedÚestÚovo_notprecomputedÚKrH  Úovr_precomputedÚovo_precomputeds
             r@   Útest_pairwise_n_features_inr\    sÆ  € ô �9‰9”d—k‘k€qð ˆR‰5�A‹:Ðˆ:Ø	ˆ#ˆ2ˆ€AØ	ˆ#ˆ2ˆ€Að �7‰7�hÓÐÐäŸš¨Ñ1×5Ñ5°aÓ;ÐØ×,Ñ,°Ó1Ð1Ð1ä,Ð-?Ó@×DÑDÀQÓJÐØ×,Ñ,°Ó1Ð1Ð1Ø!×-Ô-ˆØ×!Ñ! QÕ&Ð&Ð&ñ .ô ,Ð,>Ó?×CÑCÀAÓIÐØ×,Ñ,°Ó1Ð1Ð1Ø×(Ñ(¨AÓ-Ð-Ð-ÜÐ!×-Ñ-Ó.°!Ó3Ð3Ð3Ø!×-Ô-ˆØ×!Ñ! QÕ&Ð&Ð&ñ .ð
 	
�C‰C‰€AØ�7‰7�jÓ Ð Ð ä—g’g ]Ñ3×7Ñ7¸Ó=€OØ×)Ñ)¨SÓ0Ð0Ð0ä)¨/Ó:×>Ñ>¸qÓD€OØ×)Ñ)¨SÓ0Ð0Ð0Ø×%Ñ%¨Ó*Ð*Ð*Üˆ×*Ñ*Ó+¨qÓ0Ð0Ð0Ø×*Ô*ˆØ×!Ñ! SÕ(Ð(Ð(ñ +ô )¨Ó9×=Ñ=¸aÓC€OØ×)Ñ)¨SÓ0Ð0Ð0Ø×%Ñ%¨Ó*Ð*Ð*Üˆ×*Ñ*Ó+¨qÓ0Ð0Ð0Ø×&Ñ& qÑ)×8Ñ8¸BÓ>Ð>Ð>Ø×&Ñ& qÑ)×8Ñ8¸BÓ>Ð>Ð>Ø×&Ñ& qÑ)×8Ñ8¸CÓ?Ð?Ñ?rS   ÚMultiClassClassifierc                 óÞ   • [         R                  " SS9n[         R                  " 5       nU " U5      nUR                  5       S   (       a   eU " U5      nUR                  5       S   (       d   eg )NrC  rD  Úpairwise)r   r   Ú	_get_tags)r]  rH  rU  rI  Úovr_trues        r@   Útest_pairwise_tagrb  I  sa   € ô —g’g ]Ñ3€OÜŸš›Ðá$Ð%7Ó8€IØ×"Ñ"Ó$ Z×0Ð0Ð0á# OÓ4€HØ×ÑÓ 
×+Ð+Ñ+rS   c                 ó4  • [         R                  " SS9n[         R                  " SS9n[        R                  [        R                  pCU " U5      nU " U5      n[
        R                  " X3R                  5      n[        XSUSS9n[        XgUSS9n	[        X˜5        g )NrC  rD  rQ  Úraise)Úerror_score)
r   r   rH   rI   rJ   r9   rF  r¹   r   r$   )
r]  rH  rU  r>   r?   Úmulticlass_clf_notprecomputedÚmulticlass_clf_precomputedrJ  Úscore_not_precomputedÚscore_precomputeds
             r@   Útest_pairwise_cross_val_scorerj  W  s‰   € ô —g’g ]Ñ3€OÜŸš¨Ñ1Ðä�9‰9”d—k‘k€qá$8Ð9KÓ$LÐ!Ù!5°oÓ!FÐä—F’F˜1Ÿc™c“N€MÜ+Ø%¨!¸ñÐô (Ø"°1À'ñÐô Ð(Õ@rS   c                 ó¶  • [         R                  R                  S5      n[        R                  [        R
                  p2[         R                  " U5      nUR                  SS/UR                  SS/S9R                  [        5      n[         R                  X$'   [        [        5       [        US95      nU " U5      R                  X#5      R!                  X#5        g )Né*   r2   r   rà   rk   )Úpr.   )r9   r^   ÚRandomStaterH   rI   rJ   ÚcopyÚchoicer—   r‚   ÚboolÚnanr   r	   r   r;   r¾   )r]  Úrngr>   r?   ÚmaskÚlrs         r@   Útest_support_missing_valuesrv  m  sœ   € ô �)‰)×
Ñ
 Ó
#€CÜ�9‰9”d—k‘k€qÜ
�Š�‹
€AØ�:‰:�q˜!�f˜aŸg™g¨#¨s¨ˆ:Ð4×;Ñ;¼DÓA€DÜ�f‰f€A�GÜ	”}“Ô(:ÈÑ(LÓ	M€Bá˜Ó× Ñ  Ó&×,Ñ,¨QÕ2rS   Úmake_yc                 ó6  • [         R                  " S5      nU " S[         R                  S9n[        [	        5       5      nUR                  X5        UR                  U5      n[         R                  " UR                  S   S45      nSUSS2S4'   [        XE5        g)zMCheck that constant y target does not raise.

Non-regression test for #21869
r�   )r‘   r2   )Údtyper   r3   r2   N)
r9   r“   Úint32r   r   r;   r€   r”   r—   r   )rw  r>   r?   r<   r˜   Úexpecteds         r@   Útest_constant_int_targetr|  €  sz   € ô 	�Š�Ó€AÙˆwœbŸh™hÑ'€AÜ
Ô0Ó2Ó
3€Cà‡G�GˆA„MØ×Ñ˜qÓ!€FÜ�xŠx˜Ÿ™ ™ Q˜Ó(€HØ€HŠQ�ˆT�NÜ�FÕ%rS   c                  óÜ   • [        SS9u  p[        SSS9n[        U5      nUR                  X5        UR                  X5        [	        UR                  U 5      UR                  U 5      5        g)zVCheck that ovo is consistent with binary classifier.

Non-regression test for #13617.
T)Ú
return_X_yé   Údistance)Ún_neighborsÚweightsN)r   r   r   r;   r$   r7   )r>   r?   rP   rï   s       r@   Ú)test_ovo_consistent_binary_classificationrƒ  ‘  sV   € ô
 ¨Ñ.�D€Aä
¨1°jÑ
A€CÜ
˜SÓ
!€Cà‡G�GˆA„MØ‡G�GˆA„Mä�s—{‘{ 1“~ s§{¡{°1£~Õ6rS   c                  ó¨  • [         R                  " 5       n [        [        SS9S9nSnSn[        R
                  " [        US9 nUR                  U R                  U R                  5        SSS5        [        WR                  R                  [        5      (       d   eU[        UR                  R                  5      ;   d   eg! , (       d  f       N_= f)zðCheck that we raise the proper AttributeError when the final estimator
does not implement the `partial_fit` method, which is decorated with
`available_if`.

Non-regression test for:
https://github.com/scikit-learn/scikit-learn/issues/28108
rl  r.   )Ú	estimatorz9This 'OneVsRestClassifier' has no attribute 'partial_fit'z:'LogisticRegression' object has no attribute 'partial_fit'r0   N)r   rý   r   r   r5   r6   ÚAttributeErrorr[   rI   rJ   Ú
isinstanceÚvalueÚ	__cause__Ústr)rH   rP   Ú	outer_msgÚ	inner_msgÚ	exec_infos        r@   Ú)test_multiclass_estimator_attribute_errorrŽ  ¡  sœ   € ô ×ÒÓ€Dô Ô(:ÈÑ(KÑ
L€CàK€IØL€IÜ	�Š”~¨YÒ	7¸9Ø�‰˜Ÿ	™	 4§;¡;Ô/÷ 
8ä�i—o‘o×/Ñ/´×@Ñ@Ð@Ð@Øœ˜IŸO™O×5Ñ5Ó6Ó6Ð6Ñ6÷ 
8Õ	7ús   Á'CÃ
C)€Úrer   Únumpyr9   r5   Úscipy.sparseÚsparser}   Únumpy.testingr   Úsklearnr   r   Úsklearn.datasetsr   Úsklearn.exceptionsr   Úsklearn.imputer	   Úsklearn.linear_modelr
   r   r   r   r   r   r   Úsklearn.metricsr   r   Úsklearn.model_selectionr   r   Úsklearn.multiclassr   r   r   Úsklearn.naive_bayesr   Úsklearn.neighborsr   Úsklearn.pipeliner   r   Úsklearn.svmr   r   Úsklearn.treer   r   Úsklearn.utilsr    r!   Úsklearn.utils._mockingr"   Úsklearn.utils._testingr#   r$   Úsklearn.utils.fixesr%   r&   r'   r(   r)   Úsklearn.utils.multiclassr*   r+   r=   ÚmarkÚfilterwarningsÚ
pytestmarkrý   rH   r^   rn  rs  ÚpermutationrJ   ÚsizeÚpermrI   rM   rA   rE   rR   rd   ri   rl   ÚparametrizerŽ   r™   r¬   rº   r¼   r¿   rÊ   rÑ   rÖ   rÙ   rÝ   rç   rë   rð   rø   rú   r  r  r  r  r  r%  r(  r+  r0  r3  r5  r7  rA  rN  r\  rb  rj  rv  r“   r”   r|  rƒ  rŽ  © rS   r@   Ú<module>r®     sÜ  ðÝ ã Û Ý Ý )ç !Ý /Ý -Ý (÷÷ ñ ÷ :ß A÷ñ õ
 .Ý 2ß 4ß &ß F÷õ 6ß J÷õ ÷ Rà7€Ø�[‰[×'Ñ'¨'°#°°nÐ(EÓF€
à×ÒÓ€Ø‡i�i×Ñ˜AÓ€Ø
‡��t—{‘{×'Ñ'Ó(€Ø�I‰I�d‰O€„	Ø�k‰k˜$Ñ€„Ø€	ò7ò((ò/ò !+òH
'ò.ð$ ‡�×ÑØØ�^Ñ# nÑ4°~ÑEÈÑVóñ&Eó	ð&EòR!<òH.ò4%8òPò&3ò
ò4*)òZ%ò*ò$Wòò	Lòò	Dò	Cò2+òj,=ò^òCò0
*ò*òòòò	2òòð ‡�×Ñ˜¨.Ó9ñ&ó :ð&ò4
ò"B@ðJ ‡�×ÑØÐ0Ð2DÐEóñ,óð,ð ‡�×ÑØÐ0Ð2DÐEóñAóðAð& ‡�×ÑØÐ0Ð2DÐEóñ
3óð
3ð ‡�×Ñ˜ B§G¡G¨R¯X©XÐ#6Ó7ñ&ó 8ð&ò 7ó 7rS   