§
    rŠtjã„  ã                   ó(  — 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jF        ¦   «         ZGejH         I                    d ¦  «        ZJeJ K                    eGjL        jM        ¦  «        ZNeGjO        eN         eG_O        eGjL        eN         eG_L        dZPd„ ZQd„ ZRd„ ZSd„ ZTd„ ZUd„ ZVd„ ZWejX         Y                    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jX         Y                    d=e?¦  «        d>„ ¦   «         Zwd?„ Zxd@„ ZyejX         Y                    dAe&e%g¦  «        dB„ ¦   «         ZzejX         Y                    dAe&e%g¦  «        dC„ ¦   «         Z{ejX         Y                    dAe&e%g¦  «        dD„ ¦   «         Z|ejX         Y                    dEej}        ej~        g¦  «        dF„ ¦   «         ZdG„ Z€dH„ Z�dS )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  |                      g ¦  «         d d d ¦  «         n# 1 swxY w Y   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          ¦   «         ¦  «         
                    ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5  t          j        ddgddgg¦  «        }t          j        dd	gd
dgg¦  «        }t          t          ¦   «         ¦  «         
                    ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/tests/test_multiclass.pyÚtest_ovr_exceptionsrC   9   s1  € Ý
�i°QÐ7Ñ7Ô7Ñ
8Ô
8€Cõ 
Œ•~Ñ	&Ô	&ð ð Ø�Š�B‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð M€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð 7ð 7ÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ˆÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ˆÝ�M™OœOÑ,Ô,×0Ò0°°AÑ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7õ
 
Œ•z¨Ð	-Ñ	-Ô	-ð 7ð 7ÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ˆÝŒH�s˜C�j 3¨ *Ð-Ñ.Ô.ˆÝ�M™OœOÑ,Ô,×0Ò0°°AÑ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7ð 7ð 7s7   ·AÁAÁ AÂA$C1Ã1C5Ã8C5ÄA$FÆFÆFc                  óÖ   — t          j        g d¢¦  «        } t          | ¦  «        }t          j        t
          |¬¦  «        5  t          | ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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"Á%A"c                  óz  —  G d„ dt           ¦  «        } t          j        dgdgdgdgg¦  «        }t          j        g d¢¦  «        }t           | ¦   «         ¦  «                             ||¦  «        }t          |                     |¦  «        t          j        |                     |¦  «        d¬¦  «        ¦  «         dS )zbCheck that ties-breaking matches np.argmax behavior

    Non-regression test for issue #14124
    c                   ó   — e Zd Zd„ Zd„ ZdS )útest_ovr_ties.<locals>.Dummyc                 ó   — | S ©N© ©Úselfr@   rA   s      rB   r=   z test_ovr_ties.<locals>.Dummy.fit\   s   € ØˆKó    c                 óD   — t          j        t          |¦  «        ¦  «        S rL   )r;   ÚzerosÚlen)rO   r@   s     rB   Údecision_functionz.test_ovr_ties.<locals>.Dummy.decision_function_   s   € Ý”8�C ™FœFÑ#Ô#Ð#rP   N)Ú__name__Ú
__module__Ú__qualname__r=   rT   rM   rP   rB   ÚDummyrJ   [   s2   € € € € € ð	ð 	ð 	ð	$ð 	$ð 	$ð 	$ð 	$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˜e™gœgÑ
&Ô
&×
*Ò
*¨1¨aÑ
0Ô
0€CÝ�s—{’{ 1‘~”~¥r¤y°×1FÒ1FÀqÑ1IÔ1IÐPQÐ'RÑ'RÔ'RÑSÔSÐSÐSÐSrP   c                  ó^  — t          t          d¬¦  «        ¦  «        } |                      t          j        t          j        ¦  «                             t          j        ¦  «        }t          | j        ¦  «        t          k    sJ ‚t          d¬¦  «        }|                     t          j        t          j        ¦  «                             t          j        ¦  «        }t          j        t          j        |k    ¦  «        t          j        t          j        |k    ¦  «        k    sJ ‚t          t          ¦   «         ¦  «        } |                      t          j        t          j        ¦  «                             t          j        ¦  «        }t          j        t          j        |k    ¦  «        dk    sJ ‚d S )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Ñ7Ô7Ñ
8Ô
8€CØ�7Š7•4”9�dœkÑ*Ô*×2Ò2µ4´9Ñ=Ô=€DÝˆsŒÑÔ¥9Ò,Ð,Ð,Ð,å
 Ð
#Ñ
#Ô
#€CØ�GŠG•D”I�tœ{Ñ+Ô+×3Ò3µD´IÑ>Ô>€EÝŒ7•4”; $Ò&Ñ'Ô'­2¬7µ4´;À%Ò3GÑ+HÔ+HÒHÐHÐHÐHõ �m™oœoÑ
.Ô
.€CØ�7Š7•4”9�dœkÑ*Ô*×2Ò2µ4´9Ñ=Ô=€DÝŒ7•4”; $Ò&Ñ'Ô'¨$Ò.Ð.Ð.Ð.Ð.Ð.rP   c                  ó´  — t          t          j        t          j        d¬¦  «        \  } }t	          t          ¦   «         ¦  «        }|                     | d d…         |d d…         t          j        |¦  «        ¦  «         |                     | dd …         |dd …         ¦  «         | 	                    | ¦  «        }t	          t          ¦   «         ¦  «        }| 
                    | |¦  «         	                    | ¦  «        }t          ||¦  «         t          |j        ¦  «        t          t          j        |¦  «        ¦  «        k    sJ ‚t          j        ||k    ¦  «        dk    sJ ‚t          j        t          j                             dd¦  «        ¦  «        } g d¢}t	          t%          dd d	d¬
¦  «        ¦  «        }|                     | d d…         |d d…         t          j        |¦  «        ¦  «         |                     | dd …         |dd …         ¦  «         | 	                    | ¦  «        }t	          t%          dd d	d¬
¦  «        ¦  «        }| 
                    | |¦  «         	                    | ¦  «        }t          j        ||k    ¦  «        t          j        ||k    ¦  «        k    sJ ‚t	          t'          ¦   «         ¦  «        }t)          |d¦  «        rJ ‚d S )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   sl  € å•4”9�dœk¸Ð:Ñ:Ô:�D€A€qÝ
