Ë
    êÿæi�†  ã                   ó<  — d dl mZ d dlZd dl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 d dlmZ d dlmZ d dlmZ d d	lmZmZmZmZmZmZmZ d d
l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) d dl*m+Z+ d dl,m-Z-m.Z. d dl/m0Z0m1Z1 d dl2m3Z3m4Z4 d dl5m6Z6m7Z7 d dl8m9Z9 d dl:m;Z;m<Z< d dl=m>Z>m?Z?m@Z@mAZAmBZB d dlCmDZDmEZE  ejŒ                  «       ZGej�                  j“                  d «      ZJeJj—                  eGj˜                  jš                  «      ZNeGjž                  eN   eG_O        eGj˜                  eN   eG_L        dZPd„ ZQd„ ZRd„ ZSd„ ZTd„ ZUd„ ZVd„ ZWej°                  j³                  de@e?z   e>z   eAz   eBz   «      d „ «       ZZd!„ Z[d"„ Z\d#„ Z]d$„ Z^d%„ Z_d&„ Z`d'„ Zad(„ Zbd)„ Zcd*„ Zdd+„ Zed,„ Zfd-„ Zgd.„ Zhd/„ Zid0„ Zjd1„ Zkd2„ Zld3„ Zmd4„ Znd5„ Zod6„ Zpd7„ Zqd8„ Zrd9„ Zsd:„ Ztd;„ Zud<„ Zvej°                  j³                  d=e?«      d>„ «       Zwd?„ Zxd@„ Zyej°                  j³                  dAe&e%g«      dB„ «       Zzej°                  j³                  dAe&e%g«      dC„ «       Z{ej°                  j³                  dAe&e%g«      dD„ «       Z|ej°                  j³                  dEejú                  ejü                  g«      dF„ «       ZdG„ Z€dH„ Z�y)Ié    )ÚescapeN)Úassert_allclose)ÚdatasetsÚsvm)ÚBaseEstimatorÚClassifierMixin)Ú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_targeté   c                  óÖ  — t        t        d¬«      «      } t        j                  t        «      5  | j                  g «       d d d «       d}t        j                  t        |¬«      5  t        j                  ddgddgg«      }t        j                  ddgddgg«      }t        t        «       «      j                  ||«       d d d «       t        j                  t        |¬«      5  t        j                  ddgddgg«      }t        j                  dd	gd
dgg«      }t        t        «       «      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)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       úr/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/sklearn/tests/test_multiclass.pyÚtest_ovr_exceptionsrC   9   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°°AÔ6÷ 
.ô
 
�‰”z¨Ö	-Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&ˆÜ�H‰H�s˜C�j 3¨ *Ð-Ó.ˆÜœM›OÓ,×0Ñ0°°AÔ6÷ 
.Ð	-÷ 
'Ñ	&ú÷
 
.Ð	-ú÷
 
.Ð	-ús%   ¯EÁ&AEÃ#AEÅEÅEÅE(c                  ó¾   — t        j                  g d¢«      } t        | «      }t        j                  t
        |¬«      5  t        | «       d d d «       y # 1 sw Y   y xY w)N)ç        gš™™™™™ñ?ç       @g      @r2   )r;   r<   r-   r7   r8   r:   r,   )rA   r?   s     rB   Ú!test_check_classification_targetsrG   M   s=   € ä
�‰Ò%Ó&€AÜ
˜Ó
€CÜ	�‰”z¨Ö	-Ü$ QÔ'÷ 
.×	-Ñ	-ús   ¾AÁAc                  óH  —  G d„ dt         «      } t        j                  dgdgdgdgg«      }t        j                  g d¢«      }t         | «       «      j	                  ||«      }t        |j                  |«      t        j                  |j                  |«      d¬«      «       y)zbCheck that ties-breaking matches np.argmax behavior

    Non-regression test for issue #14124
    c                   ó   — e Zd Zd„ Zd„ Zy)útest_ovr_ties.<locals>.Dummyc                 ó   — | S ©N© ©Úselfr@   rA   s      rB   r=   z test_ovr_ties.<locals>.Dummy.fit\   s   € ØˆKó    c                 ó>   — t        j                  t        |«      «      S rL   )r;   ÚzerosÚlen)rO   r@   s     rB   Údecision_functionz.test_ovr_ties.<locals>.Dummy.decision_function_   s   € Ü—8‘8œC ›FÓ#Ð#rP   N)Ú__name__Ú
__module__Ú__qualname__r=   rT   rM   rP   rB   ÚDummyrJ   [   s   „ ò	ó	$rP   rX   r   )r   r4   r5   r.   r4   ©ÚaxisN)	r   r;   r<   r   r=   r&   r9   ÚargmaxrT   )rX   r@   rA   Úclfs       rB   Útest_ovr_tiesr]   U   s   € ô$”ô $ô 	�‰�1�#˜�s˜Q˜C ! Ð%Ó&€AÜ
�‰’Ó€AÜ
™e›gÓ
&×
*Ñ
*¨1¨aÓ
0€CÜ�s—{‘{ 1“~¤r§y¡y°×1FÑ1FÀqÓ1IÐPQÔ'RÕSrP   c                  ó^  — t        t        d¬«      «      } | j                  t        j                  t        j
                  «      j                  t        j                  «      }t        | j                  «      t        k(  sJ ‚t        d¬«      }|j                  t        j                  t        j
                  «      j                  t        j                  «      }t        j                  t        j
                  |k(  «      t        j                  t        j
                  |k(  «      k(  sJ ‚t        t        «       «      } | j                  t        j                  t        j
                  «      j                  t        j                  «      }t        j                  t        j
                  |k(  «      dkD  sJ ‚y )Nr   r0   çÍÌÌÌÌÌä?)r   r   r=   ÚirisÚdataÚtargetr9   rS   Úestimators_Ú	n_classesr;   Úmeanr   )r>   Úpredr\   Úpred2s       rB   Útest_ovr_fit_predictrh   h   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—;‘; $Ñ&Ó'¨$Ò.Ð.Ñ.rP   c                  ó¶  — t        t        j                  t        j                  d¬«      \  } }t	        t        «       «      }|j                  | d d |d d t        j                  |«      «       |j                  | dd  |dd  «       |j                  | «      }t	        t        «       «      }|j                  | |«      j                  | «      }t        ||«       t        |j                  «      t        t        j                  |«      «      k(  sJ ‚t        j                  ||k(  «      dkD  sJ ‚t        j                  t        j                   j#                  dd«      «      } g d¢}t	        t%        dd d	d¬
