Ë
    ÷Q(h\�  ã                   ó   — 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 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,m-Z-m.Z. d dl/m0Z0m1Z1 d dl2m3Z3m4Z4 d dl5m6Z6 d dl7m8Z8m9Z9 d dl:m;Z;m<Z<m=Z=m>Z>m?Z? d dl@mAZAmBZB  ej†                  «       ZDejŠ                  j�                  d «      ZGeGj‘                  eDj’                  j”                  «      ZKeDj˜                  eK   eD_L        eDj’                  eK   eD_I        dZMd„ ZNd„ ZOd„ ZPd„ ZQd„ ZRd„ ZSej¨                  j«                  de=e<z   e;z   e>z   e?z   «      d„ «       ZVd„ ZWd „ ZXd!„ ZYd"„ ZZd#„ Z[d$„ Z\d%„ Z]d&„ Z^d'„ Z_d(„ Z`d)„ Zad*„ Zbd+„ Zcd,„ Zdd-„ Zed.„ Zfd/„ Zgd0„ Zhd1„ Zid2„ Zjd3„ Zkd4„ Zld5„ Zmd6„ Znd7„ Zod8„ Zpd9„ Zqej¨                  j«                  d:e<«      d;„ «       Zrd<„ Zsd=„ Ztej¨                  j«                  d>e#e"g«      d?„ «       Zuej¨                  j«                  d>e#e"g«      d@„ «       Zvej¨                  j«                  d>e#e"g«      dA„ «       Zwej¨                  j«                  dBejð                  ejò                  g«      dC„ «       ZzdD„ Z{dE„ Z|y)Fé    )Ú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_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       ú[/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/tests/test_multiclass.pyÚtest_ovr_exceptionsrA   8   s.  € Ü
œi°QÔ7Ó
8€Cô 
�‰”~Ó	&ñ Ø�‰�BŒ÷ð M€CÜ	�‰”z¨Ô	-ñ 7Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&ˆÜ�H‰H�q˜!�f˜q !˜fÐ%Ó&ˆÜœM›OÓ,×0Ñ0°°AÔ6÷7ô
 
�‰”z¨Ô	-ñ 7Ü�H‰H�q˜!�f˜q !˜fÐ%Ó&ˆÜ�H‰H�s˜C�j 3¨ *Ð-Ó.ˆÜœM›OÓ,×0Ñ0°°AÔ6÷7ð 7÷ñ ú÷
7ð 7ú÷
7ð 7ú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      @r0   )r9   r:   r+   r5   r6   r8   r*   )r?   r=   s     r@   Ú!test_check_classification_targetsrE   L   sF   € ä
�‰Ò%Ó&€AÜ
˜Ó
€CÜ	�‰”z¨Ô	-ñ (Ü$ QÔ'÷(÷ (ñ (ús   ¾AÁA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   r.   çÍÌÌÌÌÌä?)r   r   r;   ÚirisÚdataÚtargetr7   ÚlenÚestimators_Ú	n_classesr9   Úmeanr   )r<   ÚpredÚclfÚpred2s       r@   Útest_ovr_fit_predictrR   T   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                  ó¶  — 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   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   d   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Ô*Ð*Ð*Ð*rS   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)
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                  ó>  — 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   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           	      ó  — 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 )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Ž   §   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ÕDrS   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©é
   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¨Ô	-ñ Ø�‰��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   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Ô!ÜÓÜ‹Ü‹ðò .ˆô " (Ó+×/Ñ/°°1Ó5ˆÜ�3—<‘<Ó  GÒ+Ð+Ð+Ø—‘œRŸX™X¢y kÓ2Ó3°AÑ6ˆÜ˜6 F 8Ô,ô " (Ó+×/Ñ/°°1Ó5ˆØ—‘ši˜[Ó)¨!Ñ,ˆÜ˜6¢9Õ-ñ.rS   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   r2   r2   r   r2   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¡   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_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˜[Ó)¨!Ñ,ˆØ˜Š{Ð‰{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ò 8ˆÙ�X°$Ö7ñ8rS   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§   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Ôðò ˆô " (Ó+×/Ñ/°°1Ó5ˆØ—‘ši˜[Ó)¨!Ñ,ˆÜ˜6¢9Ô-Ø�‹ÐˆñrS   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,   rk   )
r   r   r   r;   rH   rI   rJ   rK   rL   Úscore)r<   s    r@   Útest_ovr_fit_predict_svcr¾   M  s`   € Ü
œcŸg™g›iÓ
(€CØ‡G�GŒD�I‰I”t—{‘{Ô#Üˆs�‰Ó 1Ò$Ð$Ð$Ø�9‰9”T—Y‘Y¤§¡Ó,¨sÒ2Ð2Ñ2rS   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 )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É   T  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ö	
ñ'
rS   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 )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Ð   n  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()rS   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 )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€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‘×"Ñ"Ô$Ð$Ð$Ð$rS   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 )
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€qð ˜˜"�v˜q  "˜vˆW€GØˆrˆsˆV€FÜ
œcŸg™g›iÓ
(×
,Ñ
,¨W°gÓ
>€CÜØ	×	Ñ	˜vÓ	&¨Ñ	*×2Ñ2´3Ó7¸¿¹ÀVÓ9LõrS   c                  ó(  — t        j                  ddd¬«      \  } }| d d |d d }}| dd  }t        t        j                  «       «      j                  ||«      }t        |j                  |«      j                  «       dkD  |j                  |«      «       y )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€qØ˜˜"�v˜q  "˜vˆW€GØˆrˆsˆV€FÜ
œcŸg™g›iÓ
(×
,Ñ
,¨W°gÓ
>€CÜ�s×,Ñ,¨VÓ4×:Ñ:Ó<¸qÑ@À#Ç+Á+ÈfÓBUÕVrS   c                  ó   — t        t        d¬«      «      } g d¢}t        | d|i«      }|j                  t        j
                  t        j                  «       |j                  j                  d   j                  }||v sJ ‚y ©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æ   Ê  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‰<Ð‰<rS   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;   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                  ó¬   — t        t        d¬«      «      } t        j                  t        «      5  | j                  g «       d d d «       y # 1 sw Y   y xY w©Nr   r.   )r   r   r5   r6   r   r7   ©Úovos    r@   Útest_ovo_exceptionsrï   ß  s=   € Ü
œ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;   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 !”d˜1•gÐ1€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   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                  ó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)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€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ñ 6Ø�‰˜˜"˜1˜˜w¬¯	©	°!«Ô5÷6ô œS›UÓ
#€CÜ�s˜MÔ*Ð*Ð*Ð*÷6ð 6ú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   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  2  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¸Ó<Ð<Ð<ñ=rS   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;   rH   rI   rJ   rá   rL   râ   )rî   rã   rä   rå   s       r@   Útest_ovo_gridsearchr  a  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‰<Ð‰<rS   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 )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  j  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ÑBrS   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 )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ò *ˆØ�Q‰Y˜!‰OˆÜ&¤z¸%È!ÐQUÔ'VÓWˆ	Ø"Ÿ™ q¨!Ó,×4Ñ4°QÓ7ˆØ˜aÑ  A¨¡EÓ)Ð)Ð)ñ	*rS   c                  óÜ   — t        j                  d«      } t        j                  g d¢«      }t        t	        «       «      }|j                  | |«       t        ||j                  | «      «       y )Nr§   )rô   ÚbÚcÚd)r9   Úeyer:   r   r   r;   r$   r7   )r>   r?   rî   s      r@   Útest_ovo_string_yr$  �  sI   € ä
�‰ˆq‹	€AÜ
�‰Ò%Ó&€Aä
œY›[Ó
)€CØ‡G�GˆAˆq„MÜ�q˜#Ÿ+™+ a›.Õ)rS   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 classr0   )	r9   r#  r:   r   r   r5   r6   r8   r;   ©r>   r?   rî   r=   s       r@   Útest_ovo_one_classr'  ™  sd   € ä
�‰ˆ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 typer0   )rH   rI   r   r   r5   r6   r8   r;   r&  s       r@   Útest_ovo_float_yr*  ¤  s]   € ä�	‰	€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   r5   r6   r   r7   ©Úecocs    r@   Útest_ecoc_exceptionsr/  ¯  s>   € Ü¤	°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   r.   r3   )Ú	code_sizer/   )r   r   r;   rH   rI   rJ   r7   rK   rL   rM   r   r-  s    r@   Útest_ecoc_fit_predictr2  µ  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                  ó  — 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;   rH   rI   rJ   rá   rL   râ   )r.  rã   rä   rå   s       r@   Útest_ecoc_gridsearchr4  Á  sg   € Ü¤	°qÔ 9ÈÔJ€DÚ	€BÜ	�d˜^¨RÐ0Ó	1€BØ‡F�FŒ4�9‰9”d—k‘kÔ"Ø×Ñ×+Ñ+¨AÑ.×0Ñ0€FØ�R‰<Ð‰<rS   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r)  )rH   rI   r   r   r5   r6   r8   r;   r&  s       r@   Útest_ecoc_float_yr6  Ê  s]   € ä�	‰	€AÜ�	‰	’!�Q�$‰€Aä
œy›{Ó
+€CØ
€CÜ	�‰”z¨Ô	-ñ Ø�‰��1Œ÷÷ ñ úr+  Ú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   r.   zSparse data was passedr0   r§   )rH   rI   rJ   r"   r    r   r5   r6   Ú	TypeErrorr;   r7   r   rK   rL   )r7  r>   r?   ÚX_spÚbase_estimatorr.  s         r@   Ú(test_ecoc_delegate_sparse_base_estimatorr@  Õ  sø   € ô �9‰9”d—k‘k€q€AÙ˜Ó€Dô (ÜØ%)¸EÑBô€Nô   ¸QÔ?€Dä	�‰”yÐ(@Ô	Añ Ø�‰��qÔ÷ð 	‡H�HˆQ�„NÜ	�‰”yÐ(@Ô	Añ Ø�‰�TÔ÷ô  ¤	°qÔ 9Ó:€DØ‡H�HˆT�1Ó×Ñ˜dÔ#Üˆt×ÑÓ  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   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_indicesrM  ð  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ñ
rS   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.
    rg   r   N)é•   r§   ÚlinearrC  r§   r,   )rO  rO  rB  rO  é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ÚKrG  Úovr_precomputedÚovo_precomputeds
             r@   Útest_pairwise_n_features_inr[    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Ò?Ð?Ñ?rS   ÚMultiClassClassifierc                 ó  — t        j                  d¬«      }t        j                  «       } | |«      }|j                  «       j                  j                  rJ ‚ | |«      }|j                  «       j                  j                  sJ ‚y )NrB  rC  )r   r   Ú__sklearn_tags__Ú
input_tagsÚpairwise)r\  rG  rT  rH  Úovr_trues        r@   Útest_pairwise_tagrb  F  so   € ô —g‘g ]Ô3€OÜŸ™›Ðá$Ð%7Ó8€IØ×)Ñ)Ó+×6Ñ6×?Ò?Ð?Ð?á# OÓ4€HØ×$Ñ$Ó&×1Ñ1×:Ò:Ð:Ñ:rS   c                 óP  — t        j                  d¬«      }t        j                  d¬«      }t        j                  t        j                  }} | |«      } | |«      }t        j                  ||j                  «      }t        |||d¬«      }t        |||d¬«      }	t        |	|«       y )NrB  rC  rP  Úraise)Úerror_score)
r   r   rH   rI   rJ   r9   rE  r¸   r   r$   )
r\  rG  rT  r>   r?   Úmulticlass_clf_notprecomputedÚmulticlass_clf_precomputedrI  Úscore_not_precomputedÚscore_precomputeds
             r@   Útest_pairwise_cross_val_scorerj  T  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À'ôÐô Ð(Ð*?Õ@rS   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é*   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  j  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°Õ2rS   Ú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‘   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|  }  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Õ%rS   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$   r7   )r>   r?   rP   rî   s       r@   Ú)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£~Õ6rS   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
    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ð 0¸9Ø�‰˜Ÿ	™	 4§;¡;Ô/÷0ä�i—o‘o×/Ñ/´Ô@Ð@Ð@Øœ˜IŸO™O×5Ñ5Ó6Ñ6Ð6Ñ6÷0ð 0ú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ü   rH   r^   rn  rs  ÚpermutationrJ   ÚsizeÚpermrI   rM   rA   rE   rR   rd   ri   rl   ÚmarkÚparametrizerŽ   r™   r¬   r¹   r»   r¾   rÉ   rÐ   rÕ   rØ   rÜ   ræ   rê   rï   r÷   rù   r  r  r  r  r  r$  r'  r*  r/  r2  r4  r6  r@  rM  r[  rb  rj  rv  r“   r”   r|  rƒ  rŽ  © rS   r@   ú<module>r¬     s¼  ðÝ ã Û Ý Ý )ç !Ý /Ý -Ý (÷÷ ñ ÷ :ß A÷ñ õ
 .Ý 2ß 4ß &ß F÷õ 6ß J÷õ ÷ Rà€x×ÑÓ€Ø‡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   