�m™oœoÑ
.Ô
.€CØ‡O‚O�A�d�s�d”G˜Q˜t ˜tœW¥b¤i°¡l¤lÑ3Ô3Ð3Ø‡O‚O�A�c�d�d”G˜Q˜s˜t˜tœWÑ%Ô%Ð%Ø�;Š;�q‰>Œ>€DÝ�}™œÑ/Ô/€DØ�HŠH�Q˜‰NŒN×"Ò" 1Ñ%Ô%€Eå˜˜eÑ$Ô$Ð$ÝˆsŒÑÔ¥3¥r¤y°¡|¤|Ñ#4Ô#4Ò4Ð4Ð4Ð4ÝŒ7�1˜’9ÑÔ Ò$Ð$Ð$Ð$õ 	Œ�rŒy�Š˜r 1Ñ%Ô%Ñ&Ô&€AØ2Ð2Ð2€Aå
Ý˜q d°EÈÐJÑJÔJñô €Cð ‡O‚O�A�b�q�b”E˜1˜R˜a˜Rœ5¥"¤)¨A¡,¤,Ñ/Ô/Ð/Ø‡O‚O�A�a�b�b”E˜1˜Q˜R˜Rœ5Ñ!Ô!Ð!Ø�;Š;�q‰>Œ>€DÝÝ˜q d°EÈÐJÑJÔJñô €Dð �HŠH�Q˜‰NŒN×"Ò" 1Ñ%Ô%€EÝŒ7�4˜1’9ÑÔ¥¤¨°!ªÑ!4Ô!4Ò4Ð4Ð4Ð4õ �c™eœeÑ
$Ô
$€CÝ�s˜MÑ*Ô*Ð*Ð*Ð*Ð*Ð*rP   c                  óà  — t          t          ¦   «         ¦  «        } t          j        t          j                             dd¦  «        ¦  «        }g d¢}|                      |d d…         |d d…         t          j        |¦  «        ¦  «         dg|dd…         z   }d}t          j	        t          |¬¦  «        5  |                      |dd …         |¬	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
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œoÑ
.Ô
.€CÝ
Œ�rŒy�Š˜r 1Ñ%Ô%Ñ&Ô&€AØ2Ð2Ð2€AØ‡O‚O�A�b�q�b”E˜1˜R˜a˜Rœ5¥"¤)¨A¡,¤,Ñ/Ô/Ð/ð ˆˆq��2�Œw‰€BØ
N€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð 'ð 'Ø�Š˜!˜A˜B˜Bœ% 2ˆÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's   Â6 C#Ã#C'Ã*C'c                  óV  — t          t          ¦   «         ¦  «        } |                      t          j        t          j        ¦  «                             t          j        ¦  «        }t          | j        ¦  «        t          k    sJ ‚t          t          j        |¦  «        g d¢¦  «         t          j        |t          j        k    ¦  «        dk    sJ ‚t          t          ¦   «         ¦  «        } |                      t          j        t          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k    sJ ‚d S )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Ô5Ñ
6Ô
6€CØ�7Š7•4”9�dœkÑ*Ô*×2Ò2µ4´9Ñ=Ô=€DÝˆsŒÑÔ¥9Ò,Ð,Ð,Ð,Ý•r”y ‘”¨	¨	¨	Ñ2Ô2Ð2åŒ7�4�4œ;Ò&Ñ'Ô'¨#Ò-Ð-Ð-Ð-å
Õ2Ñ4Ô4Ñ
5Ô
5€CØ�7Š7•4”9�dœkÑ*Ô*×2Ò2µ4´9Ñ=Ô=€DÝˆsŒÑÔ¥9µ	¸A±Ñ#>ÀÑ#BÒBÐBÐBÐBÝ•r”y ‘”¨	¨	¨	Ñ2Ô2Ð2åŒ7�4�4œ;Ò&Ñ'Ô'¨#Ò-Ð-Ð-Ð-Ð-Ð-rP   Úsparse_containerc           	      óÖ  — t          d¬¦  «        }t          j        ddddddd	¬
¦  «        \  }}|d d…         |d d…         }}|dd …         }t          |¦  «                             ||¦  «        }|                     |¦  «        }t          |¦  «                             | | |¦  «        ¦  «        }	|	                     |¦  «        }
|j        sJ ‚t          j        |
¦  «        sJ ‚t          |
 
                    ¦   «         |¦  «         |	                     |¦  «        }|dk    }t          ||
 
                    ¦   «         ¦  «         t          j        ¦   «         }t          |¦  «                             | | |¦  «        ¦  «        }	|	                     |¦  «        d	k                         t           ¦  «        }t          ||	                     |¦  «         
                    ¦   «         ¦  «         d S )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¢   »   sÝ  € õ
  1Ð%Ñ%Ô%€HåÔ2ØØØØØØØðñ ô �D€A€qð ˜˜"˜”v˜q  " œvˆW€GØˆrˆsˆsŒV€Få
˜hÑ
'Ô
'×
+Ò
+¨G°WÑ
=Ô
=€CØ�[Š[˜Ñ Ô €Få" 8Ñ,Ô,×0Ò0°Ð:JÐ:JÈ7Ñ:SÔ:SÑTÔT€HØ×"Ò" 6Ñ*Ô*€KàŒ?ÐÐˆ?ÝŒ;�{Ñ#Ô#Ð#Ð#Ð#Ý�{×*Ò*Ñ,Ô,¨fÑ5Ô5Ð5ð ×$Ò$ VÑ,Ô,€Gð �SŠ=€DÝ�t˜[×0Ò0Ñ2Ô2Ñ3Ô3Ð3õ Œ'‰)Œ)€CÝ" 3Ñ'Ô'×+Ò+¨GÐ5EÐ5EÀgÑ5NÔ5NÑOÔO€HØ×*Ò*¨6Ñ2Ô2°QÒ6×>Ò>½sÑCÔC€HÝ�x ×!1Ò!1°&Ñ!9Ô!9×!AÒ!AÑ!CÔ!CÑDÔDÐDÐDÐ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  |                     | |¦  «         d d d ¦  «         n# 1 swxY w Y   | 	                    | ¦  «        }t          t          j        |¦  «        t          j        |¦  «        ¦  «         |                     | ¦  «        }t          j        |d d …d	d …f         ¦  «        dk    s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  |                     | |¦  «         d d d ¦  «         n# 1 swxY w Y   |                     | ¦  «        }t          |d d …d
f         t          j        | j        d         ¦  «        ¦  «         d S )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€bˆ!€e�HØ€A€a€a€aˆ€d�GØ€A€a€a€aˆ€d�Gå
Õ0Ñ2Ô2Ñ
3Ô
3€CØ
9€CÝ	Œ•k¨Ð	-Ñ	-Ô	-ð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à�[Š[˜‰^Œ^€FÝ•r”x Ñ'Ô'­¬°!©¬Ñ5Ô5Ð5Ø×"Ò" 1Ñ%Ô%€FÝŒ9�V˜A˜A˜A˜r˜s˜s˜F”^Ñ$Ô$¨Ò)Ð)Ð)Ð)Ø×Ò˜qÑ!Ô!€FÝ�v˜a˜a˜a ˜e”}¥b¤g¨a¬g°a¬jÑ&9Ô&9Ñ:Ô:Ð:õ 	Œ�ÑÔ€AØ€A€a€b€bˆ!€e�HÝ
Õ0Ñ2Ô2Ñ
3Ô
3€Cà
<€CÝ	Œ•k¨Ð	-Ñ	-Ô	-ð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à×Ò˜qÑ!Ô!€FÝ�v˜a˜a˜a ˜e”}¥b¤h¨q¬w°q¬zÑ&:Ô&:Ñ;Ô;Ð;Ð;Ð;s$   ÂB*Â*B.Â1B.ÇG=Ç=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
                     ¦   «         ¦  «        }t	          ¦   «         t          d¬¦  «        t          ¦   «         t          ¦   «         t          ¦   «         fD ]Ó}t          |¦  «         
                    | |¦  «        }t          |j        ¦  «        |k    sJ ‚|                     t          j        g d¢g¦  «        ¦  «        d         }t          |dg¦  «         t          |¦  «         
                    | |¦  «        }|                     g d¢g¦  «        d         }t          |g d¢¦  «         ŒÔd S )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˜Y˜Y¨	¨	¨	°9°9°9¸i¸i¸iÐHÑIÔI€AØ.Ð.Ð.€AÝ