«      «      }|j                  | d d |d d t        j                  |«      «       |j                  | dd  |dd  «       |j                  | «      }t	        t%        dd d	d¬
«      «      }|j                  | |«      j                  | «      }t        j                  ||k(  «      t        j                  ||k(  «      k(  sJ ‚t	        t'        «       «      }t)        |d«      rJ ‚y )Nr   r0   éd   r_   é   r5   ©r4   r4   r4   r4   r5   r.   r.   r   r   r5   r.   r4   r5   r.   r4   F)Úmax_iterÚtolr#   r1   é   Úpartial_fit)r#   r`   ra   rb   r   r   rp   r;   Úuniquer9   r=   r%   rS   rc   re   ÚabsÚrandomÚrandnr   r   Úhasattr)r@   rA   r>   rf   Úovr2rg   Úovr1Úpred1s           rB   Útest_ovr_partial_fitry   x   sè  € ä”4—9‘9œdŸk™k¸Ô:�D€A€qÜ
œ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ä˜˜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˜1‘9Ó¤§¡¨°!©Ó!4Ò4Ð4Ð4ô œc›eÓ
$€CÜ�s˜MÔ*Ð*Ð*Ð*rP   c                  ó’  — t        t        «       «      } t        j                  t        j                  j                  dd«      «      }g d¢}| j                  |d d |d d t        j                  |«      «       dg|dd z   }d}t        j                  t        |¬«      5  | j                  |dd  |¬	«       d d d «       y # 1 sw Y   y xY w)
Nrk   r5   rl   ro   é   éÿÿÿÿzAMini-batch contains \[.+\] while classes must be subset of \[.+\]r2   )r@   rA   )r   r   r;   rr   rs   rt   rp   rq   r7   r8   r:   )r>   r@   rA   Úy1r?   s        rB   Útest_ovr_partial_fit_exceptionsr~   œ   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                  ó>  — t        t        «       «      } | j                  t        j                  t        j
                  «      j                  t        j                  «      }t        | j                  «      t        k(  sJ ‚t        t        j                  |«      g d¢«       t        j                  |t        j
                  k(  «      dkD  sJ ‚t        t        «       «      } | j                  t        j                  t        j
                  «      j                  t        j                  «      }t        | j                  «      t        t        dz
  z  dz  k(  sJ ‚t        t        j                  |«      g d¢«       t        j                  |t        j
                  k(  «      dkD  sJ ‚y )N)r   r4   r5   çÍÌÌÌÌÌì?r4   r5   )r   r!   r=   r`   ra   rb   r9   rS   rc   rd   r&   r;   rq   re   r   )r>   rf   s     rB   Útest_ovr_ovo_regressorr�   ©   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Ÿ;™;Ñ&Ó'¨#Ò-Ð-Ñ-rP   Úsparse_containerc           	      ó  — t        d¬«      }t        j                  ddddddd	¬
«      \  }}|d d |d d }}|dd  }t        |«      j	                  ||«      }|j                  |«      }t        |«      j	                  | | |«      «      }	|	j                  |«      }
|j                  sJ ‚t        j                  |
«      sJ ‚t        |
j                  «       |«       |	j                  |«      }|dkD  }t        ||
j                  «       «       t        j                  «       }t        |«      j	                  | | |«      «      }	|	j                  |«      d	kD  j                  t         «      }t        ||	j                  |«      j                  «       «       y )Nr4   ©Úalpharj   é   r{   r.   é2   Tr   ©Ú	n_samplesÚ
n_featuresrd   Ún_labelsÚlengthÚallow_unlabeledr1   éP   ç      à?)r   r   Úmake_multilabel_classificationr   r=   r9   Úmultilabel_ÚspÚissparser&   ÚtoarrayÚpredict_probar   r   rT   ÚastypeÚint)r‚   Úbase_clfr@   ÚYÚX_trainÚY_trainÚX_testr\   ÚY_predÚclf_sprsÚY_pred_sprsÚY_probarf   Údec_preds                 rB   Útest_ovr_fit_predict_sparser¢   »   st  € ô
  1Ô%€Hä×2Ñ2ØØØØØØØô�D€A€qð ˜˜"�v˜q  "˜vˆW€GØˆrˆsˆV€Fä
˜hÓ
'×
+Ñ
+¨G°WÓ
=€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ÕDrP   c                  ó<  — t        j                  d«      } d| d d…d d …f<   t        j                  d«      }d|dd …df<   d|d d …df<   d|d d …df<   t        t	        «       «      }d}t        j                  t        |¬«      5  |j                  | |«       d d d «       |j                  | «      }t        t        j                  |«      t        j                  |«      «       |j                  | «      }t        j                  |d d …d	d …f   «      dk(  sJ ‚|j                  | «      }t        |d d …d
f   t        j                  | j                  d   «      «       t        j                  d«      }d|dd …df<   t        t	        «       «      }d}t        j                  t        |¬«      5  |j                  | |«       d d d «       |j                  | «      }t        |d d …d
f   t        j                  | j                  d   «      «       y # 1 sw Y   �ŒsxY w# 1 sw Y   Œ[xY w)N©é
   r5   r   r{   )r¥   r.   r4   r5   z,Label .+ is present in all training examplesr2   éþÿÿÿr|   z/Label not 1 is present in all training examples)r;   ÚonesrR   r   r   r7   ÚwarnsÚUserWarningr=   r9   r&   r<   rT   rq   r•   Úshape)r@   rA   r>   r?   Úy_preds        rB   Ú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¨Ö	-Ø�‰��1Œ÷ 
.à�[‰[˜‹^€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¨Ö	-Ø�‰��1Œ÷ 
.à×Ñ˜qÓ!€FÜ�vša ˜e‘}¤b§h¡h¨q¯w©w°q©zÓ&:Õ;÷% 
.Ñ	-ú÷ 
.Ð	-ús   ÂHÆ%HÈHÈHc                  ó’  — t        j                  g d¢g d¢g d¢g d¢g d¢g«      } g d¢}t        j                  g d¢g d¢g d	¢g d¢g d	¢g«      }t        d
j                  «       «      }t	        «       t        d¬«      t        «       t        «       t        «       fD ]®  }t        |«      j                  | |«      }t        |j                  «      |k(  sJ ‚|j                  t        j                  g d¢g«      «      d   }t        |dg«       t        |«      j                  | |«      }|j                  g d¢g«      d   }t        |g d¢«       Œ° y )N©r   r   r{   ©r   r{   r   ©r.   r   r   ©r   r   é   ©r²   r   r   )ÚeggsÚspamÚhamr´   r¶   )r   r   r4   ©r   r4   r   ©r4   r   r   zham eggs spamr   r0   ©r   r   é   r´   )r;   r<   ÚsetÚsplitr   r   r   r   r   r   r=   Úclasses_r9   r&   )r@   rA   r™   Úclassesr˜   r\   r«   s          rB   Útest_ovr_multiclassr¿     s	  € ä
�‰’)šYª	²9ºiÐHÓI€AÚ.€AÜ
�‰’)šYª	²9ºiÐHÓI€Aä�/×'Ñ'Ó)Ó*€Gô 	‹Ü˜qÔ!ÜÓÜ‹Ü‹óˆô " (Ó+×/Ñ/°°1Ó5ˆÜ�3—<‘<Ó  GÒ+Ð+Ð+Ø—‘œRŸX™X¢y kÓ2Ó3°AÑ6ˆÜ˜6 F 8Ô,ô " (Ó+×/Ñ/°°1Ó5ˆØ—‘ši˜[Ó)¨!Ñ,ˆÜ˜6¢9Õ-ñrP   c                  óª  ‡‡‡‡— t        j                  g d¢g d¢g d¢g d¢g d¢g«      Šg d¢Št        j                  g d¢g«      j                  Št        dj	                  «       «      Šdˆˆˆˆfd	„	} t        d
¬«      t        «       t        «       t        «       fD ]
  } | |«       Œ t        «       t        d¬«      t        «       fD ]  } | |d¬«       Œ y )Nr®   r¯   r°   r±   r³   )r´   rµ   rµ   r´   rµ   )r   r4   r4   r   r4   z	eggs spamc                 ó˜  •— t        | «      j                  ‰‰
«      }t        |j                  «      ‰	k(  sJ ‚|j	                  t        j                  g d¢g«      «      d   }t        |dg«       t        | d«      r"|j                  ‰«      }|j                  dk(  sJ ‚|rtt        j                  g d¢g«      }|j                  |«      }dt        |d   «      k(  sJ ‚|j                  t        j                  |d¬«         |j	                  |«      k(  sJ ‚t        | «      j                  ‰‰«      }|j	                  g d	¢g«      d   }|dk(  sJ ‚y )
Nr¹   r   r´   rT   )r{   r5   r4   rY   r°   )r   r=   r»   r½   r9   r;   r<   r&   ru   rT   rª   r•   rS   r[   )r˜   Útest_predict_probar\   r«   Údecrœ   Úprobabilitiesr@   r™   r¾   rA   s          €€€€rB   Úconduct_testz%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Ø×'Ñ'¨Ó*ˆCØ—9‘9 Ò$Ð$Ð$áÜ—X‘Xšy˜kÓ*ˆFØ×-Ñ-¨fÓ5ˆMØœ˜M¨!Ñ,Ó-Ò-Ð-Ð-Ø—<‘<¤§	¡	¨-¸aÔ @ÑAÀSÇ[Á[ÐQWÓEXÒXÐXÐXô " (Ó+×/Ñ/°°1Ó5ˆØ—‘ši˜[Ó)¨!Ñ,ˆØ˜Š{Ð‰{rP   r   r0   T©Úprobability)rÂ   )F)r;   r<   ÚTr»   r¼   r   r   r   r   r   r   r   )rÅ   r˜   r@   r™   r¾   rA   s     @@@@rB   Útest_ovr_binaryrÉ   &  s®   û€ ä
�‰’)šYª	²9ºiÐHÓI€AÚ0€AÜ
�‰’/Ð"Ó#×%Ñ%€Aä�+×#Ñ#Ó%Ó&€G÷ð ô* 	˜qÔ!ÜÓÜ‹Ü‹ó	ˆñ 	�XÕðô #“_¤c°dÔ&;Ô=OÓ=QÓRˆÙ�X°$Ö7ñ SrP   c                  ó²  — t        j                  g d¢g d¢g d¢g d¢g d¢g«      } t        j                  g d¢g d¢g d¢g d	¢g d
¢g«      }t        «       t        d¬«      t	        «       t        «       t        «       t        d¬«      fD ]P  }t        |«      j                  | |«      }|j                  g d¢g«      d   }t        |g d¢«       |j                  rŒPJ ‚ y )N)r   rº   r{   r¯   )r.   r.   r.   )rº   r   r²   r³   )r   r4   r4   r·   )r4   r4   r4   )r4   r   r4   r¸   r   r0   r�   r„   )r   rº   rº   )r;   r<   r   r   r   r   r   r   r   r=   r9   r&   r‘   )r@   rA   r˜   r\   r«   s        rB   Útest_ovr_multilabelrË   N  s«   € ä
�‰’)šYª	²9ºiÐHÓI€AÜ
�‰’)šYª	²9ºiÐHÓI€Aô 	‹Ü˜qÔ!ÜÓÜ‹Ü‹Ü�CÔóˆô " (Ó+×/Ñ/°°1Ó5ˆØ—‘ši˜[Ó)¨!Ñ,ˆÜ˜6¢9Ô-Ø�‹ÐˆñrP   c                  ó4  — t        t        j                  «       «      } | j                  t        j
                  t        j                  «       t        | j                  «      dk(  sJ ‚| j                  t        j
                  t        j                  «      dkD  sJ ‚y )Nr.   r€   )
r   r   r   r=   r`   ra   rb   rS   rc   Úscore)r>   s    rB   Útest_ovr_fit_predict_svcrÎ   a  s`   € Ü
œcŸg™g›iÓ
(€CØ‡G�GŒD�I‰I”t—{‘{Ô#Üˆs�‰Ó 1Ò$Ð$Ð$Ø�9‰9”T—Y‘Y¤§¡Ó,¨sÒ2Ð2Ñ2rP   c            
      óŠ  — t        d¬«      } t        ddd«      D ]§  \  }}}t        j                  dddd	d
|d¬«      \  }}|d d |d d }}|dd  |dd  }	}t	        | «      j                  ||«      }
|
j                  |«      }|
j                  sJ ‚t        t        |	|d¬«      |d	¬«       t        t        |	|d¬«      |d	¬«       Œ© y )Nr4   r„   )TF)çR¸…ëQà?g…ëQ¸å?)rÐ   r6   rj   r†   r{   r5   r‡   r   rˆ   rŽ   Úmicro)Úaverage)Údecimal)r   Úzipr   r�   r   r=   r9   r‘   r%   r   r   )r˜   ÚauÚprecÚrecallr@   r™   rš   r›   rœ   ÚY_testr\   r�   s               rB   Útest_ovr_multilabel_datasetrÙ   h  sß   € Ü 1Ô%€HÜ ¨|¸\ÖJÑˆˆD�&Ü×6Ñ6ØØØØØØØô
‰ˆˆ1ð ˜S˜b˜6 1 S b 6�ˆØ˜2˜3˜  2 3 �ˆÜ! (Ó+×/Ñ/°¸ÓAˆØ—‘˜VÓ$ˆà�ŠÐˆÜÜ˜F F°GÔ<¸dÈAõ	
ô 	Ü˜ °Ô9¸6È1ö	
ñ' KrP   c            
      ó  — t        d¬«      } dD �]r  }t        j                  ddddd|d	¬
«      \  }}|d d |d d }}|dd  }t        | «      j	                  ||«      }t        t        j                  «       «      j	                  ||«      }t        |d«      rJ ‚t        t        j                  d¬«      «      }t        |d«      rJ ‚|j	                  ||«       t        |d«      rJ ‚t        |d«      sJ ‚t        t        j                  d¬«      ddgi¬«      }	t        |	«      }
t        |
d«      rJ ‚|
j	                  ||«       t        |
d«      sJ ‚|j                  |«      }|j                  |«      }|dkD  }t        ||«       �Œu y )Nr4   r„   )FTrj   r†   r{   r.   r‡   r   rˆ   rŽ   r•   FrÆ   rT   rÇ   T)Ú
param_gridr�   )r   r   r�   r   r=   r   ÚSVRru   r   r   r9   r•   r&   )r˜   rÕ   r@   r™   rš   r›   rœ   r\   Údecision_onlyÚgsÚproba_after_fitr�   r    rf   s                 rB   Ú!test_ovr_multilabel_predict_probarà   ‚  sŽ  € Ü 1Ô%€HÜˆÜ×6Ñ6ØØØØØØØô
‰ˆˆ1ð ˜S˜b˜6 1 S b 6�ˆØ�2�3�ˆÜ! (Ó+×/Ñ/°¸ÓAˆô ,¬C¯G©G«IÓ6×:Ñ:¸7ÀGÓLˆÜ˜=¨/Ô:Ð:Ð:ô ,¬C¯G©GÀÔ,FÓGˆÜ˜=¨/Ô:Ð:Ð:Ø×Ñ˜' 7Ô+Ü˜=¨/Ô:Ð:Ð:Ü�}Ð&9Ô:Ð:Ð:ô Ü�G‰G Ô&°MÀDÀ6Ð3Jô
ˆô .¨bÓ1ˆÜ˜?¨OÔ<Ð<Ð<Ø×Ñ˜G WÔ-Ü�¨Ô8Ð8Ð8à—‘˜VÓ$ˆØ×#Ñ# FÓ+ˆð ˜‰}ˆÜ˜4 Ö(ñQ rP   c                  óð  — t        d¬«      } t        j                  t        j                  }}|d d |d d }}|dd  }t	        | «      j                  ||«      }t	        t        j                  «       «      j                  ||«      }t        |d«      rJ ‚|j                  |«      }|j                  |«      }	t        |	j                  d¬«      d«       |	j                  d¬«      }
|
|z
  j                  «       rJ ‚y )Nr4   r„   rŽ   r•   rY   ç      ð?)r   r`   ra   rb   r   r=   r   rÜ   ru   r9   r•   r%   Úsumr[   Úany)r˜   r@   r™   rš   r›   rœ   r\   rÝ   r�   r    rf   s              rB   Ú#test_ovr_single_label_predict_probarå   ¯  sá   € Ü 1Ô%€HÜ�9‰9”d—k‘k€q€AØ˜˜"�v˜q  "˜vˆW€GØˆrˆsˆV€FÜ