Œ�)�)�)˜Y˜Y˜Y¨	¨	¨	°9°9°9¸i¸i¸iÐHÑIÔI€Aå�/×'Ò'Ñ)Ô)Ñ*Ô*€Gõ 	‰ŒÝ˜qÐ!Ñ!Ô!ÝÑÔÝ‰ŒÝ‰Œðð .ð .ˆõ " (Ñ+Ô+×/Ò/°°1Ñ5Ô5ˆÝ�3”<Ñ Ô  GÒ+Ð+Ð+Ð+Ø—’�RœX y y y kÑ2Ô2Ñ3Ô3°AÔ6ˆÝ˜6 F 8Ñ,Ô,Ð,õ " (Ñ+Ô+×/Ò/°°1Ñ5Ô5ˆØ—’˜i˜i˜i˜[Ñ)Ô)¨!Ô,ˆÝ˜6 9 9 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                     ¦   «         ¦  «        Šdˆˆˆˆfd
„	} t          d¬¦  «        t          ¦   «         t          ¦   «         t          ¦   «         fD ]} | |¦  «         Œt          ¦   «         t          ¦   «         fD ]} | |d¬¦  «         Œd S )Nr®   r¯   r°   r±   r³   )r´   rµ   rµ   r´   rµ   )r   r4   r4   r   r4   z	eggs spamFc                 ó   •— t          | ¦  «                             ‰‰
¦  «        }t          |j        ¦  «        ‰	k    sJ ‚|                     t          j        g d¢g¦  «        ¦  «        d         }t          |dg¦  «         t          | d¦  «        r"| 	                    ‰¦  «        }|j
        dk    sJ ‚|r�t          j        g d¢g¦  «        }|                     |¦  «        }dt          |d         ¦  «        k    sJ ‚|j        t          j        |d¬¦  «                 |                     |¦  «        k    sJ ‚t          | ¦  «                             ‰‰¦  «        }|                     g d	¢g¦  «        d         }|dk    sJ ‚d S )
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Ô5ˆÝ�3”<Ñ Ô  GÒ+Ð+Ð+Ð+Ø—’�RœX y y y kÑ2Ô2Ñ3Ô3°AÔ6ˆÝ˜6 F 8Ñ,Ô,Ð,Ý�8Ð0Ñ1Ô1ð 	%Ø×'Ò'¨Ñ*Ô*ˆCØ”9 Ò$Ð$Ð$Ð$àð 	YÝ”X˜y˜y˜y˜kÑ*Ô*ˆFØ×-Ò-¨fÑ5Ô5ˆMØ�˜M¨!Ô,Ñ-Ô-Ò-Ð-Ð-Ð-Ø”<¥¤	¨-¸aÐ @Ñ @Ô @ÔAÀSÇ[Â[ÐQWÑEXÔEXÒXÐXÐXÐXõ " (Ñ+Ô+×/Ò/°°1Ñ5Ô5ˆØ—’˜i˜i˜i˜[Ñ)Ô)¨!Ô,ˆØ˜Š{ˆ{ˆ{ˆ{ˆ{ˆ{rP   r   r0   T)rÂ   )F)r;   r<   ÚTr»   r¼   r   r   r   r   r   r   )rÅ   r˜   r@   r™   r¾   rA   s     @@@@rB   Útest_ovr_binaryrÇ   &  s2  øøøø€ å
Œ�)�)�)˜Y˜Y˜Y¨	¨	¨	°9°9°9¸i¸i¸iÐHÑIÔI€AØ0Ð0Ð0€AÝ
Œ�/�/�/Ð"Ñ#Ô#Ô%€Aå�+×#Ò#Ñ%Ô%Ñ&Ô&€Gðð ð ð ð ð ð ð ð õ* 	˜qÐ!Ñ!Ô!ÝÑÔÝ‰ŒÝ‰Œð	ð ð ˆð 	ˆ�XÑÔÐÐõ 	‰ŒÝÑÔðð 8ð 8ˆð 	ˆ�X°$Ð7Ñ7Ô7Ð7Ð7ð	8ð 8rP   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 ]^}t          |¦  «         	                    | |¦  «        }| 
                    g d¢g¦  «        d         }t          |g d¢¦  «         |j        sJ ‚Œ_d S )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É   Q  s  € å
Œ�)�)�)˜Y˜Y˜Y¨	¨	¨	°9°9°9¸i¸i¸iÐHÑIÔI€AÝ
Œ�)�)�)˜Y˜Y˜Y¨	¨	¨	°9°9°9¸i¸i¸iÐHÑIÔI€Aõ 	‰ŒÝ˜qÐ!Ñ!Ô!ÝÑÔÝ‰ŒÝ‰ŒÝ�CÐÑÔðð ð ˆõ " (Ñ+Ô+×/Ò/°°1Ñ5Ô5ˆØ—’˜i˜i˜i˜[Ñ)Ô)¨!Ô,ˆÝ˜6 9 9 9Ñ-Ô-Ð-ØŒÐÐˆÐðð rP   c                  ó.  — t          t          j        ¦   «         ¦  «        } |                      t          j        t          j        ¦  «         t          | j        ¦  «        dk    sJ ‚|  	                    t          j        t          j        ¦  «        dk    sJ ‚d S )Nr.   r€   )
r   r   r   r=   r`   ra   rb   rS   rc   Úscore)r>   s    rB   Útest_ovr_fit_predict_svcrÌ   d  sq   € Ý
�cœg™iœiÑ
(Ô
(€CØ‡G‚G�DŒI•t”{Ñ#Ô#Ð#ÝˆsŒÑÔ 1Ò$Ð$Ð$Ð$Ø�9Š9•T”Y¥¤Ñ,Ô,¨sÒ2Ð2Ð2Ð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        sJ ‚t          t          |	|d¬¦  «        |d	¬¦  «         t          t          |	|d¬¦  «        |d	¬¦  «         ŒÒd S )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×   k  s>  € Ý 1Ð%Ñ%Ô%€HÝ ¨|¸\ÑJÔJð 
ð 
ÑˆˆD�&ÝÔ6ØØØØØØØð
ñ 
ô 
‰ˆˆ1ð ˜S˜b˜Sœ6 1 S b S¤6�ˆØ˜2˜3˜3œ  2 3 3¤�ˆÝ! (Ñ+Ô+×/Ò/°¸ÑAÔAˆØ—’˜VÑ$Ô$ˆàŒÐÐˆÝÝ˜F F°GÐ<Ñ<Ô<¸dÈAð	
ñ 	
ô 	
ð 	
õ 	Ý˜ °Ð9Ñ9Ô9¸6È1ð	
ñ 	
ô 	
ð 	
ð 	
ð'
ð 
rP   c            
      óÖ  — t          d¬¦  «        } dD �]T}t          j        ddddd|d	¬
¦  «        \  }}|d d…         |d d…         }}|dd …         }t          | ¦  «                             ||¦  «        }t          t          j        ¦   «         ¦  «                             ||¦  «        }t          |d¦  «        rJ ‚t          t          j        ¦   «         ¦  «        }t          |d¦  «        rJ ‚|                     ||¦  «         t          |d¦  «        rJ ‚t          |d¦  «        sJ ‚| 	                    |¦  «        }	| 
                    |¦  «        }
|
dk    }t          ||	¦  «         �ŒVd S )Nr4   r„   )FTrj   r†   r{   r.   r‡   r   rˆ   rŽ   r•   rT   r�   )r   r   r�   r   r=   r   ÚSVRru   r   r9   r•   r&   )r˜   rÓ   r@   r™   rš   r›   rœ   r\   Údecision_onlyr�   r    rf   s               rB   Ú!test_ovr_multilabel_predict_probarÛ   …  s‹  € Ý 1Ð%Ñ%Ô%€HØð )ñ )ˆÝÔ6ØØØØØØØð
ñ 
ô 
‰ˆˆ1ð ˜S˜b˜Sœ6 1 S b S¤6�ˆØ�2�3�3”ˆÝ! (Ñ+Ô+×/Ò/°¸ÑAÔAˆõ ,­C¬G©I¬IÑ6Ô6×:Ò:¸7ÀGÑLÔLˆÝ˜=¨/Ñ:Ô:Ð:Ð:Ð:õ ,­C¬G©I¬IÑ6Ô6ˆÝ˜=¨/Ñ:Ô:Ð:Ð:Ð:Ø×Ò˜' 7Ñ+Ô+Ð+Ý˜=¨/Ñ:Ô:Ð:Ð:Ð:Ý�}Ð&9Ñ:Ô:Ð:Ð:Ð:à—’˜VÑ$Ô$ˆØ×#Ò# FÑ+Ô+ˆð ˜Š}ˆÝ˜4 Ñ(Ô(Ð(Ñ(ð?)ð )rP   c                  ó^  — t          d¬¦  «        } t          j        t          j        }}|d d…         |d d…         }}|dd …         }t	          | ¦  «                             ||¦  «        }t	          t          j        ¦   «         ¦  «                             ||¦  «        }t          |d¦  «        rJ ‚| 	                    |¦  «        }| 
                    |¦  «        }	t          |	                     d¬¦  «        d¦  «         |	                     d¬¦  «        }
|
|z
                       ¦   «         rJ ‚d S )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•d”k€q€AØ˜˜"˜”v˜q  " œvˆW€GØˆrˆsˆsŒV€FÝ
˜hÑ
'Ô
'×
+Ò
+¨G°WÑ
=Ô
=€Cõ (­¬©	¬	Ñ2Ô2×6Ò6°wÀÑHÔH€MÝ�} oÑ6Ô6Ð6Ð6Ð6à�[Š[˜Ñ Ô €FØ×Ò Ñ'Ô'€Gå˜Ÿš¨˜Ñ+Ô+¨SÑ1Ô1Ð1ð �>Š>˜qˆ>Ñ!Ô!€DØ�v‘×"Ò"Ñ$Ô$Ð$Ð$Ð$Ð$Ð$rP   c                  ó  —  G d„ dt           t          ¦  «        }  | ¦   «         }t          j        t          j        }}t          |¦  «                             ||¦  «        }|                     |¦  «        }t          |d¦  «         dS )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dS )úGtest_ovr_single_label_predict_proba_zero.<locals>.NaiveBinaryClassifierc                 ó8   — t          j        |¦  «        | _        | S rL   )r;   rq   r½   rN   s      rB   r=   zKtest_ovr_single_label_predict_proba_zero.<locals>.NaiveBinaryClassifier.fitÄ  s   € ÝœI a™LœLˆDŒMØˆKrP   c                 ó^   — 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È  s1   € Ý”G�S ™VœV Q˜KÑ(Ô(ˆEàˆE�!�!�!�Q�$‰KØˆLrP   N)rU   rV   rW   r=   r•   rM   rP   rB   ÚNaiveBinaryClassifierrã   Ã  s2   € € € € € ð	ð 	ð 	ð	ð 	ð 	ð 	ð 	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•d”k€q€Aå
˜hÑ
'Ô
'×
+Ò
+¨A¨qÑ
1Ô
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        ¦   «         ¦  «                             ||¦  «        }t          |                     |¦  «        dk                         t          ¦  «        | 
                    |¦  «        ¦  «         d S )
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ØØØØØØØðñ ô �D€A€qð ˜˜"˜”v˜q  " œvˆW€GØˆrˆsˆsŒV€FÝ
�cœg™iœiÑ
(Ô
(×
,Ò
,¨W°gÑ
>Ô
>€CÝØ	×	Ò	˜vÑ	&Ô	&¨Ò	*×2Ò2µ3Ñ7Ô7¸¿ºÀVÑ9LÔ9Lñô ð ð ð rP   c                  óv  — t          j        ddd¬¦  «        \  } }| d d…         |d d…         }}| dd …         }t          t          j        ¦   «         ¦  «                             ||¦  «        }t          |                     |¦  «                             ¦   «         dk    | 	                    |¦  «        ¦  «         d S )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ÑUÔU�D€A€qØ˜˜"˜”v˜q  " œvˆW€GØˆrˆsˆsŒV€FÝ
�cœg™iœiÑ
(Ô
(×
,Ò
,¨W°gÑ
>Ô
>€CÝ�s×,Ò,¨VÑ4Ô4×:Ò:Ñ<Ô<¸qÒ@À#Ç+Â+ÈfÑBUÔBUÑVÔVÐVÐVÐVrP   c                  óú   — t          t          d¬¦  «        ¦  «        } g d¢}t          | d|i¦  «        }|                     t          j        t          j        ¦  «         |j        j        d         j	        }||v sJ ‚d S ©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ú   ñ  ss   € Ý
�i°QÐ7Ñ7Ô7Ñ
8Ô
8€CØ	ˆˆ€BÝ	�c˜N¨BÐ/Ñ	0Ô	0€BØ‡F‚F�4Œ9•d”kÑ"Ô"Ð"ØÔÔ+¨AÔ.Ô0€FØ�Rˆ<ˆ<ˆ<ˆ<ˆ<ˆ<rP   c                  óÒ  — t          dt          ¦   «         fg¦  «        } t          | ¦  «        }|                     t          j        t          j        ¦  «         t          t          ¦   «         ¦  «        }|                     t          j        t          j        ¦  «         t          |                     t          j        ¦  «        |                     t          j        ¦  «        ¦  «         d S )NÚtree)	r   r    r   r=   r`   ra   rb   r&   r9   )r\   Úovr_piper>   s      rB   Útest_ovr_pipelinerþ   ú  s¥   € õ �VÕ3Ñ5Ô5Ð6Ð7Ñ
8Ô
8€CÝ" 3Ñ'Ô'€HØ‡L‚L•”�DœKÑ(Ô(Ð(Ý
Õ4Ñ6Ô6Ñ
7Ô
7€CØ‡G‚G�DŒI•t”{Ñ#Ô#Ð#Ý�s—{’{¥4¤9Ñ-Ô-¨x×/?Ò/?ÅÄ	Ñ/JÔ/JÑKÔKÐKÐKÐKrP   c                  óÎ   — t          t          d¬¦  «        ¦  «        } t          j        t          ¦  «        5  |                      g ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©Nr   r0   )r   r   r7   r8   r
   r9   ©Úovos    rB   Útest_ovo_exceptionsr    s�   € Ý
�Y°AÐ6Ñ6Ô6Ñ
7Ô
7€CÝ	Œ•~Ñ	&Ô	&ð ð Ø�Š�B‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð ó   ·AÁAÁ!Ac                  óš  — t          t          d¬¦  «        ¦  «        } |                      t          j        t          j        ¦  «                             t          j        ¦  «        }d„ t          j        D ¦   «         }|                      |t          t          j        ¦  «        ¦  «                             |¦  «        }t          ||¦  «         d S )Nr   r0   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rM   )Úlist)Ú.0Úas     rB   ú
<listcomp>z(test_ovo_fit_on_list.<locals>.<listcomp>  s   € Ð1Ð1Ð1 !•d˜1‘g”gÐ1Ð1Ð1rP   )	r   r   r=   r`   ra   rb   r9   r  r&   )r  Úprediction_from_arrayÚiris_data_listÚprediction_from_lists       rB   Útest_ovo_fit_on_listr    s¤   € õ �Y°AÐ6Ñ6Ô6Ñ
7Ô
7€CØŸGšG¥D¤I­t¬{Ñ;Ô;×CÒCÅDÄIÑNÔNÐØ1Ð1¥t¤yÐ1Ñ1Ô1€NØŸ7š7 >µ4½¼Ñ3DÔ3DÑEÔE×MÒMØñô Ðõ Ð,Ð.BÑCÔCÐCÐCÐCrP   c                  óF  — t          t          d¬¦  «        ¦  «        } |                      t          j        t          j        ¦  «                             t          j        ¦  «         t          | j        ¦  «        t          t          dz
  z  dz  k    sJ ‚t          t          ¦   «         ¦  «        } |                      t          j        t          j        ¦  «                             t          j        ¦  «         t          | j        ¦  «        t          t          dz
  z  dz  k    sJ ‚d S )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Ñ6Ô6Ñ
7Ô
7€CØ‡G‚G�DŒI•t”{Ñ#Ô#×+Ò+­D¬IÑ6Ô6Ð6ÝˆsŒÑÔ¥9µ	¸A±Ñ#>ÀÑ#BÒBÐBÐBÐBõ �]™_œ_Ñ
-Ô
-€CØ‡G‚G�DŒI•t”{Ñ#Ô#×+Ò+­D¬IÑ6Ô6Ð6ÝˆsŒÑÔ¥9µ	¸A±Ñ#>ÀÑ#BÒBÐBÐBÐBÐBÐBrP   c                  óø  — t          j        ¦   «         } | j        | j        }}t	          t          ¦   «         ¦  «        }|                     |d d…         |d d…         t          j        |¦  «        ¦  «         |                     |dd …         |dd …         ¦  «         | 	                    |¦  «        }t	          t          ¦   «         ¦  «        }| 
                    ||¦  «         | 	                    |¦  «        }t          |j        ¦  «        t          t          dz
  z  dz  k    sJ ‚t          j        ||k    ¦  «        dk    sJ ‚t          ||¦  «         t	          t          ¦   «         ¦  «        }|                     |d d…         |d d…         t          j        |¦  «        ¦  «         |                     |dd …         |dd …         ¦  «         | 	                    |¦  «        }t	          t          ¦   «         ¦  «        }| 
                    ||¦  «         	                    |¦  «        }t          ||¦  «         t          |j        ¦  «        t          t          j        |¦  «        ¦  «        k    sJ ‚t          j        ||k    ¦  «        dk    sJ ‚t	          t          ¦   «         ¦  «        }t          j                             dd¦  «        }g d¢}|                     |d d…         |d d…         g d	¢¦  «         |                     |dd …         |dd …         ¦  «         | 	                    |¦  «        }t	          t          ¦   «         ¦  «        }| 
                    ||¦  «         	                    |¦  «        }t          ||¦  «         t	          t          ¦   «         ¦  «        }g d
¢}	t%          d                     t          j        |	¦  «        t          j        |¦  «        ¦  «        ¦  «        }
t)          j        t,          |
¬¦  «        5  |                     |d d…         |	t          j        |¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t	          t/          ¦   «         ¦  «        }t1          |d¦  «        rJ ‚d S )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�d”k€q€AÝ�m™oœoÑ.Ô.€DØ×Ò�Q�t˜�t”W˜a   œg¥r¤y°¡|¤|Ñ4Ô4Ð4Ø×Ò�Q�s�t�t”W˜a   œgÑ&Ô&Ð&Ø�LŠL˜‰OŒO€Eå�m™oœoÑ.Ô.€DØ‡H‚HˆQ��N„N€NØ�LŠL˜‰OŒO€EÝˆtÔÑ Ô ¥Iµ¸Q±Ñ$?À!Ñ$CÒCÐCÐCÐCÝŒ7�1˜’:ÑÔ Ò%Ð%Ð%Ð%Ý˜˜uÑ%Ô%Ð%õ �m™oœoÑ.Ô.€DØ×Ò�Q�s˜�s”V˜Q˜s ˜sœV¥R¤Y¨q¡\¤\Ñ2Ô2Ð2Ø×Ò�Q�r�s�s”V˜Q˜r˜s˜sœVÑ$Ô$Ð$Ø�LŠL˜‰OŒO€EÝ�m™oœoÑ.Ô.€DØ�HŠH�Q˜‰NŒN×"Ò" 1Ñ%Ô%€Eå˜˜uÑ%Ô%Ð%ÝˆtÔÑ Ô ¥C­¬	°!©¬Ñ$5Ô$5Ò5Ð5Ð5Ð5ÝŒ7�1˜’:ÑÔ Ò%Ð%Ð%Ð%å
�]™_œ_Ñ
-Ô
-€CÝ
Œ	�Š�r˜1ÑÔ€AØ2Ð2Ð2€AØ‡O‚O�A�b�q�b”E˜1˜R˜a˜Rœ5 / / /Ñ2Ô2Ð2Ø‡O‚O�A�a�b�b”E˜1˜Q˜R˜Rœ5Ñ!Ô!Ð!Ø�;Š;�q‰>Œ>€DÝ�m™oœoÑ.Ô.€DØ�HŠH�Q˜‰NŒN×"Ò" 1Ñ%Ô%€EÝ˜˜eÑ$Ô$Ð$õ �]™_œ_Ñ
-Ô
-€CØ#Ð#Ð#€GÝØ@×GÒGÝŒI�gÑÔ¥¤	¨!¡¤ñ	
ô 	
ñô €Jõ
 
Œ•z¨Ð	4Ñ	4Ô	4ð 6ð 6Ø�Š˜˜"˜1˜"œ˜w­¬	°!©¬Ñ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6õ �S™UœUÑ
#Ô
#€CÝ�s˜MÑ*Ô*Ð*Ð*Ð*Ð*Ð*s   Ð2QÑQÑ	Qc                  ó  — t           j        j        d         } t          t	          d¬¦  «        ¦  «        }|                     t           j        t           j        dk    ¦  «         |                     t           j        ¦  «        }|j        | fk    sJ ‚|                     t           j        t           j        ¦  «         |                     t           j        ¦  «        }|j        | t          fk    sJ ‚t          | 
                    d¬¦  «        |                     t           j        ¦  «        ¦  «         t          j        | t          f¦  «        }d}t          t          ¦  «        D ]x}t          |dz   t          ¦  «        D ]]}|j        |                              t           j        ¦  «        }||dk    |fxx         dz  cc<   ||dk    |fxx         dz  cc<   |dz  }Œ^Œyt          |t          j        |¦  «        ¦  «         t          t          ¦  «        D ]p}t#          |d d …|f         ¦  «                             t#          g d¢¦  «        ¦  «        sJ ‚t'          t          j        |d d …|f         ¦  «        ¦  «        dk    sJ ‚Œqd S )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(  Y  sX  € Ý”	” Ô"€Iå ¥¸Ð!:Ñ!:Ô!:Ñ;Ô;€Gà‡K‚K•”	�4œ;¨!Ò+Ñ,Ô,Ð,Ø×)Ò)­$¬)Ñ4Ô4€IØŒ?˜y˜lÒ*Ð*Ð*Ð*ð ‡K‚K•”	�4œ;Ñ'Ô'Ð'Ø×)Ò)­$¬)Ñ4Ô4€IàŒ?˜y­)Ð4Ò4Ð4Ð4Ð4Ý�y×'Ò'¨QÐ'Ñ/Ô/°·²ÅÄÑ1KÔ1KÑLÔLÐLõ ŒH�i¥Ð+Ñ,Ô,€Eà	€AÝ•9ÑÔð ð ˆÝ�q˜1‘u�iÑ(Ô(ð 	ð 	ˆAØÔ& qÔ)×1Ò1µ$´)Ñ<Ô<ˆDØ�$˜!’)˜Q�,ÐÐÔ 1Ñ$ÐÐÑØ�$˜!’)˜Q�,ÐÐÔ 1Ñ$ÐÐÑØ�‰FˆAˆAð		õ �u�bœh yÑ1Ô1Ñ2Ô2Ð2å�9Ñ%Ô%ð =ð =ˆ	õ �5˜˜˜˜I˜Ô&Ñ'Ô'×0Ò0µ°_°_°_Ñ1EÔ1EÑFÔFÐFÐFÐFõ •2”9˜Y q q q¨) |Ô4Ñ5Ô5Ñ6Ô6¸Ò<Ð<Ð<Ð<Ð<ð=ð =rP   c                  óú   — t          t          d¬¦  «        ¦  «        } g d¢}t          | d|i¦  «        }|                     t          j        t          j        ¦  «         |j        j        d         j	        }||v sJ ‚d S rò   )
r   r   r   r=   r`   ra   rb   rõ   rc   rö   )r  r÷   rø   rù   s       rB   Útest_ovo_gridsearchr*  ˆ  ss   € Ý
�Y°AÐ6Ñ6Ô6Ñ
7Ô
7€CØ	ˆˆ€BÝ	�c˜N¨BÐ/Ñ	0Ô	0€BØ‡F‚F�4Œ9•d”kÑ"Ô"Ð"ØÔÔ+¨AÔ.Ô0€FØ�Rˆ<ˆ<ˆ<ˆ<ˆ<ˆ<rP   c                  óF  — t          j        ddgddgddgddgg¦  «        } t          j        g d¢¦  «        }t          t          ddd ¬¦  «        ¦  «        }|                     | |¦  «                             | ¦  «        }|                     | ¦  «        }t          j        |¦  «        }||z
  }t          |d	d d …f         d¦  «         t          t          j	        |dd …         d¬