˜hÓ
'×
+Ñ
+¨G°WÓ
=€Cô (¬¯©«	Ó2×6Ñ6°wÀÓH€MÜ�} oÔ6Ð6Ð6à�[‰[˜Ó €FØ×Ñ Ó'€Gä˜Ÿ™¨˜Ó+¨SÔ1ð �>‰>˜qˆ>Ó!€DØ�v‘×"Ñ"Ô$Ð$Ð$Ð$rP   c                  óê   —  G d„ dt         t        «      }  | «       }t        j                  t        j                  }}t        |«      j                  ||«      }|j                  |«      }t        |d«       y)zmCheck that predic_proba returns all zeros when the base estimator
    never predicts the positive class.
    c                   ó   — e Zd Zd„ Zd„ Zy)úGtest_ovr_single_label_predict_proba_zero.<locals>.NaiveBinaryClassifierc                 ó:   — t        j                  |«      | _        | S rL   )r;   rq   r½   rN   s      rB   r=   zKtest_ovr_single_label_predict_proba_zero.<locals>.NaiveBinaryClassifier.fitÊ  s   € ÜŸI™I a›LˆDŒMØˆKrP   c                 óX   — t        j                  t        |«      df«      }d|d d …df<   |S )Nr5   r   r4   )r;   r§   rS   )rO   r@   Úprobas      rB   r•   zUtest_ovr_single_label_predict_proba_zero.<locals>.NaiveBinaryClassifier.predict_probaÎ  s*   € Ü—G‘GœS ›V Q˜KÓ(ˆEàˆE’!�Q�$‰KØˆLrP   N)rU   rV   rW   r=   r•   rM   rP   rB   ÚNaiveBinaryClassifierrè   É  s   „ ò	ó	rP   rì   rE   N)	r   r   r`   ra   rb   r   r=   r•   r   )rì   r˜   r@   rA   r\   Úy_probas         rB   Ú(test_ovr_single_label_predict_proba_zerorî   Ä  s\   € ô
	¤¬ô 	ñ %Ó&€HÜ�9‰9”d—k‘k€q€Aä
˜hÓ
'×
+Ñ
+¨A¨qÓ
1€CØ×Ñ Ó"€Gä�G˜SÕ!rP   c            	      ó:  — t        j                  ddddddd¬«      \  } }| d d	 |d d	 }}| d	d  }t        t        j                  «       «      j                  ||«      }t        |j                  |«      dkD  j                  t        «      |j                  |«      «       y )
Nrj   r†   r{   r.   r‡   Tr   rˆ   rŽ   )r   r�   r   r   r   r=   r&   rT   r–   r—   r9   ©r@   r™   rš   r›   rœ   r\   s         rB   Ú%test_ovr_multilabel_decision_functionrñ   Ý  s›   € Ü×2Ñ2ØØØØØØØô�D€A€qð ˜˜"�v˜q  "˜vˆW€GØˆrˆsˆV€FÜ
œcŸg™g›iÓ
(×
,Ñ
,¨W°gÓ
>€CÜØ	×	Ñ	˜vÓ	&¨Ñ	*×2Ñ2´3Ó7¸¿¹ÀVÓ9LõrP   c                  ó(  — t        j                  ddd¬«      \  } }| d d |d d }}| dd  }t        t        j                  «       «      j                  ||«      }t        |j                  |«      j                  «       dkD  |j                  |«      «       y )Nrj   r†   r   )r‰   rŠ   r1   rŽ   )
r   Úmake_classificationr   r   r   r=   r&   rT   Úravelr9   rð   s         rB   Ú'test_ovr_single_label_decision_functionrõ   ï  s„   € Ü×'Ñ'°#À"ÐSTÔU�D€A€qØ˜˜"�v˜q  "˜vˆW€GØˆrˆsˆV€FÜ
œcŸg™g›iÓ
(×
,Ñ
,¨W°gÓ
>€CÜ�s×,Ñ,¨VÓ4×:Ñ:Ó<¸qÑ@À#Ç+Á+ÈfÓBUÕVrP   c                  ó   — t        t        d¬«      «      } g d¢}t        | d|i«      }|j                  t        j
                  t        j                  «       |j                  j                  d   j                  }||v sJ ‚y ©Nr   r0   )çš™™™™™¹?r�   r6   Úestimator__C)
r   r   r   r=   r`   ra   rb   Úbest_estimator_rc   ÚC)r>   ÚCsÚcvÚbest_Cs       rB   Útest_ovr_gridsearchrÿ   ÷  se   € Ü
œi°QÔ7Ó
8€CÚ	€BÜ	�c˜N¨BÐ/Ó	0€BØ‡F�FŒ4�9‰9”d—k‘kÔ"Ø×Ñ×+Ñ+¨AÑ.×0Ñ0€FØ�R‰<Ð‰<rP   c                  ó°  — t        dt        «       fg«      } t        | «      }|j                  t        j
                  t        j                  «       t        t        «       «      }|j                  t        j
                  t        j                  «       t        |j                  t        j
                  «      |j                  t        j
                  «      «       y )NÚtree)	r   r    r   r=   r`   ra   rb   r&   r9   )r\   Úovr_piper>   s      rB   Ú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ÕKrP   c                  ó¬   — t        t        d¬«      «      } t        j                  t        «      5  | j                  g «       d d d «       y # 1 sw Y   y xY w©Nr   r0   )r   r   r7   r8   r
   r9   ©Úovos    rB   Útest_ovo_exceptionsr    s4   € Ü
œY°AÔ6Ó
7€CÜ	�‰”~Õ	&Ø�‰�BŒ÷ 
'×	&Ñ	&úó   ¯A
Á
Ac                  ó¢  — t        t        d¬«      «      } | j                  t        j                  t        j
                  «      j                  t        j                  «      }t        j                  D �cg c]  }t        |«      ‘Œ }}| j                  |t        t        j
                  «      «      j                  |«      }t        ||«       y c c}w r  )	r   r   r=   r`   ra   rb   r9   Úlistr&   )r  Úprediction_from_arrayÚaÚiris_data_listÚprediction_from_lists        rB   Ú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ØóÐô Ð,Ð.BÕCùò	 2s   Á3Cc                  ó,  — t        t        d¬«      «      } | j                  t        j                  t        j
                  «      j                  t        j                  «       t        | j                  «      t        t        dz
  z  dz  k(  sJ ‚t        t        «       «      } | j                  t        j                  t        j
                  «      j                  t        j                  «       t        | j                  «      t        t        dz
  z  dz  k(  sJ ‚y )Nr   r0   r4   r5   )r   r   r=   r`   ra   rb   r9   rS   rc   rd   r   r  s    rB   Ú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ÑBrP   c                  óP  — t        j                  «       } | j                  | j                  }}t	        t        «       «      }|j                  |d d |d d t        j                  |«      «       |j                  |dd  |dd  «       |j                  |«      }t	        t        «       «      }|j                  ||«       |j                  |«      }t        |j                  «      t        t        dz
  z  dz  k(  sJ ‚t        j                  ||k(  «      dkD  sJ ‚t        ||«       t	        t        «       «      }|j                  |d d |d d t        j                  |«      «       |j                  |dd  |dd  «       |j                  |«      }t	        t        «       «      }|j                  ||«      j                  |«      }t        ||«       t        |j                  «      t        t        j                  |«      «      k(  sJ ‚t        j                  ||k(  «      dkD  sJ ‚t	        t        «       «      }t        j                   j#                  dd«      }g d¢}|j                  |d d |d d g d	¢«       |j                  |dd  |dd  «       |j                  |«      }t	        t        «       «      }|j                  ||«      j                  |«      }t        ||«       t	        t        «       «      }g d
¢}	t%        dj'                  t        j                  |	«      t        j                  |«      «      «      }
t)        j*                  t,        |
¬«      5  |j                  |d d |	t        j                  |«      «       d d d «       t	        t/        «       «      }t1        |d«      rJ ‚y # 1 sw Y   Œ+xY w)Nrj   r4   r5   r_   é<   rk   )r4   r4   r5   r.   r.   r   r   rº   rº   rº   rº   rº   r5   r5   ro   )r   r4   r5   r.   rº   )r   r4   r5   r.   rº   r{   r5   z6Mini-batch contains {0} while it must be subset of {1}r2   rp   )r   Ú	load_irisra   rb   r   r   rp   r;   rq   r9   r=   rS   rc   rd   re   r%   rs   Úrandr   Úformatr7   r8   r:   r   ru   )Útempr@   rA   Úovo1rx   Úovo2rg   r  rf   Úerror_yÚ
message_rer>   s               rB   Útest_ovo_partial_fit_predictr  *  sò  € Ü×ÑÓ€DØ�9‰9�d—k‘k€q€AÜœ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˜‘:Ó Ò%Ð%Ð%Ü˜˜uÔ%ô œ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ä˜˜uÔ%Üˆ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Ü˜˜eÔ$ô œ]›_Ó
-€CÚ#€GÜØ@×GÑGÜ�I‰I�gÓ¤§	¡	¨!£ó	
ó€Jô
 
�‰”z¨Ö	4Ø�‰˜˜"˜1˜˜w¬¯	©	°!«Ô5÷ 
5ô œS›UÓ
#€CÜ�s˜MÔ*Ð*Ð*Ð*÷ 
5Ð	4ús   Í*NÎN%c                  ó¸  — t         j                  j                  d   } t        t	        d¬«      «      }|j                  t         j                  t         j                  dk(  «       |j                  t         j                  «      }|j                  | fk(  sJ ‚|j                  t         j                  t         j                  «       |j                  t         j                  «      }|j                  | t        fk(  sJ ‚t        |j                  d¬«      |j                  t         j                  «      «       t        j                  | t        f«      }d}t        t        «      D ]o  }t        |dz   t        «      D ]W  }|j                  |   j                  t         j                  «      }||dk(  |fxx   dz  cc<   ||dk(  |fxx   dz  cc<   |dz  }ŒY Œq t        |t        j                   |«      «       t        t        «      D ]Z  }t#        |d d …|f   «      j%                  t#        g d¢«      «      sJ ‚t'        t        j(                  |d d …|f   «      «      dkD  rŒZJ ‚ y )Nr   r0   r4   rY   )rE   râ   rF   é’   )r`   ra   rª   r   r   r=   rb   rT   rd   r&   r[   r9   r;   rR   Úrangerc   Úroundr»   ÚissubsetrS   rq   )	r‰   Úovo_clfÚ	decisionsÚvotesÚkÚiÚjrf   Ú	class_idxs	            rB   Útest_ovo_decision_functionr*  _  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ô ”2—9‘9˜Y¢q¨) |Ñ4Ó5Ó6¸Ó<Ð<Ð<ñ &rP   c                  ó   — t        t        d¬«      «      } g d¢}t        | d|i«      }|j                  t        j
                  t        j                  «       |j                  j                  d   j                  }||v sJ ‚y r÷   )