¦  «        |dd …         ¦  «         |d	         |d	          	                    ¦   «         k    sJ ‚d S )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_tiesr2  ‘  s'  € õ 	Œ�1�a�&˜1˜a˜& 2 q '¨B°¨8Ð4Ñ5Ô5€AÝ
Œ���ÑÔ€AÝ"¥:°eÀaÈTÐ#RÑ#RÔ#RÑSÔS€IØ—]’] 1 aÑ(Ô(×0Ò0°Ñ3Ô3€NØ×.Ò.¨qÑ1Ô1€Lõ ŒH�\Ñ"Ô"€EØ)¨EÑ1Ðõ �u˜Q   ˜T”{ AÑ&Ô&Ð&å•r”y  q r r¤°Ð3Ñ3Ô3°^ÀAÀBÀBÔ5GÑHÔHÐHà˜!ÔÐ 6°qÔ 9× @Ò @Ñ BÔ BÒBÐBÐBÐBÐBÐBrP   c                  óX  — t          j        ddgddgddgddgg¦  «        } t          j        g d¢¦  «        }t          d¦  «        D ]c}||z   dz  }t          t	          ddd ¬	¦  «        ¦  «        }|                     | |¦  «                             | ¦  «        }|d
         |dz  k    sJ ‚Œdd S )Nr4   r5   r¦   r|   r,  r.   Frº   r-  r   )r;   r<   r  r   r   r=   r9   )r@   Úy_refr%  rA   r.  r/  s         rB   Útest_ovo_ties2r5  ©  sÆ   € å
Œ�1�a�&˜1˜a˜& 2 q '¨B°¨8Ð4Ñ5Ô5€AÝŒH�\�\�\Ñ"Ô"€Eõ �1‰XŒXð *ð *ˆØ�Q‰Y˜!‰OˆÝ&¥z¸%È!ÐQUÐ'VÑ'VÔ'VÑWÔWˆ	Ø"Ÿš q¨!Ñ,Ô,×4Ò4°QÑ7Ô7ˆØ˜aÔ  A¨¡EÒ)Ð)Ð)Ð)Ð)ð	*ð *rP   c                  ó  — t          j        d¦  «        } t          j        g d¢¦  «        }t          t	          ¦   «         ¦  «        }|                     | |¦  «         t          ||                     | ¦  «        ¦  «         d S )Nrº   )r	  ÚbÚcÚd)r;   Úeyer<   r   r   r=   r&   r9   )r@   rA   r  s      rB   Útest_ovo_string_yr;  ¶  sg   € å
Œˆq‰	Œ	€AÝ
ŒÐ%Ð%Ð%Ñ&Ô&€Aå
�Y™[œ[Ñ
)Ô
)€CØ‡G‚GˆAˆq�M„M€MÝ�q˜#Ÿ+š+ a™.œ.Ñ)Ô)Ð)Ð)Ð)rP   c                  ó,  — t          j        d¦  «        } t          j        dgdz  ¦  «        }t          t	          ¦   «         ¦  «        }d}t          j        t          |¬¦  «        5  |                     | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )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   Á%B	Â	BÂBc                  ó  — t           j        } t           j        d d …df         }t          t          ¦   «         ¦  «        }d}t	          j        t          |¬¦  «        5  |                     | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©Nr   zUnknown label typer2   )r`   ra   r   r   r7   r8   r:   r=   r=  s       rB   Útest_ovo_float_yrA  Ë  s¼   € åŒ	€AÝŒ	�!�!�!�Q�$Œ€Aå
�Y™[œ[Ñ
)Ô
)€CØ
€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð ó   ÁA?Á?BÂBc                  óÎ   — t          t          d¬¦  «        ¦  «        } t          j        t          ¦  «        5  |                      g ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r   )r   r   r7   r8   r
   r9   ©Úecocs    rB   Útest_ecoc_exceptionsrF  Ö  s    € Ý¥	°qÐ 9Ñ 9Ô 9Ñ:Ô:€DÝ	Œ•~Ñ	&Ô	&ð ð Ø�Š�RÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð r  c                  ó&  — t          t          d¬¦  «        dd¬¦  «        } |                      t          j        t          j        ¦  «                             t          j        ¦  «         t          | j        ¦  «        t          dz  k    sJ ‚t          t          ¦   «         dd¬¦  «        } |                      t          j        t          j        ¦  «                             t          j        ¦  «         t          | j        ¦  «        t          dz  k    sJ ‚d S )Nr   r0   r5   )Ú	code_sizer1   )r   r   r=   r`   ra   rb   r9   rS   rc   rd   r   rD  s    rB   Útest_ecoc_fit_predictrI  Ü  sÒ   € å¥	°qÐ 9Ñ 9Ô 9ÀQÐUVÐWÑWÔW€DØ‡H‚H�TŒY�œÑ$Ô$×,Ò,­T¬YÑ7Ô7Ð7ÝˆtÔÑ Ô ¥I°¡MÒ1Ð1Ð1Ð1õ  ¥¡¤¸1È1ÐMÑMÔM€DØ‡H‚H�TŒY�œÑ$Ô$×,Ò,­T¬YÑ7Ô7Ð7ÝˆtÔÑ Ô ¥I°¡MÒ1Ð1Ð1Ð1Ð1Ð1rP   c                  óþ   — t          t          d¬¦  «        d¬¦  «        } g d¢}t          | d|i¦  «        }|                     t          j        t          j        ¦  «         |j        j        d         j	        }||v sJ ‚d S rò   )
r   r   r   r=   r`   ra   rb   rõ   rc   rö   )rE  r÷   rø   rù   s       rB   Útest_ecoc_gridsearchrK  è  sx   € Ý¥	°qÐ 9Ñ 9Ô 9ÈÐJÑJÔJ€DØ	ˆˆ€BÝ	�d˜^¨RÐ0Ñ	1Ô	1€BØ‡F‚F�4Œ9•d”kÑ"Ô"Ð"ØÔÔ+¨AÔ.Ô0€FØ�Rˆ<ˆ<ˆ<ˆ<ˆ<ˆ<rP   c                  ó  — t           j        } t           j        d d …df         }t          t          ¦   «         ¦  «        }d}t	          j        t          |¬¦  «        5  |                     | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r@  )r`   ra   r   r   r7   r8   r:   r=   r=  s       rB   Útest_ecoc_float_yrM  ñ  s¼   € åŒ	€AÝŒ	�!�!�!�Q�$Œ€Aå
�y™{œ{Ñ
+Ô
+€CØ
€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð rB  Úcsc_containerc                 ó®  — t           j        t           j        }} | |¦  «        }t          t          dddœ¬¦  «        }t          |d¬¦  «        }t          j        t          d¬¦  «        5  | 	                    ||¦  «         d d d ¦  «         n# 1 swxY w Y   | 	                    ||¦  «         t          j        t          d¬¦  «        5  | 
                    |¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          d¬¦  «        ¦  «        }| 	                    ||¦  «         
                    |¦  «         t          |j        ¦  «        d	k    sJ ‚d S )
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   )rN  r@   rA   ÚX_spÚbase_estimatorrE  s         rB   Ú(test_ecoc_delegate_sparse_base_estimatorrW  ü  sÅ  € õ Œ9•d”k€q€AØˆ=˜ÑÔ€Dõ (ÝØ%)¸EÐBÐBðñ ô €Nõ   ¸QÐ?Ñ?Ô?€Då	Œ•yÐ(@Ð	AÑ	AÔ	Að ð Ø�Š��qÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð 	‡H‚HˆQ��N„N€NÝ	Œ•yÐ(@Ð	AÑ	AÔ	Að ð Ø�Š�TÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ  ¥	°qÐ 9Ñ 9Ô 9Ñ:Ô:€DØ‡H‚HˆT�1ÑÔ×Ò˜dÑ#Ô#Ð#ÝˆtÔÑ Ô  AÒ%Ð%Ð%Ð%Ð%Ð%s$   Á)BÂBÂBÃC*Ã*C.Ã1C.c                  ól  — t          j        d¬¦  «        } t          j        t          j        }}t          | ¦  «        }t          j        ||j        ¦  «        }| 	                    ||¦  «         t          |j        ¦  «        }|j        }|D ])}|j        d         |z  |dz
  z  |j        d         k    sJ ‚Œ*d S )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_indicesrd    s·   € Ý”g ]Ð3Ñ3Ô3€OÝŒ9•d”k€q€Aå" ?Ñ3Ô3€IÝ”F˜1˜aœc‘N”N€MØ‡M‚M�- Ñ#Ô#Ð#å�yÔ,Ñ-Ô-€LØ#Ô5Ðà"ð 
ð 
ˆàŒI�aŒL˜<Ñ'¨<¸!Ñ+;Ñ<ÀÔ@SÐTUÔ@VÒVÐVÐ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        dk    sJ ‚t          |¦  «                             | |¦  «        }|j        dk    sJ ‚|j	        D ]}|j        dk    sJ ‚Œt          |¦  «                             | |¦  «        }|j        dk    sJ ‚|j        dk    sJ ‚t          |j	        ¦  «        dk    sJ ‚|j	        D ]}|j        dk    sJ ‚Œ| | j        z  }|j        d	k    sJ ‚t	          j        d
¬¦  «                             ||¦  «        }|j        dk    sJ ‚t          |¦  «                             ||¦  «        }|j        dk    sJ ‚|j        dk    sJ ‚t          |j	        ¦  «        dk    sJ ‚|j	        D ]}|j        dk    sJ ‚Œt          |¦  «                             ||¦  «        }	|	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 ‚dS )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º   ÚlinearrZ  rº   r.   )rf  rf  rY  rf  é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_inrr  (  s  € õ Œ9•d”k€q€Að ˆRŒ5�AŠ:ˆ:ˆ:ˆ:Ø	ˆ#ˆ2ˆ#Œ€AØ	ˆ#ˆ2ˆ#Œ€Að Œ7�hÒÐÐÐåœ¨Ð1Ñ1Ô1×5Ò5°a¸Ñ;Ô;ÐØÔ,°Ò1Ð1Ð1Ð1å,Ð-?Ñ@Ô@×DÒDÀQÈÑJÔJÐØÔ,°Ò1Ð1Ð1Ð1Ø!Ô-ð 'ð 'ˆØÔ! QÒ&Ð&Ð&Ð&Ð&å+Ð,>Ñ?Ô?×CÒCÀAÀqÑIÔIÐØÔ,°Ò1Ð1Ð1Ð1ØÔ(¨AÒ-Ð-Ð-Ð-ÝÐ!Ô-Ñ.Ô.°!Ò3Ð3Ð3Ð3Ø!Ô-ð 'ð 'ˆØÔ! QÒ&Ð&Ð&Ð&Ð&ð 	
ˆAŒC‰€AØŒ7�jÒ Ð Ð Ð å”g ]Ð3Ñ3Ô3×7Ò7¸¸1Ñ=Ô=€OØÔ)¨SÒ0Ð0Ð0Ð0å)¨/Ñ:Ô:×>Ò>¸qÀ!ÑDÔD€OØÔ)¨SÒ0Ð0Ð0Ð0ØÔ%¨Ò*Ð*Ð*Ð*ÝˆÔ*Ñ+Ô+¨qÒ0Ð0Ð0Ð0ØÔ*ð )ð )ˆØÔ! SÒ(Ð(Ð(Ð(Ð(õ )¨Ñ9Ô9×=Ò=¸aÀÑCÔC€OØÔ)¨SÒ0Ð0Ð0Ð0ØÔ%¨Ò*Ð*Ð*Ð*ÝˆÔ*Ñ+Ô+¨qÒ0Ð0Ð0Ð0ØÔ& qÔ)Ô8¸BÒ>Ð>Ð>Ð>ØÔ& qÔ)Ô8¸BÒ>Ð>Ð>Ð>ØÔ& qÔ)Ô8¸CÒ?Ð?Ð?Ð?Ð?Ð?rP   ÚMultiClassClassifierc                 ó  — t          j        d¬¦  «        }t          j        ¦   «         } | |¦  «        }|                     ¦   «         j        j        rJ ‚ | |¦  «        }|                     ¦   «         j        j        sJ ‚d S )NrY  rZ  )r   r   Ú__sklearn_tags__Ú
input_tagsÚpairwise)rs  r^  rk  r_  Úovr_trues        rB   Útest_pairwise_tagry  m  s…   € õ ”g ]Ð3Ñ3Ô3€OÝœ™œÐà$Ð$Ð%7Ñ8Ô8€IØ×)Ò)Ñ+Ô+Ô6Ô?Ð?Ð?Ð?à#Ð# OÑ4Ô4€HØ×$Ò$Ñ&Ô&Ô1Ô:Ð:Ð:Ð:Ð:Ð:rP   c                 óV  — t          j        d¬¦  «        }t          j        d¬¦  «        }t          j        t          j        }} | |¦  «        } | |¦  «        }t          j        ||j        ¦  «        }t          |||d¬¦  «        }t          |||d¬¦  «        }	t          |	|¦  «         d S )NrY  rZ  rg  Úraise)Úerror_score)
r   r   r`   ra   rb   r;   r\  rÆ   r   r&   )
rs  r^  rk  r@   rA   Úmulticlass_clf_notprecomputedÚmulticlass_clf_precomputedr`  Úscore_not_precomputedÚscore_precomputeds
             rB   Útest_pairwise_cross_val_scorer�  {  sÂ   € õ ”g ]Ð3Ñ3Ô3€OÝœ¨Ð1Ñ1Ô1ÐåŒ9•d”k€q€Aà$8Ð$8Ð9KÑ$LÔ$LÐ!Ø!5Ð!5°oÑ!FÔ!FÐå”F˜1˜aœc‘N”N€MÝ+Ø% q¨!¸ðñ ô Ðõ (Ø" M°1À'ðñ ô Ðõ Ð(Ð*?Ñ@Ô@Ð@Ð@Ð@rP   c                 óæ  — t           j                             d¦  «        }t          j        t          j        }}t          j        |¦  «        }|                     ddg|j        ddg¬¦  «         	                    t          ¦  «        }t           j        ||<   t          t          ¦   «         t          |¬¦  «        ¦  «        } | |¦  «                             ||¦  «                             ||¦  «         d S )Né*   r4   r   ró   r€   )Úpr0   )r;   rs   ÚRandomStater`   ra   rb   ÚcopyÚchoicerª   r–   ÚboolÚnanr   r   r   r=   rË   )rs  Úrngr@   rA   ÚmaskÚlrs         rB   Útest_support_missing_valuesr�  ‘  sÃ   € õ Œ)×
Ò
 Ñ
#Ô
#€CÝŒ9•d”k€q€AÝ
Œ�‰
Œ
€AØ�:Š:�q˜!�f˜aœg¨#¨s¨ˆ:Ñ4Ô4×;Ò;½DÑAÔA€DÝŒf€A€d�GÝ	•}‘”Õ(:ÈÐ(LÑ(LÔ(LÑ	MÔ	M€BàÐ˜ÑÔ× Ò   AÑ&Ô&×,Ò,¨Q°Ñ2Ô2Ð2Ð2Ð2rP   Úmake_yc                 ó\  — t          j        d¦  «        } | dt           j        ¬¦  «        }t          t	          ¦   «         ¦  «        }|                     ||¦  «         |                     |¦  «        }t          j        |j        d         df¦  «        }d|dd…df<   t          ||¦  «         dS )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Ð'Ñ'Ô'€AÝ
Õ0Ñ2Ô2Ñ
3Ô
3€Cà‡G‚GˆAˆq�M„M€MØ×Ò˜qÑ!Ô!€FÝŒx˜œ œ Q˜Ñ(Ô(€HØ€HˆQˆQˆQ�ˆT�NÝ�F˜HÑ%Ô%Ð%Ð%Ð%rP   c                  ó0  — t          d¬¦  «        \  } }t          dd¬¦  «        }t          |¦  «        }|                     | |¦  «         |                     | |¦  «         t	          |                     | ¦  «        |                     | ¦  «        ¦  «         dS )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Ñ
AÔ
A€CÝ
˜SÑ
!Ô
!€Cà‡G‚GˆAˆq�M„M€MØ‡G‚GˆAˆq�M„M€Må�s—{’{ 1‘~”~ s§{¢{°1¡~¤~Ñ6Ô6Ð6Ð6Ð6rP   c                  ó’  — t          j        ¦   «         } t          t          d¬¦  «        ¬¦  «        }d}d}t	          j        t          |¬¦  «        5 }|                     | j        | j	        ¦  «         ddd¦  «         n# 1 swxY w Y   t          |j        j        t          ¦  «        sJ ‚|t          |j        j        ¦  «        v sJ ‚dS )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Ñ(KÔ(KÐ
LÑ
LÔ
L€CàK€IØL€IÝ	Œ•~¨YÐ	7Ñ	7Ô	7ð 0¸9Ø�Š˜œ	 4¤;Ñ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0å�i”oÔ/µÑ@Ô@Ð@Ð@Ð@Ø�˜IœOÔ5Ñ6Ô6Ð6Ð6Ð6Ð6Ð6Ð6s   Á!A>Á>BÂB)‚Ú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*  r2  r5  r;  r>  rA  rF  rI  rK  rM  rW  rd  rr  ry  r�  r�  r§   rR   r“  rš  r¥  rM   rP   rB   ú<module>rÃ     sÎ  ðØ Ð Ð Ð Ð Ð à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø )Ð )Ð )Ð )Ð )Ð )à !Ð !Ð !Ð !Ð !Ð !Ð !Ð !Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø /Ð /Ð /Ð /Ð /Ð /Ø -Ð -Ð -Ð -Ð -Ð -Ø (Ð (Ð (Ð (Ð (Ð (ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð :Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ Aðð ð ð ð ð ð ð ð ð ð
 .Ð -Ð -Ð -Ð -Ð -Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø &Ð &Ð &Ð &Ð &Ð &Ð &Ð &Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fðð ð ð ð ð ð ð ð 6Ð 5Ð 5Ð 5Ð 5Ð 5Ø JÐ JÐ JÐ JÐ JÐ JÐ JÐ Jðð ð ð ð ð ð ð ð ð ð ð ð ð ð RÐ QÐ QÐ QÐ QÐ QÐ QÐ Qà€xÔÑÔ€Ø„i×Ò˜AÑÔ€Ø
‡‚�t”{Ô'Ñ(Ô(€ØŒI�dŒO€„	ØŒk˜$Ô€„Ø€	ð7ð 7ð 7ð((ð (ð (ðTð Tð Tð&/ð /ð /ð !+ð !+ð !+ðH
'ð 
'ð 
'ð.ð .ð .ð$ „×ÒØØ�^Ñ# nÑ4°~ÑEÈÑVñô ð&Eð &Eñ	ô ð&EðR!<ð !<ð !<ðH.ð .ð .ð4(8ð (8ð (8ðVð ð ð&3ð 3ð 3ð
ð 
ð 
ð4!)ð !)ð !)ðH%ð %ð %ð*"ð "ð "ð2ð ð ð$Wð Wð Wðð ð ð	Lð 	Lð 	Lðð ð ð	Dð 	Dð 	Dð	Cð 	Cð 	Cð2+ð 2+ð 2+ðj,=ð ,=ð ,=ð^ð ð ðCð Cð Cð0
*ð 
*ð 
*ð*ð *ð *ðð ð ðð ð ðð ð ð	2ð 	2ð 	2ðð ð ðð ð ð „×Ò˜¨.Ñ9Ô9ð&ð &ñ :Ô9ð&ð4
ð 
ð 
ð"B@ð B@ð B@ðJ „×ÒØÐ0Ð2DÐEñô ð;ð ;ñô ð;ð „×ÒØÐ0Ð2DÐEñô ðAð Añô ðAð& „×ÒØÐ0Ð2DÐEñô ð
3ð 3ñô ð
3ð „×Ò˜ B¤G¨R¬XÐ#6Ñ7Ô7ð&ð &ñ 8Ô7ð&ð 7ð 7ð 7ð 7ð 7ð 7ð 7ð 7rP   