r   r   r   r=   r`   ra   rb   rú   rc   rû   )r  rü   rý   rþ   s       rB   Útest_ovo_gridsearchr,  Ž  se   € Ü
œY°AÔ6Ó
7€CÚ	€BÜ	�c˜N¨BÐ/Ó	0€BØ‡F�FŒ4�9‰9”d—k‘kÔ"Ø×Ñ×+Ñ+¨AÑ.×0Ñ0€FØ�R‰<Ð‰<rP   c                  óä  — t        j                  ddgddgddgddgg«      } t        j                  g d¢«      }t        t        ddd ¬«      «      }|j	                  | |«      j                  | «      }|j                  | «      }t        j                  |«      }||z
  }t        |d	d d …f   d«       t        t        j                  |dd  d¬
«      |dd  «       |d	   |d	   j                  «       k(  sJ ‚y )Nr4   r5   r¦   r|   ©r5   r   r4   r5   Frº   ©r#   rm   rn   r   rY   )
r;   r<   r   r   r=   r9   rT   r!  r&   r[   )r@   rA   Ú	multi_clfÚovo_predictionÚovo_decisionr%  Únormalized_confidencess          rB   Útest_ovo_tiesr4  —  sê   € ô 	�‰�1�a�&˜1˜a˜& 2 q '¨B°¨8Ð4Ó5€AÜ
�‰’Ó€AÜ"¤:°eÀaÈTÔ#RÓS€IØ—]‘] 1 aÓ(×0Ñ0°Ó3€NØ×.Ñ.¨qÓ1€Lô �H‰H�\Ó"€EØ)¨EÑ1Ðô �u˜Q¢˜T‘{ AÔ&ä”r—y‘y  q r °Ô3°^ÀAÀBÐ5GÔHà˜!ÑÐ 6°qÑ 9× @Ñ @Ó BÒBÐBÑBrP   c                  ó.  — t        j                  ddgddgddgddgg«      } t        j                  g d¢«      }t        d«      D ]O  }||z   dz  }t        t	        ddd ¬	«      «      }|j                  | |«      j                  | «      }|d
   |dz  k(  rŒOJ ‚ y )Nr4   r5   r¦   r|   r.  r.   Frº   r/  r   )r;   r<   r   r   r   r=   r9   )r@   Úy_refr'  rA   r0  r1  s         rB   Útest_ovo_ties2r7  ¯  sš   € ä
�‰�1�a�&˜1˜a˜& 2 q '¨B°¨8Ð4Ó5€AÜ�H‰H’\Ó"€Eô �1ŽXˆØ�Q‰Y˜!‰OˆÜ&¤z¸%È!ÐQUÔ'VÓWˆ	Ø"Ÿ™ q¨!Ó,×4Ñ4°QÓ7ˆØ˜aÑ  A¨¡EÓ)Ð)Ð)ñ	 rP   c                  óÜ   — t        j                  d«      } t        j                  g d¢«      }t        t	        «       «      }|j                  | |«       t        ||j                  | «      «       y )Nrº   )r  ÚbÚcÚd)r;   Úeyer<   r   r   r=   r&   r9   )r@   rA   r  s      rB   Útest_ovo_string_yr=  ¼  sI   € ä
�‰ˆq‹	€AÜ
�‰Ò%Ó&€Aä
œY›[Ó
)€CØ‡G�GˆAˆq„MÜ�q˜#Ÿ+™+ a›.Õ)rP   c                  ó  — t        j                  d«      } t        j                  dgdz  «      }t        t	        «       «      }d}t        j                  t        |¬«      5  |j                  | |«       d d d «       y # 1 sw Y   y xY w)Nrº   r  zwhen only one classr2   )	r;   r<  r<   r   r   r7   r8   r:   r=   ©r@   rA   r  r?   s       rB   Útest_ovo_one_classr@  Æ  s[   € ä
�‰ˆq‹	€AÜ
�‰�#�˜‘Ó€Aä
œY›[Ó
)€CØ
€CÜ	�‰”z¨Ö	-Ø�‰��1Œ÷ 
.×	-Ñ	-ús   ÁA;Á;Bc                  ó   — t         j                  } t         j                  d d …df   }t        t        «       «      }d}t	        j
                  t        |¬«      5  |j                  | |«       d d d «       y # 1 sw Y   y xY w©Nr   zUnknown label typer2   )r`   ra   r   r   r7   r8   r:   r=   r?  s       rB   Útest_ovo_float_yrC  Ñ  sT   € ä�	‰	€AÜ�	‰	’!�Q�$‰€Aä
œY›[Ó
)€CØ
€CÜ	�‰”z¨Ö	-Ø�‰��1Œ÷ 
.×	-Ñ	-úó   ÁA4Á4A=c                  ó¬   — t        t        d¬«      «      } t        j                  t        «      5  | j                  g «       d d d «       y # 1 sw Y   y xY wr  )r   r   r7   r8   r
   r9   ©Úecocs    rB   Útest_ecoc_exceptionsrH  Ü  s5   € Ü¤	°qÔ 9Ó:€DÜ	�‰”~Õ	&Ø�‰�RÔ÷ 
'×	&Ñ	&úr	  c                  ó  — t        t        d¬«      dd¬«      } | j                  t        j                  t        j
                  «      j                  t        j                  «       t        | j                  «      t        dz  k(  sJ ‚t        t        «       dd¬«      } | j                  t        j                  t        j
                  «      j                  t        j                  «       t        | j                  «      t        dz  k(  sJ ‚y )Nr   r0   r5   )Ú	code_sizer1   )r   r   r=   r`   ra   rb   r9   rS   rc   rd   r   rF  s    rB   Útest_ecoc_fit_predictrK  â  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Ñ1rP   c                  ó  — t        t        d¬«      d¬«      } g d¢}t        | d|i«      }|j                  t        j
                  t        j                  «       |j                  j                  d   j                  }||v sJ ‚y r÷   )
r   r   r   r=   r`   ra   rb   rú   rc   rû   )rG  rü   rý   rþ   s       rB   Útest_ecoc_gridsearchrM  î  sg   € Ü¤	°qÔ 9ÈÔJ€DÚ	€BÜ	�d˜^¨RÐ0Ó	1€BØ‡F�FŒ4�9‰9”d—k‘kÔ"Ø×Ñ×+Ñ+¨AÑ.×0Ñ0€FØ�R‰<Ð‰<rP   c                  ó   — t         j                  } t         j                  d d …df   }t        t        «       «      }d}t	        j
                  t        |¬«      5  |j                  | |«       d d d «       y # 1 sw Y   y xY wrB  )r`   ra   r   r   r7   r8   r:   r=   r?  s       rB   Útest_ecoc_float_yrO  ÷  sT   € ä�	‰	€AÜ�	‰	’!�Q�$‰€Aä
œy›{Ó
+€CØ
€CÜ	�‰”z¨Ö	-Ø�‰��1Œ÷ 
.×	-Ñ	-úrD  Úcsc_containerc                 ó`  — t         j                  t         j                  }} | |«      }t        t        dddœ¬«      }t        |d¬«      }t        j                  t        d¬«      5  |j                  ||«       d d d «       |j                  ||«       t        j                  t        d¬«      5  |j                  |«       d d d «       t        t        d¬«      «      }|j                  ||«      j                  |«       t        |j                  «      d	k(  sJ ‚y # 1 sw Y   Œ¡xY w# 1 sw Y   ŒfxY w)
NTF)Ú	ensure_2dÚaccept_sparse)Úcheck_XÚcheck_X_paramsr   r0   zSparse data was passedr2   rº   )r`   ra   rb   r$   r"   r   r7   r8   Ú	TypeErrorr=   r9   r   rS   rc   )rP  r@   rA   ÚX_spÚbase_estimatorrG  s         rB   Ú(test_ecoc_delegate_sparse_base_estimatorrY    sî   € ô �9‰9”d—k‘k€q€AÙ˜Ó€Dô (ÜØ%)¸EÑBô€Nô   ¸QÔ?€Dä	�‰”yÐ(@Ö	AØ�‰��qÔ÷ 
Bð 	‡H�HˆQ�„NÜ	�‰”yÐ(@Ö	AØ�‰�TÔ÷ 
Bô  ¤	°qÔ 9Ó:€DØ‡H�HˆT�1Ó×Ñ˜dÔ#Üˆt×ÑÓ  AÒ%Ð%Ñ%÷ 
BÐ	Aú÷ 
BÐ	Aús   Á%DÂ-D$ÄD!Ä$D-c                  óŽ  — t        j                  d¬«      } t        j                  t        j                  }}t        | «      }t        j                  ||j                  «      }|j                  ||«       t        |j                  «      }|j                  }|D ],  }|j                  d   |z  |dz
  z  |j                  d   k(  rŒ,J ‚ y )NÚprecomputed©Úkernelr   r4   )r   r   r`   ra   rb   r   r;   ÚdotrÈ   r=   rS   rc   Úpairwise_indices_rª   )Úclf_precomputedr@   rA   Ú	ovr_falseÚlinear_kernelÚn_estimatorsÚprecomputed_indicesÚidxs           rB   Útest_pairwise_indicesrf    s¥   € Ü—g‘g ]Ô3€OÜ�9‰9”d—k‘k€q€Aä" ?Ó3€IÜ—F‘F˜1˜aŸc™c“N€MØ‡M�M�- Ô#ä�y×,Ñ,Ó-€LØ#×5Ñ5Ðã"ˆà�I‰I�a‰L˜<Ñ'¨<¸!Ñ+;Ñ<À×@SÑ@SÐTUÑ@VÓVð	
ØVñ #rP   c                  óŒ  — t         j                  t         j                  }} |d   dk(  sJ ‚| dd } |dd }| j                  dk(  sJ ‚t	        j
                  d¬«      j                  | |«      }|j                  dk(  sJ ‚t        |«      j                  | |«      }|j                  dk(  sJ ‚|j                  D ]  }|j                  dk(  rŒJ ‚ t        |«      j                  | |«      }|j                  dk(  sJ ‚|j                  dk(  sJ ‚t        |j                  «      dk(  sJ ‚|j                  D ]  }|j                  dk(  rŒJ ‚ | | j                  z  }|j                  d	k(  sJ ‚t	        j
                  d
¬«      j                  ||«      }|j                  dk(  sJ ‚t        |«      j                  ||«      }|j                  dk(  sJ ‚|j                  dk(  sJ ‚t        |j                  «      dk(  sJ ‚|j                  D ]  }|j                  dk(  rŒJ ‚ t        |«      j                  ||«      }	|	j                  dk(  sJ ‚|j                  dk(  sJ ‚t        |j                  «      dk(  sJ ‚|	j                  d   j                  dk(  sJ ‚|	j                  d   j                  dk(  sJ ‚|	j                  d   j                  dk(  sJ ‚y)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.
    r|   r   N)é•   rº   Úlinearr\  rº   r.   )rh  rh  r[  rh  éc   r4   r5   rj   )r`   ra   rb   rª   r   r   r=   Ún_features_in_r   rc   r   Ú
n_classes_rS   rÈ   )
r@   rA   Úclf_notprecomputedÚovr_notprecomputedÚestÚovo_notprecomputedÚKr`  Úovr_precomputedÚovo_precomputeds
             rB   Útest_pairwise_n_features_inrt  .  sÖ  € ô �9‰9”d—k‘k€q€Að ˆ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ÀqÓIÐØ×,Ñ,°Ò1Ð1Ð1Ø×(Ñ(¨AÒ-Ð-Ð-ÜÐ!×-Ñ-Ó.°!Ò3Ð3Ð3Ø!×-Ô-ˆØ×!Ñ! QÓ&Ð&Ð&ð .ð
 	
ˆA�C‰C‰€AØ�7‰7�jÒ Ð Ð ä—g‘g ]Ô3×7Ñ7¸¸1Ó=€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Ò?Ð?Ñ?rP   ÚMultiClassClassifierc                 ó  — t        j                  d¬«      }t        j                  «       } | |«      }|j                  «       j                  j                  rJ ‚ | |«      }|j                  «       j                  j                  sJ ‚y )Nr[  r\  )r   r   Ú__sklearn_tags__Ú
input_tagsÚpairwise)ru  r`  rm  ra  Úovr_trues        rB   Útest_pairwise_tagr{  s  so   € ô —g‘g ]Ô3€OÜŸ™›Ðá$Ð%7Ó8€IØ×)Ñ)Ó+×6Ñ6×?Ò?Ð?Ð?á# OÓ4€HØ×$Ñ$Ó&×1Ñ1×:Ò:Ð:Ñ:rP   c                 óP  — t        j                  d¬«      }t        j                  d¬«      }t        j                  t        j                  }} | |«      } | |«      }t        j                  ||j                  «      }t        |||d¬«      }t        |||d¬«      }	t        |	|«       y )Nr[  r\  ri  Úraise)Úerror_score)
r   r   r`   ra   rb   r;   r^  rÈ   r   r&   )
ru  r`  rm  r@   rA   Úmulticlass_clf_notprecomputedÚmulticlass_clf_precomputedrb  Úscore_not_precomputedÚscore_precomputeds
             rB   Útest_pairwise_cross_val_scorerƒ  �  s”   € ô —g‘g ]Ô3€OÜŸ™¨Ô1Ðä�9‰9”d—k‘k€q€Aá$8Ð9KÓ$LÐ!Ù!5°oÓ!FÐä—F‘F˜1˜aŸc™c“N€MÜ+Ø% q¨!¸ôÐô (Ø" M°1À'ôÐô Ð(Ð*?Õ@rP   c                 óÈ  — t         j                  j                  d«      }t        j                  t        j
                  }}t        j                  |«      }|j                  ddg|j                  ddg¬«      j                  t        «      }t         j                  ||<   t        t        «       t        |¬«      «      } | |«      j                  ||«      j!                  ||«       y )Né*   r4   r   rø   r€   )Úpr0   )r;   rs   ÚRandomStater`   ra   rb   ÚcopyÚchoicerª   r–   ÚboolÚnanr   r   r   r=   rÍ   )ru  Úrngr@   rA   ÚmaskÚlrs         rB   Útest_support_missing_valuesr�  —  s¤   € ô �)‰)×
Ñ
 Ó
#€CÜ�9‰9”d—k‘k€q€AÜ
�‰�‹
€AØ�:‰:�q˜!�f˜aŸg™g¨#¨s¨ˆ:Ó4×;Ñ;¼DÓA€DÜ�f‰f€A€d�GÜ	”}“Ô(:ÈÔ(LÓ	M€Bá˜Ó× Ñ   AÓ&×,Ñ,¨Q°Õ2rP   Úmake_yc                 ó<  — t        j                  d«      } | dt         j                  ¬«      }t        t	        «       «      }|j                  ||«       |j                  |«      }t        j                  |j                  d   df«      }d|dd…df<   t        ||«       y)zUCheck that constant y target does not raise.

    Non-regression test for #21869
    r¤   )r¥   r4   )Údtyper   r5   r4   N)
r;   r§   Úint32r   r   r=   r•   rR   rª   r   )r�  r@   rA   r>   r«   Úexpecteds         rB   Útest_constant_int_targetr•  ª  s~   € ô 	�‰�Ó€AÙˆwœbŸh™hÔ'€AÜ
Ô0Ó2Ó
3€Cà‡G�GˆAˆq„MØ×Ñ˜qÓ!€FÜ�x‰x˜Ÿ™ ™ Q˜Ó(€HØ€HŠQ�ˆT�NÜ�F˜HÕ%rP   c                  óî   — t        d¬«      \  } }t        dd¬«      }t        |«      }|j                  | |«       |j                  | |«       t	        |j                  | «      |j                  | «      «       y)z^Check 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&   r9   )r@   rA   r\   r  s       rB   Ú)test_ovo_consistent_binary_classificationrœ  »  s\   € ô
 ¨Ô.�D€A€qä
¨1°jÔ
A€CÜ
˜SÓ
!€Cà‡G�GˆAˆq„MØ‡G�GˆAˆq„Mä�s—{‘{ 1“~ s§{¡{°1£~Õ6rP   c                  óž  — t        j                  «       } t        t        d¬«      ¬«      }d}d}t	        j
                  t        |¬«      5 }|j                  | j                  | j                  «       ddd«       t        j                  j                  t        «      sJ ‚|t        |j                  j                  «      v sJ ‚y# 1 sw Y   ŒSxY w)a  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
    r…  r0   )Ú	estimatorz9This 'OneVsRestClassifier' has no attribute 'partial_fit'z:'LogisticRegression' object has no attribute 'partial_fit'r2   N)r   r  r   r   r7   r8   ÚAttributeErrorrp   ra   rb   Ú
isinstanceÚvalueÚ	__cause__Ústr)r`   r\   Ú	outer_msgÚ	inner_msgÚ	exec_infos        rB   Ú)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   Únumpyr;   r7   Úscipy.sparseÚsparser’   Únumpy.testingr   Úsklearnr   r   Úsklearn.baser   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  r`   rs   r‡  rŒ  Úpermutationrb   ÚsizeÚpermra   rd   rC   rG   r]   rh   ry   r~   r�   ÚmarkÚparametrizer¢   r¬   r¿   rÉ   rË   rÎ   rÙ   rà   rå   rî   rñ   rõ   rÿ   r  r  r  r  r  r*  r,  r4  r7  r=  r@  rC  rH  rK  rM  rO  rY  rf  rt  r{  rƒ  r�  r§   rR   r•  rœ  r§  rM   rP   rB   Ú<module>rÅ     sÊ  ðÝ ã Û Ý Ý )ç !ß 7Ý /Ý -Ý (÷÷ ñ ÷ :ß A÷ñ õ
 .Ý 2ß 4ß &ß F÷õ 6ß J÷õ ÷ Rà€x×ÑÓ€Ø‡i�i×Ñ˜AÓ€Ø
‡��t—{‘{×'Ñ'Ó(€Ø�I‰I�d‰O€„	Ø�k‰k˜$Ñ€„Ø€	ò7ò((òTò&/ò !+òH
'ò.ð$ ‡�×ÑØØ�^Ñ# nÑ4°~ÑEÈÑVóñ&Eó	ð&EòR!<òH.ò4%8òPò&3ò
ò4*)òZ%ò*"ò2ò$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ó 7rP   