§
    ¥˜ºhuˆ ã                   ó„  — d dl Z d dlZd dlmZ d dlmZmZ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 d dlmZ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 m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@ d dlAmBZB d dlCmDZD d¶d„ZEd„ ZFd„ ZGe
jH         I                    ddd de	jJ        g¦  «        d„ ¦   «         ZKd„ ZLd„ ZMe@d„ ¦   «         ZNe@d„ ¦   «         ZOe@d„ ¦   «         ZPd „ ZQe
jH         I                    d!g d"¢ e	jR        g d#¢g d$¢g d%¢g d&¢g¦  «        fg d'¢g d(¢fg¦  «        d)„ ¦   «         ZSe
jH         I                    d!g d*¢ e	jR        g d&¢g d&¢g d+¢g d+¢g d,¢g¦  «        fg d-¢g d.¢fg¦  «        d/„ ¦   «         ZTd0„ ZUd1„ ZVd2„ ZWd3„ ZXd4„ ZYd5„ ZZe
jH         I                    d6g d7¢¦  «        d8„ ¦   «         Z[d9„ Z\e
jH         I                    d: e	jR        g d;¢¦  «         e	jR        g d;¢¦  «        d<œd=f e	jR        g d>¢¦  «         e	jR        g d>¢¦  «        d<œd?f e	jR        g d>¢¦  «         e	jR        g d;¢¦  «        d<œd@f e	jR        g d>¢¦  «         e	jR        g dA¢¦  «        d<œdBf e	jR        g d;¢¦  «         e	jR        g d>¢¦  «        d<œdCfg¦  «        dD„ ¦   «         Z]e
jH         I                    dE e	jR        g dF¢¦  «         e	jR        g dG¢¦  «        d<œdHfg¦  «        dI„ ¦   «         Z^dJ„ Z_dK„ Z`dL„ Zae
jH         I                    dd de	jJ        g¦  «        e
jH         I                    dMd gd gfg g fg¦  «        e
jH         I                    dNe" ee#d¬O¦  «        e,e-g¦  «        dP„ ¦   «         ¦   «         ¦   «         Zbe
jH         I                    dMd gd gfg g fg¦  «        e
jH         I                    dNe" ee#d¬O¦  «        e,e-g¦  «        dQ„ ¦   «         ¦   «         ZcdR„ ZddS„ ZedT„ ZfdU„ Zge
jH         I                    dVdWdXg¦  «        dY„ ¦   «         ZhdZ„ Zie
jH         I                    d[g d\¢¦  «        d]„ ¦   «         Zjd^„ Zkd_„ Zld`„ Zme
jH         I                    dag dbfdcddgdefgdfdgg¬h¦  «        di„ ¦   «         Zne
jH         I                    djdd dgg dk¢fg dl¢¬h¦  «        dm„ ¦   «         Zodn„ Zpe
jH         I                    dog dp¢¦  «        dq„ ¦   «         Zqdr„ Zrds„ Zsdt„ Ztdu„ Zudv„ Zvdw„ Zwdx„ Zxdy„ Zydz„ Zze@d{„ ¦   «         Z{d|„ Z|d}„ Z}d~„ Z~d„ Zd€„ Z€d�„ Z�d‚„ Z‚e
jH         I                    dƒd„d…g¦  «        d†„ ¦   «         Zƒe@d‡„ ¦   «         Z„e@dˆ„ ¦   «         Z…e@e
jH         I                    d‰dŠd„d‹e	jJ        e	jJ        fg¦  «        dŒ„ ¦   «         ¦   «         Z†e
jH         I                    d�dg¦  «        e
jH         I                    d[g dŽ¢¦  «        e
jH         I                    dd de	jJ        g¦  «        d�„ ¦   «         ¦   «         ¦   «         Z‡e
jH         I                    d[g dŽ¢¦  «        d�„ ¦   «         Zˆe
jH         I                    dd de	jJ        g¦  «        d‘„ ¦   «         Z‰d’„ ZŠd“„ Z‹e
jH         I                    dd de	jJ        g¦  «        d”„ ¦   «         ZŒe
jH         I                    ddd de	jJ        g¦  «        d•„ ¦   «         Z�e
jH         I                    ddd de	jJ        g¦  «        d–„ ¦   «         ZŽe
jH         I                    ddd de	jJ        g¦  «        d—„ ¦   «         Z�d˜„ Z�d™„ Z‘dš„ Z’d›„ Z“dœ„ Z”d�„ Z•dž„ Z–dŸ„ Z—d „ Z˜d¡„ Z™d¢„ Zšd£„ Z›d¤„ Zœd¥„ Z�d¦„ Zžd§„ ZŸe
jH         I                    d¨g d©¢g dª¢fg d«¢g dª¢fg dª¢g d«¢fg¦  «        d¬„ ¦   «         Z e
jH         I                    dNe&e" ee#d­¬O¦  «        e+e,e-eg¦  «        e
jH         I                    d®g d¯¢¦  «        d°„ ¦   «         ¦   «         Z¡e
jH         I                    d± e(e"e	jJ        ¬²¦  «         e(e#d³e	jJ        ¬´¦  «         e(e,e	jJ        ¬²¦  «         e(e-e	jJ        ¬²¦  «        g¦  «        dµ„ ¦   «         Z¢dS )·é    N)Úpartial)ÚchainÚpermutationsÚproduct)Úlinalg)Úhamming)Ú	bernoulli)ÚdatasetsÚsvm)Úmake_multilabel_classification)ÚUndefinedMetricWarning)Úaccuracy_scoreÚaverage_precision_scoreÚbalanced_accuracy_scoreÚbrier_score_lossÚclass_likelihood_ratiosÚclassification_reportÚcohen_kappa_scoreÚconfusion_matrixÚf1_scoreÚfbeta_scoreÚhamming_lossÚ
hinge_lossÚjaccard_scoreÚlog_lossÚmake_scorerÚmatthews_corrcoefÚmultilabel_confusion_matrixÚprecision_recall_fscore_supportÚprecision_scoreÚrecall_scoreÚzero_one_loss©Ú_check_targets)Úcross_val_score)ÚLabelBinarizerÚlabel_binarize)ÚDecisionTreeClassifier)ÚMockDataFrame)Úassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚassert_no_warningsÚignore_warnings)Ú_nanaverage)Úcheck_random_stateFc                 óü  — | €t          j        ¦   «         } | j        }| j        }|r||dk              ||dk              }}|j        \  }}t          j        |¦  «        }t          d¦  «        }|                     |¦  «         ||         ||         }}t          |dz  ¦  «        }t
          j
                             d¦  «        }t
          j        ||                     |d|z  ¦  «        f         }t          j        ddd¬¦  «        }	|	                     |d|…         |d|…         ¦  «                             ||d…         ¦  «        }
|r|
dd…d	f         }
|	                     ||d…         ¦  «        }||d…         }|||
fS )
z¼Make some classification predictions on a toy dataset using a SVC

    If binary is True restrict to a binary classification problem instead of a
    multiclass classification problem
    Né   é%   r   éÈ   ÚlinearT)ÚkernelÚprobabilityÚrandom_stateé   )r
   Ú	load_irisÚdataÚtargetÚshapeÚnpÚaranger1   ÚshuffleÚintÚrandomÚRandomStateÚc_Úrandnr   ÚSVCÚfitÚpredict_probaÚpredict)ÚdatasetÚbinaryÚXÚyÚ	n_samplesÚ
n_featuresÚpÚrngÚhalfÚclfÚprobas_predÚy_predÚy_trues                úq/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/sklearn/metrics/tests/test_classification.pyÚmake_predictionrY   :   sz  € ð €åÔ$Ñ&Ô&ˆàŒ€AØŒ€Aàð "à��Q’Œx˜˜1˜qš5œˆ1ˆàœGÑ€IˆzÝ
Œ	�)ÑÔ€Aå
˜RÑ
 Ô
 €CØ‡K‚K��N„N€NØˆQŒ4��1”€q€AÝˆy˜1‰}ÑÔ€Dõ Œ)×
Ò
 Ñ
"Ô
"€CÝ
Œˆa�—’˜9 c¨JÑ&6Ñ7Ô7Ð7Ô8€Aõ Œ'˜¨tÀ!Ð
DÑ
DÔ
D€CØ—'’'˜!˜E˜T˜Eœ( A e t e¤HÑ-Ô-×;Ò;¸A¸d¸e¸e¼HÑEÔE€Kàð (ð " ! ! ! Q $Ô'ˆà�[Š[˜˜4˜5˜5œÑ"Ô"€FØˆtˆuˆuŒX€FØ�6˜;Ð&Ð&ó    c            
      óÔ  — t          j        ¦   «         } t          | d¬¦  «        \  }}}dddddœdd	d
ddœdddddœdddddœddddddœdœ}t          ||t	          j        t          | j        ¦  «        ¦  «        | j        d¬¦  «        }|                     ¦   «         |                     ¦   «         k    sJ ‚|D ]¥}|dk    r2t          ||         t          ¦  «        sJ ‚||         ||         k    sJ ‚Œ:||                              ¦   «         ||                              ¦   «         k    sJ ‚||         D ]*}t          ||         |         ||         |         ¦  «         Œ+Œ¦t          |d         d         t          ¦  «        sJ ‚t          |d         d         t          ¦  «        sJ ‚t          |d         d         t          ¦  «        sJ ‚t          |d         d         t          ¦  «        sJ ‚d S ) NF©rK   rL   g§7½éMoê?gUUUUUUé?gh£¾³Qßé?é   )Ú	precisionÚrecallúf1-scoreÚsupportçUUUUUUÕ?gÆcŒ1Æ¸?g433333Ã?é   g³¦¬)kÊÚ?çÍÌÌÌÌÌì?ç“$I’$Iâ?é   gCÜFÁQà?g�¼cÕà?g¿��Æ¢ã?éK   ©r`   r^   r_   ra   gá?gDÖ~WGÞ?g]žè3«pà?)ÚsetosaÚ
versicolorÚ	virginicaú	macro avgÚaccuracyúweighted avgT)ÚlabelsÚtarget_namesÚoutput_dictrm   ri   r^   rl   ra   )r
   r;   rY   r   r?   r@   Úlenrp   ÚkeysÚ
isinstanceÚfloatr+   rB   )ÚirisrW   rV   Ú_Úexpected_reportÚreportÚkeyÚmetrics           rX   Ú,test_classification_report_dictionary_outputr|   j   sd  € åÔÑÔ€DÝ'°¸UÐCÑCÔCÑ€FˆF�Að
 -Ø)Ø*Øð	
ð 
ð -Ø*Ø+Øð	
ð 
ð -Ø)Ø+Øð	
ð 
ð +Ø+Ø'Øð	
ð 
ð 'à+Ø+Ø(Øð	
ð 
ð5 ð  €OõD #ØØÝŒy�˜TÔ.Ñ/Ô/Ñ0Ô0ØÔ&Øðñ ô €Fð �;Š;‰=Œ=˜O×0Ò0Ñ2Ô2Ò2Ð2Ð2Ð2Øð Wð WˆØ�*ÒÐÝ˜f Sœk­5Ñ1Ô1Ð1Ð1Ð1Ø˜#”; /°#Ô"6Ò6Ð6Ð6Ð6Ð6à˜#”;×#Ò#Ñ%Ô%¨¸Ô)=×)BÒ)BÑ)DÔ)DÒDÐDÐDÐDØ)¨#Ô.ð Wð W�Ý# O°CÔ$8¸Ô$@À&ÈÄ+ÈfÔBUÑVÔVÐVÐVðWõ �o hÔ/°Ô<½eÑDÔDÐDÐDÐDÝ�o kÔ2°;Ô?ÅÑGÔGÐGÐGÐGÝ�o hÔ/°	Ô:½CÑ@Ô@Ð@Ð@Ð@Ý�o kÔ2°9Ô=½sÑCÔCÐCÐCÐCÐCÐCrZ   c                  ó˜  — t          g g d¬¦  «        } dt          j        t          j        t          j        ddœt          j        t          j        t          j        ddœdœ}t          | t          ¦  «        sJ ‚|                      ¦   «         |                     ¦   «         k    sJ ‚|D ]¥}|dk    r2t          | |         t          ¦  «        sJ ‚| |         ||         k    sJ ‚Œ:| |                              ¦   «         ||                              ¦   «         k    sJ ‚||         D ]*}t          ||         |         | |         |         ¦  «         Œ+Œ¦d S )NT)rW   rV   rq   ç        r   rh   )rm   rl   rn   rm   )r   r?   Únanrt   Údictrs   ru   r+   )ry   rx   rz   r{   s       rX   Ú2test_classification_report_output_dict_empty_inputr�   «   so  € Ý"¨"°RÀTÐJÑJÔJ€FàåœÝœÝ”fØð	
ð 
õ œÝœÝ”fØð	
ð 
ðð €Oõ �f�dÑ#Ô#Ð#Ð#Ð#à�;Š;‰=Œ=˜O×0Ò0Ñ2Ô2Ò2Ð2Ð2Ð2Øð Wð WˆØ�*ÒÐÝ˜f Sœk­5Ñ1Ô1Ð1Ð1Ð1Ø˜#”; /°#Ô"6Ò6Ð6Ð6Ð6Ð6à˜#”;×#Ò#Ñ%Ô%¨¸Ô)=×)BÒ)BÑ)DÔ)DÒDÐDÐDÐDØ)¨#Ô.ð Wð W�Ý# O°CÔ$8¸Ô$@À&ÈÄ+ÈfÔBUÑVÔVÐVÐVðWðWð WrZ   Úzero_divisionÚwarnr:   c                 ó  — g d¢g d¢}}t          j        d¬¦  «        5 }t          ||| d¬¦  «         | dk    r5t          |¦  «        dk    sJ ‚|D ]}d}|t	          |j        ¦  «        v sJ ‚Œn|rJ ‚d d d ¦  «         d S # 1 swxY w Y   d S )	N©ÚaÚbÚc)r†   r‡   ÚdT©Úrecord)r‚   rq   rƒ   r:   z7Use `zero_division` parameter to control this behavior.)ÚwarningsÚcatch_warningsr   rr   ÚstrÚmessage)r‚   rW   rV   r‹   ÚitemÚmsgs         rX   Ú0test_classification_report_zero_division_warningr’   É   s  € à$�_�_ o o oˆF€FÝ	Ô	 ¨Ð	-Ñ	-Ô	-ð 
°ÝØ�F¨-ÀTð	
ñ 	
ô 	
ð 	
ð ˜FÒ"Ð"Ý�v‘;”; ’?�?�?�?Øð 0ð 0�ØO�Ø�c $¤,Ñ/Ô/Ð/Ð/Ð/Ð/Ð/ð0ð ÐÐÐð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   žAA>Á>BÂBc                  óF  — t          j        g d¢g d¢g¦  «        } t          j        g d¢g d¢g¦  «        }t          | |¦  «        dk    sJ ‚t          | | ¦  «        dk    sJ ‚t          ||¦  «        dk    sJ ‚t          |t          j        |¦  «        ¦  «        dk    sJ ‚t          | t          j        | ¦  «        ¦  «        dk    sJ ‚t          | t          j        | j        ¦  «        ¦  «        dk    sJ ‚t          |t          j        | j        ¦  «        ¦  «        dk    sJ ‚d S )N©r   r:   r:   ©r:   r   r:   ©r   r   r:   ç      à?r:   r   )r?   Úarrayr   Úlogical_notÚzerosr>   ©Úy1Úy2s     rX   Ú.test_multilabel_accuracy_score_subset_accuracyrž   Ù   s)  € å	Œ�9�9�9˜i˜i˜iÐ(Ñ	)Ô	)€BÝ	Œ�9�9�9˜i˜i˜iÐ(Ñ	)Ô	)€Bå˜"˜bÑ!Ô! SÒ(Ð(Ð(Ð(Ý˜"˜bÑ!Ô! QÒ&Ð&Ð&Ð&Ý˜"˜bÑ!Ô! QÒ&Ð&Ð&Ð&Ý˜"�bœn¨RÑ0Ô0Ñ1Ô1°QÒ6Ð6Ð6Ð6Ý˜"�bœn¨RÑ0Ô0Ñ1Ô1°QÒ6Ð6Ð6Ð6Ý˜"�bœh r¤xÑ0Ô0Ñ1Ô1°QÒ6Ð6Ð6Ð6Ý˜"�bœh r¤xÑ0Ô0Ñ1Ô1°QÒ6Ð6Ð6Ð6Ð6Ð6rZ   c                  óL  — t          d¬¦  «        \  } }}t          | |d ¬¦  «        \  }}}}t          |ddgd¦  «         t          |ddgd¦  «         t          |d	d
gd¦  «         t          |ddg¦  «         i t          fddit          ffD ]˜\  }} |t
          | |fi |¤Ž}	t          |	dd¦  «          |t          | |fi |¤Ž}
t          |
dd¦  «          |t          | |fi |¤Ž}t          |d
d¦  «         t           |t          | |fddi|¤Žd|	z  |
z  d|	z  |
z   z  d¦  «         Œ™d S )NT©rL   ©Úaverageg\�Âõ(\ç?g333333ë?r3   g)\�Âõ(ì?gÃõ(\�Âå?çš™™™™™é?gR¸…ëQè?é   r¢   rL   Úbetaé   é   )
rY   r   r,   r-   r.   r    r!   r   r+   r   )rW   rV   rw   rQ   ÚrÚfÚsÚkwargsÚ	my_assertÚpsÚrsÚfss               rX   Ú%test_precision_recall_f1_score_binaryr°   ç   s   € å'¨tÐ4Ñ4Ô4Ñ€FˆF�Aõ 1°¸ÈÐNÑNÔN�J€A€qˆ!ˆQÝ˜a $¨ ¨qÑ1Ô1Ð1Ý˜a $¨ ¨qÑ1Ô1Ð1Ý˜a $¨ ¨qÑ1Ô1Ð1Ý�q˜2˜r˜(Ñ#Ô#Ð#ð 
ÕÐ Ø
�XÐ	Õ 2Ð3ðð 
ð 
Ñˆ�	ð ˆY•¨°ÐAÐA¸&ÐAÐAˆÝ! " d¨AÑ.Ô.Ð.àˆY•| V¨VÐ>Ð>°vÐ>Ð>ˆÝ! " d¨AÑ.Ô.Ð.àˆY•x ¨Ð:Ð:°6Ð:Ð:ˆÝ! " d¨AÑ.Ô.Ð.åØˆI•k 6¨6ÐDÐD¸ÐD¸VÐDÐDØ˜‰O˜bÑ  D¨2¡I°¡NÑ3Øñ	
ô 	
ð 	
ð 	
ð
ð 
rZ   c                  óf  — dt          ddgddg¦  «        k    sJ ‚dt          ddgddg¦  «        k    sJ ‚dt          ddgddg¦  «        k    sJ ‚dt          ddgddgd¬¦  «        k    sJ ‚dt          ddgddg¦  «        k    sJ ‚dt          ddgddg¦  «        k    sJ ‚dt          ddgddg¦  «        k    sJ ‚dt          ddgddgt	          d¦  «        ¬¦  «        k    sJ ‚t          ddgddgt	          d¦  «        ¬¦  «        t          j        t          ddgddgd¬¦  «        ¦  «        k    sJ ‚d S )	Nç      ð?r:   r   ©r¥   r~   éÿÿÿÿÚinfg     jø@)r    r!   r   r   ru   ÚpytestÚapprox© rZ   rX   Ú+test_precision_recall_f_binary_single_classr¹   	  s”  € ð
 •/ 1 a &¨1¨a¨&Ñ1Ô1Ò1Ð1Ð1Ð1Ø•,  1˜v¨¨1 vÑ.Ô.Ò.Ð.Ð.Ð.Ø•(˜A˜q˜6 A q 6Ñ*Ô*Ò*Ð*Ð*Ð*Ø•+˜q !˜f q¨! f°1Ð5Ñ5Ô5Ò5Ð5Ð5Ð5à•/ 2 r (¨R°¨HÑ5Ô5Ò5Ð5Ð5Ð5Ø•,  B˜x¨"¨b¨Ñ2Ô2Ò2Ð2Ð2Ð2Ø•(˜B ˜8 b¨" XÑ.Ô.Ò.Ð.Ð.Ð.Ø•+˜r 2˜h¨¨R¨µu¸U±|´|ÐDÑDÔDÒDÐDÐDÐDÝ˜˜B�x " b µ°e±´Ð=Ñ=Ô=ÅÄÝ�R˜�H˜r 2˜h¨SÐ1Ñ1Ô1ñBô Bò ð ð ð ð ð rZ   c                  ó   — g d¢} g d¢}t          | t          j        d¦  «        ¬¦  «        }t          |t          j        d¦  «        ¬¦  «        }| |f||fg}t          |¦  «        D ]®\  }\  } }t	          | |g d¢d ¬¦  «        }t          g d¢|¦  «         t	          | |g d¢d¬¦  «        }t          t          j        g d¢¦  «        |¦  «         d	D ]C}|d
k    r|dk    rŒt          t	          | |g d¢|¬¦  «        t	          | |d |¬¦  «        ¦  «         ŒDŒ¯dD ]¯}t          j	        t          ¦  «        5  t	          ||t          j        d¦  «        |¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        t          ¦  «        5  t	          ||t          j        dd¦  «        |¬¦  «         d d d ¦  «         n# 1 swxY w Y   Œ°t          j        g d¢g d¢g¦  «        } t          j        g d¢g d¢g¦  «        }t          | |d
ddg¬¦  «        \  }}	}
}t          t          j        ||	|
g¦  «        t          j        g d¢¦  «        ¦  «         d S )N)r:   é   r»   r3   )r:   r:   r»   r3   r¦   ©Úclasses)r   r:   r3   r»   r§   ©ro   r¢   )r~   r²   r²   r—   r~   Úmacro)ÚmicroÚweightedÚsamplesrÂ   r   )Nr¿   rÀ   rÂ   é   r´   r§   r”   ©r:   r   r   ©r:   r:   r:   r•   r:   ©r¢   ro   )ç      è?r:   ç«ªªªªªê?)r'   r?   r@   Ú	enumerater!   r,   Úmeanr+   r¶   ÚraisesÚ
ValueErrorr˜   r   )rW   rV   Ú
y_true_binÚ
y_pred_binr<   ÚiÚactualr¢   rQ   r¨   r©   rw   s               rX   Ú$test_precision_recall_f_extra_labelsrÑ     s.  € ð ˆ\ˆ\€FØˆ\ˆ\€FÝ µ´	¸!±´Ð=Ñ=Ô=€JÝ µ´	¸!±´Ð=Ñ=Ô=€JØ�VÐ˜z¨:Ð6Ð7€Då(¨™œð ð ÑˆÑˆF�Få˜f f°_°_°_ÈdÐSÑSÔSˆÝ!Ð";Ð";Ð";¸VÑDÔDÐDõ ˜f f°_°_°_ÈgÐVÑVÔVˆÝ!¥"¤'Ð*CÐ*CÐ*CÑ"DÔ"DÀfÑMÔMÐMð 8ð 	ð 	ˆGØ˜)Ò#Ð#¨¨Qª¨ØÝÝ˜V V°O°O°OÈWÐUÑUÔUÝ˜V V°DÀ'ÐJÑJÔJñô ð ð ð	ð 7ð ð ˆÝŒ]�:Ñ&Ô&ð 	Wð 	WÝ˜ Z½¼	À!¹¼ÈgÐVÑVÔVÐVð	Wð 	Wð 	Wñ 	Wô 	Wð 	Wð 	Wð 	Wð 	Wð 	Wð 	Wøøøð 	Wð 	Wð 	Wð 	WåŒ]�:Ñ&Ô&ð 	ð 	ÝØ˜J­r¬y¸¸QÑ/?Ô/?Èðñ ô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øõ ŒX�y�y�y ) ) )Ð,Ñ-Ô-€FÝŒX�y�y�y ) ) )Ð,Ñ-Ô-€FÝ0Ø� 	°1°a°&ðñ ô �J€A€qˆ!ˆQõ �œ ! Q¨ Ñ+Ô+­R¬XÐ6GÐ6GÐ6GÑ-HÔ-HÑIÔIÐIÐIÐIs$   Ä2&E$Å$E(	Å+E(	Æ'F;Æ;F?	ÇF?	c                  ó\  — g d¢} g d¢}t          | t          j        d¦  «        ¬¦  «        }t          |t          j        d¦  «        ¬¦  «        }| |f||fg}t          |¦  «        D ]Å\  }\  } }t	          t
          | |ddg¬¦  «        }t	          t
          | |d ¬¦  «        }t          dd	g |d ¬
¦  «        ¦  «         t          d |d¬
¦  «        ¦  «         t          d |d¬
¦  «        ¦  «         t          d |d¬
¦  «        ¦  «         dD ]} ||¬
¦  «         ||¬
¦  «        k    sJ ‚ŒŒÆd S )N)r:   r:   r3   r»   )r:   r»   r»   r»   r¦   r¼   r:   r»   ©ro   r—   r²   r¡   rÇ   r¿   çUUUUUUå?rÁ   rÀ   )r¿   rÁ   rÀ   )r'   r?   r@   rÉ   r   r!   r,   r+   )	rW   rV   rÍ   rÎ   r<   rÏ   Ú	recall_13Ú
recall_allr¢   s	            rX   Ú&test_precision_recall_f_ignored_labelsr×   J  s{  € ð ˆ\ˆ\€FØˆ\ˆ\€FÝ µ´	¸!±´Ð=Ñ=Ô=€JÝ µ´	¸!±´Ð=Ñ=Ô=€JØ�VÐ˜z¨:Ð6Ð7€Då(¨™œð Mð MÑˆÑˆF�FÝ�L¨&°&À!ÀQÀÐHÑHÔHˆ	Ý�\¨6°6À$ÐGÑGÔGˆ
å! 3¨ *¨i¨iÀÐ.EÑ.EÔ.EÑFÔFÐFÝ˜O¨Y¨Y¸wÐ-GÑ-GÔ-GÑHÔHÐHÝÐ3°Y°YÀzÐ5RÑ5RÔ5RÑSÔSÐSÝ˜G Y Y°wÐ%?Ñ%?Ô%?Ñ@Ô@Ð@ð 6ð 	Mð 	MˆGØ�9 WÐ-Ñ-Ô-°°ÀGÐ1LÑ1LÔ1LÒLÐLÐLÐLÐLð	MðMð MrZ   c            	      ó.  — t          j        g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        } t          j        g d¢g d¢g d¢g d	¢g d
¢g d¢g¦  «        }d}t          j        t          |¬¦  «        5  t          | |d¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z:Test multiclass-multiouptut for `average_precision_score`.)r3   r3   r:   ©r:   r3   r   ©r   r:   r3   ©r:   r3   r:   )r3   r   r:   ©çffffffæ?çš™™™™™É?çš™™™™™¹?©çš™™™™™Ù?ç333333Ó?râ   ©rß   r£   rß   ©rÞ   râ   r—   )rá   rá   rÞ   )rß   rÞ   rÝ   z.multiclass-multioutput format is not supported©Úmatchr3   ©Ú	pos_labelN)r?   r˜   r¶   rË   rÌ   r   )rW   Úy_scoreÚerr_msgs      rX   Ú-test_average_precision_score_non_binary_classrë   a  s  € åŒXàˆIˆIØˆIˆIØˆIˆIØˆIˆIØˆIˆIØˆIˆIð	
ñ	ô 	€Fõ ŒhàˆOˆOØˆOˆOØˆOˆOØˆOˆOØˆOˆOØˆOˆOð	
ñ	ô 	€Gð ?€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð >ð >Ý ¨¸1Ð=Ñ=Ô=Ð=ð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >ð >ð >s   Á*B
Â
BÂBzy_true, y_score©r   r   r:   r3   rÜ   rà   rã   rä   )r   r   r   r   r:   r:   r:   r:   r:   r:   r:   )r   rß   rß   rá   r—   ç333333ã?rí   rd   rd   r:   r:   c                 ó2   — t          | |¦  «        dk    sJ ‚dS )a(  
    Duplicate values with precision-recall require a different
    processing than when computing the AUC of a ROC, because the
    precision-recall curve is a decreasing curve
    The following situation corresponds to a perfect
    test statistic, the average_precision_score should be 1.
    r:   N©r   ©rW   ré   s     rX   Ú-test_average_precision_score_duplicate_valuesrñ   |  s%   € õ8 # 6¨7Ñ3Ô3°qÒ8Ð8Ð8Ð8Ð8Ð8rZ   )r3   r3   r:   r:   r   )rá   r—   râ   )r£   r—   râ   r”   )r—   r—   rí   c                 ó2   — t          | |¦  «        dk    sJ ‚d S )Nr²   rï   rð   s     rX   Ú(test_average_precision_score_tied_valuesró   ›  s%   € õ: # 6¨7Ñ3Ô3°sÒ:Ð:Ð:Ð:Ð:Ð:rZ   c                  ó    — d} t          j        t          | ¬¦  «        5  t          g d¢g d¢dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NzšNote that pos_label \(set to 2\) is ignored when average != 'binary' \(got 'macro'\). You may use labels=\[pos_label\] to specify a single positive class.rå   rÛ   ©r:   r3   r3   r3   r¿   ©rè   r¢   )r¶   ÚwarnsÚUserWarningr   ©r‘   s    rX   Ú(test_precision_recall_f_unused_pos_labelrú   »  s¯   € ð
	ð õ 
Œ•k¨Ð	-Ñ	-Ô	-ð 
ð 
Ý'ØˆIˆI�y�y�y¨A°wð	
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   žAÁAÁ
Ac                  óŒ   — t          d¬¦  «        \  } }}d„ } || |¦  «          |d„ | D ¦   «         d„ |D ¦   «         ¦  «         d S )NTr    c                 ón  — t          | |¦  «        }t          |ddgddgg¦  «         |                     ¦   «         \  }}}}||z  ||z  z
  }t          j        ||z   ||z   z  ||z   z  ||z   z  ¦  «        }|dk    rdn||z  }	t          | |¦  «        }
t          |
|	d¬¦  «         t          |
dd¬¦  «         d S )	Né   r»   é   é   r   r3   ©Údecimalç=
×£p=â?)r   r-   Úflattenr?   Úsqrtr   r,   )rW   rV   ÚcmÚtpÚfpÚfnÚtnÚnumÚdenÚtrue_mccÚmccs              rX   Útestz*test_confusion_matrix_binary.<locals>.testÏ  s×   € Ý˜f fÑ-Ô-ˆÝ˜2  Q ¨!¨R¨Ð1Ñ2Ô2Ð2àŸš™œ‰ˆˆB��BØ�2‰g˜˜R™ÑˆÝŒg�r˜B‘w 2¨¡7Ñ+¨r°B©wÑ7¸2À¹7ÑCÑDÔDˆà˜qš˜�1�1 c¨C¡iˆÝ ¨Ñ/Ô/ˆÝ! # x¸Ð;Ñ;Ô;Ð;Ý! # t°QÐ7Ñ7Ô7Ð7Ð7Ð7rZ   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r¸   ©rŽ   ©Ú.0rN   s     rX   ú
<listcomp>z0test_confusion_matrix_binary.<locals>.<listcomp>Ý  ó   € Ð	!Ð	!Ð	!�Q�#ˆa‰&Œ&Ð	!Ð	!Ð	!rZ   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r¸   r  r  s     rX   r  z0test_confusion_matrix_binary.<locals>.<listcomp>Ý  ó   € Ð#;Ð#;Ð#;¨q¥C¨¡F¤FÐ#;Ð#;Ð#;rZ   ©rY   ©rW   rV   rw   r  s       rX   Útest_confusion_matrix_binaryr  Ë  sr   € å'¨tÐ4Ñ4Ô4Ñ€FˆF�Að8ð 8ð 8ð 	€Dˆ�ÑÔÐØ€DÐ	!Ð	!˜&Ð	!Ñ	!Ô	!Ð#;Ð#;°FÐ#;Ñ#;Ô#;Ñ<Ô<Ð<Ð<Ð<rZ   c                  óŒ   — t          d¬¦  «        \  } }}d„ } || |¦  «          |d„ | D ¦   «         d„ |D ¦   «         ¦  «         d S )NTr    c                 ób   — t          | |¦  «        }t          |ddgddggddgddggg¦  «         d S )Nrÿ   rþ   r»   rý   ©r   r-   )rW   rV   r  s      rX   r  z5test_multilabel_confusion_matrix_binary.<locals>.testä  sF   € Ý(¨°Ñ8Ô8ˆÝ˜2 " a ¨1¨b¨'Ð 2°b¸!°W¸qÀ"¸gÐ4FÐGÑHÔHÐHÐHÐHrZ   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r¸   r  r  s     rX   r  z;test_multilabel_confusion_matrix_binary.<locals>.<listcomp>é  r  rZ   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r¸   r  r  s     rX   r  z;test_multilabel_confusion_matrix_binary.<locals>.<listcomp>é  r  rZ   r  r  s       rX   Ú'test_multilabel_confusion_matrix_binaryr  à  su   € å'¨tÐ4Ñ4Ô4Ñ€FˆF�AðIð Ið Ið 	€Dˆ�ÑÔÐØ€DÐ	!Ð	!˜&Ð	!Ñ	!Ô	!Ð#;Ð#;°FÐ#;Ñ#;Ô#;Ñ<Ô<Ð<Ð<Ð<rZ   c                  ó’   — t          d¬¦  «        \  } }}dd„} || |¦  «          |d„ | D ¦   «         d„ |D ¦   «         d¬¦  «         d S )	NFr    c           	      ó‚  — t          | |¦  «        }t          |ddgddggddgddggd	d
gddggg¦  «         |rg d¢ng d¢}t          | ||¬¦  «        }t          |ddgddggd	d
gddggddgddggg¦  «         |rg d¢ng d¢}t          | ||¬¦  «        }t          |ddgddggd	d
gddggddgddggddgddggg¦  «         d S )Né/   r§   r¦   é   é&   rÃ   é   r»   é   r¤   r3   é   )Ú0Ú2Ú1©r   r3   r:   rÓ   )r(  r)  r*  Ú3)r   r3   r:   r»   rg   r   r  )rW   rV   Ústring_typer  ro   s        rX   r  z9test_multilabel_confusion_matrix_multiclass.<locals>.testð  s[  € å(¨°Ñ8Ô8ˆÝØ�2�q�'˜A˜r˜7Ð# r¨1 g°°A¨wÐ%7¸2¸r¸(ÀQÈÀGÐ9LÐMñ	
ô 	
ð 	
ð
 %0Ð>����°Y°Y°YˆÝ(¨°ÀÐGÑGÔGˆÝØ�2�q�'˜A˜r˜7Ð# r¨2 h°°B°Ð%8¸BÀ¸7ÀRÈÀGÐ:LÐMñ	
ô 	
ð 	
ð
 *5ÐFÐ%Ð%Ð%Ð%¸,¸,¸,ˆÝ(¨°ÀÐGÑGÔGˆÝØà�a�˜1˜b˜'Ð"Ø�b�˜A˜r˜7Ð#Ø�a�˜2˜q˜'Ð"Ø�a�˜1˜a˜&Ð!ð	ñ	
ô 	
ð 	
ð 	
ð 	
rZ   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r¸   r  r  s     rX   r  z?test_multilabel_confusion_matrix_multiclass.<locals>.<listcomp>  r  rZ   c                 ó,   — g | ]}t          |¦  «        ‘ŒS r¸   r  r  s     rX   r  z?test_multilabel_confusion_matrix_multiclass.<locals>.<listcomp>  r  rZ   T)r-  )Fr  r  s       rX   Ú+test_multilabel_confusion_matrix_multiclassr0  ì  s|   € å'¨uÐ5Ñ5Ô5Ñ€FˆF�Að
ð 
ð 
ð 
ð6 	€Dˆ�ÑÔÐØ€DÐ	!Ð	!˜&Ð	!Ñ	!Ô	!Ð#;Ð#;°FÐ#;Ñ#;Ô#;ÈÐNÑNÔNÐNÐNÐNrZ   c                  óZ  — ddl m} m} t          j        g d¢g d¢g d¢g¦  «        }t          j        g d¢g d¢g d¢g¦  «        } ||¦  «        } ||¦  «        } | |¦  «        } | |¦  «        }t          j        g d	¢¦  «        }d
dgd
d
ggd
dgd
d
ggddgd
dggg}	|||g}
|||g}|
D ]'}|D ]"}t          ||¦  «        }t          ||	¦  «         Œ#Œ(t          ||d¬¦  «        }t          |d
dgd
d
ggd
d
gdd
ggdd
gddggg¦  «         t          ||ddg¬¦  «        }t          |ddgd
dggd
dgd
d
ggg¦  «         t          ||ddgd¬¦  «        }t          |ddgd
d
ggd
d
gddggdd
gd
dggg¦  «         t          |||d¬¦  «        }t          |ddgddggd
d
gdd
ggddgddggg¦  «         d S )Nr   )Ú
csc_matrixÚ
csr_matrixr•   ©r   r:   r   ©r:   r:   r   rÄ   r”   r–   )r3   r:   r»   r:   r3   T©Ú
samplewiserÓ   )ro   r7  )Úsample_weightr7  r»   rÃ   )Úscipy.sparser2  r3  r?   r˜   r   r-   )r2  r3  rW   rV   Ú
y_true_csrÚ
y_pred_csrÚ
y_true_cscÚ
y_pred_cscr8  Úreal_cmÚtruesÚpredsÚ
y_true_tmpÚ
y_pred_tmpr  s                  rX   Ú+test_multilabel_confusion_matrix_multilabelrC    s›  € à3Ð3Ð3Ð3Ð3Ð3Ð3Ð3åŒX�y�y�y ) ) )¨Y¨Y¨YÐ7Ñ8Ô8€FÝŒX�y�y�y ) ) )¨Y¨Y¨YÐ7Ñ8Ô8€FØ�˜FÑ#Ô#€JØ�˜FÑ#Ô#€JØ�˜FÑ#Ô#€JØ�˜FÑ#Ô#€Jõ ”H˜Y˜Y˜YÑ'Ô'€MØ�A�˜˜A˜Ð 1 a &¨1¨a¨&Ð!1°Q¸°F¸QÀ¸FÐ3CÐD€GØ�Z Ð,€EØ�Z Ð,€Eàð ,ð ,ˆ
Øð 	,ð 	,ˆJÝ,¨Z¸ÑDÔDˆBÝ˜r 7Ñ+Ô+Ð+Ð+ð	,õ
 
% V¨VÀÐ	EÑ	EÔ	E€BÝ�r˜a ˜V a¨ VÐ,°°1¨v¸¸1°vÐ.>À!ÀQÀÈ!ÈQÈÐ@PÐQÑRÔRÐRõ 
% V¨V¸QÀ¸FÐ	CÑ	CÔ	C€BÝ�r˜a ˜V a¨ VÐ,°°1¨v¸¸1°vÐ.>Ð?Ñ@Ô@Ð@õ 
% V¨V¸QÀ¸FÈtÐ	TÑ	TÔ	T€BÝ�r˜a ˜V a¨ VÐ,°°1¨v¸¸1°vÐ.>À!ÀQÀÈ!ÈQÈÐ@PÐQÑRÔRÐRõ 
%Ø� mÀð
ñ 
ô 
€Bõ �r˜a ˜V a¨ VÐ,°°1¨v¸¸1°vÐ.>À!ÀQÀÈ!ÈQÈÐ@PÐQÑRÔRÐRÐRÐRrZ   c            	      óú  — t          j        g d¢g d¢g d¢g¦  «        } t          j        g d¢g d¢g d¢g¦  «        }t          j        t          d¬¦  «        5  t          | |d	d
g¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          | |g d¢g d¢g d¢g¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          | |dg¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          | |dg¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          g d¢g d¢d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          g d¢g d¢gg d¢g d¢g¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr•   r4  r5  rÄ   r”   r–   zinconsistent numbers of samplesrå   r:   r3   ©r8  zshould be a 1d array©r:   r3   r»   )r3   r»   r§   )r»   r§   r¦   z%All labels must be in \[0, n labels\)r´   rÓ   r»   zSamplewise metricsrÚ   rÙ   Tr6  z'multiclass-multioutput is not supported)r3   r:   r   ©r:   r   r3   )r?   r˜   r¶   rË   rÌ   r   )rW   rV   rê   s      rX   Ú'test_multilabel_confusion_matrix_errorsrH  8  s  € ÝŒX�y�y�y ) ) )¨Y¨Y¨YÐ7Ñ8Ô8€FÝŒX�y�y�y ) ) )¨Y¨Y¨YÐ7Ñ8Ô8€Fõ 
Œ•zÐ)JÐ	KÑ	KÔ	Kð Jð JÝ# F¨FÀ1ÀaÀ&ÐIÑIÔIÐIðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jå	Œ•zÐ)?Ð	@Ñ	@Ô	@ð 
ð 
Ý#Ø�F¨9¨9¨9°i°i°iÀÀÀÐ*Kð	
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 7€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð Að AÝ# F¨F¸B¸4Ð@Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Aà6€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð @ð @Ý# F¨F¸A¸3Ð?Ñ?Ô?Ð?ð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @õ 
Œ•zÐ)=Ð	>Ñ	>Ô	>ð Kð KÝ# I I I¨y¨y¨yÀTÐJÑJÔJÐJðKð Kð Kñ Kô Kð Kð Kð Kð Kð Kð Køøøð Kð Kð Kð Kð 8€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð Tð TÝ# Y Y Y°	°	°	Ð$:¸Y¸Y¸YÈ	È	È	Ð<RÑSÔSÐSðTð Tð Tñ Tô Tð Tð Tð Tð Tð Tð Tð Tøøøð Tð Tð Tð Tð Tð Tsl   ÁA7Á7A;Á>A;ÂCÃC	ÃC	Ã-DÄDÄDÄ5EÅEÅEÅ;FÆF"Æ%F"ÇG0Ç0G4Ç7G4z%normalize, cm_dtype, expected_results))Útruer©   çµùTUUÕ?)Úpredr©   rJ  )Úallr©   g��eÇq¼?)NrÏ   r3   c                 óÆ   — g d¢dz  }t          t          t          g d¢¦  «        Ž ¦  «        }t          ||| ¬¦  «        }t	          ||¦  «         |j        j        |k    sJ ‚d S )NrÚ   rÃ   ©Ú	normalize)Úlistr   r   r   r*   ÚdtypeÚkind)rO  Úcm_dtypeÚexpected_resultsÚy_testrV   r  s         rX   Útest_confusion_matrix_normalizerV  V  so   € ð ˆYˆY˜‰]€FÝ•%� i i iÑ0Ô0Ð1Ñ2Ô2€FÝ	˜& &°IÐ	>Ñ	>Ô	>€BÝ�BÐ(Ñ)Ô)Ð)ØŒ8Œ=˜HÒ$Ð$Ð$Ð$Ð$Ð$rZ   c                  óH  — g d¢} g d¢}t          | |d¬¦  «        }|                     ¦   «         t          j        d¦  «        k    sJ ‚t	          j        ¦   «         5  t	          j        dt          ¦  «         t          | |d¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |                     ¦   «         t          j        d¦  «        k    sJ ‚t	          j        ¦   «         5  t	          j        dt          ¦  «         t          || d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	N)r   r   r   r   r:   r:   r:   r:   )r   r   r   r   r   r   r   r   rI  rN  ç       @ÚerrorrK  r²   )r   Úsumr¶   r·   rŒ   r�   ÚsimplefilterÚRuntimeWarning)rU  rV   Úcm_trueÚcm_preds       rX   Ú,test_confusion_matrix_normalize_single_classr_  g  s­  € Ø%Ð%Ð%€FØ%Ð%Ð%€Få˜v v¸Ð@Ñ@Ô@€GØ�;Š;‰=Œ=�FœM¨#Ñ.Ô.Ò.Ð.Ð.Ð.õ 
Ô	 Ñ	"Ô	"ð Eð EÝÔ˜g¥~Ñ6Ô6Ð6Ý" 6¨6¸VÐDÑDÔDˆðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eð �;Š;‰=Œ=�FœM¨#Ñ.Ô.Ò.Ð.Ð.Ð.å	Ô	 Ñ	"Ô	"ð ;ð ;ÝÔ˜g¥~Ñ6Ô6Ð6Ý˜ °6Ð:Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð ;ð ;s$   Á-BÂBÂBÃ-DÄDÄDzparams, warn_msg)r   r   r   r   r   r   ©rW   rV   z2samples of only one class were seen during testing)r:   r:   r:   r   r   r   z:positive_likelihood_ratio ill-defined and being set to nanz+no samples predicted for the positive class)r   r   r   r:   r:   r:   z:negative_likelihood_ratio ill-defined and being set to nanz@no samples of the positive class were present in the testing setc                 ó†   — t          j        t          |¬¦  «        5  t          di | ¤Ž d d d ¦  «         d S # 1 swxY w Y   d S ©Nrå   r¸   )r¶   r÷   rø   r   )ÚparamsÚwarn_msgs     rX   Útest_likelihood_ratios_warningsre  z  s’   € õb 
Œ•k¨Ð	2Ñ	2Ô	2ð *ð *ÝÐ)Ð) &Ð)Ð)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *ó   œ6¶:½:zparams, err_msg)r   r:   r   r:   r   ©r:   r:   r   r   r3   zeclass_likelihood_ratios only supports binary classification problems, got targets of type: multiclassc                 ó†   — t          j        t          |¬¦  «        5  t          di | ¤Ž d d d ¦  «         d S # 1 swxY w Y   d S rb  )r¶   rË   rÌ   r   )rc  rê   s     rX   Útest_likelihood_ratios_errorsri  ¯  s‘   € õ$ 
Œ•z¨Ð	1Ñ	1Ô	1ð *ð *ÝÐ)Ð) &Ð)Ð)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *rf  c                  óF  — t          j        dgdz  dgdz  z   ¦  «        } t          j        dgdz  dgdz  z   dgdz  z   ¦  «        }t          | |¦  «        \  }}t          |d¦  «         t          |d	¦  «         t          | | ¦  «        \  }}t	          |t           j        dz  ¦  «         t          |t          j        d¦  «        d
¬¦  «         t          j        dgdz  dgdz  z   ¦  «        }t          | ||¬¦  «        \  }}t          |d¦  «         t          |d¦  «         d S )Nr:   r»   r   rÿ   r3   é
   rþ   g«ªªªªªö?g_B{	í%ä?gê-�™—q=)Úrtolr²   é   r~   r¦   rE  gUUUUUU@gÇqÇqÜ?)r?   r˜   r   r*   r-   r   rš   )rW   rV   ÚposÚnegr8  s        rX   Útest_likelihood_ratiosrp  Å  s*  € õ ŒX�q�c˜A‘g   b¡Ñ(Ñ)Ô)€FÝŒX�q�c˜A‘g   b¡Ñ(¨A¨3°©7Ñ2Ñ3Ô3€Få& v¨vÑ6Ô6�H€CˆÝ�C˜Ñ!Ô!Ð!Ý�C˜Ñ!Ô!Ð!õ ' v¨vÑ6Ô6�H€CˆÝ�s�BœF Q™JÑ'Ô'Ð'Ý�C�œ !™œ¨5Ð1Ñ1Ô1Ð1õ
 ”H˜c˜U R™Z¨3¨%°!©)Ñ3Ñ4Ô4€MÝ& v¨vÀ]ÐSÑSÔS�H€CˆÝ�C˜Ñ Ô Ð Ý�C˜Ñ!Ô!Ð!Ð!Ð!rZ   c                  ó  — t          j        dgdz  dgdz  z   ¦  «        } t          j        dgdz  dgdz  z   dgdz  z   dgdz  z   ¦  «        }t          | |¦  «        }t          |dd	¬
¦  «         |t          || ¦  «        k    sJ ‚t          j        | dgdz  ¦  «        } t          j        |dgdz  ¦  «        }t          | |ddg¬¦  «        |k    sJ ‚t          t          | | ¦  «        d¦  «         t          j        dgdz  dgdz  z   dgdz  z   ¦  «        } t          j        dgdz  dgdz  z   dgdz  z   ¦  «        }t          t          | |¦  «        dd¬
¦  «         t          j        dgdz  dgdz  z   dgdz  z   ¦  «        } t          j        dgdz  dgdz  z   dgdz  z   ¦  «        }t          t          | |¦  «        dd¬
¦  «         t          t          | |d¬¦  «        dd¬
¦  «         t          t          | |d¬¦  «        dd¬
¦  «         d S )Nr   é(   r:   é<   rf   rk  é2   gƒÀÊ¡EÖ?r»   r   r3   r§   rÓ   r²   é.   é,   é4   é    é   gÉå?¤é?g+‡ÙÎí?r6   ©Úweightsg®Ø_vOî?Ú	quadraticgœ¢#¹ü‡î?)r?   r˜   r   r+   Úappend)rœ   r�   Úkappas      rX   Útest_cohen_kappar  Þ  sV  € õ 
Œ�1�#˜‘(˜a˜S 2™XÑ%Ñ	&Ô	&€BÝ	Œ�1�#˜‘(˜a˜S 2™XÑ%¨¨¨b©Ñ0°A°3¸±8Ñ;Ñ	<Ô	<€BÝ˜b "Ñ%Ô%€EÝ˜˜u¨aÐ0Ñ0Ô0Ð0ØÕ% b¨"Ñ-Ô-Ò-Ð-Ð-Ð-õ 
Œ�2˜�s˜Q‘wÑ	Ô	€BÝ	Œ�2˜�s˜Q‘wÑ	Ô	€BÝ˜R ¨Q°¨FÐ3Ñ3Ô3°uÒ<Ð<Ð<Ð<åÕ)¨"¨bÑ1Ô1°3Ñ7Ô7Ð7õ 
Œ�1�#˜‘(˜a˜S 2™XÑ%¨¨¨b©Ñ0Ñ	1Ô	1€BÝ	Œ�1�#˜‘(˜a˜S 2™XÑ%¨¨¨b©Ñ0Ñ	1Ô	1€BÝÕ)¨"¨bÑ1Ô1°6À1ÐEÑEÔEÐEõ 
Œ�1�#˜‘(˜a˜S 2™XÑ%¨¨¨b©Ñ0Ñ	1Ô	1€BÝ	Œ�1�#˜‘(˜a˜S 2™XÑ%¨¨¨b©Ñ0Ñ	1Ô	1€BÝÕ)¨"¨bÑ1Ô1°6À1ÐEÑEÔEÐEÝÕ)¨"¨b¸(ÐCÑCÔCÀVÐUVÐWÑWÔWÐWÝÝ˜"˜b¨+Ð6Ñ6Ô6¸Èðñ ô ð ð ð rZ   c                  ój   — t          dgdg¦  «        dk    sJ ‚t          ddgddg¦  «        dk    sJ ‚d S )Nr   r:   r~   )r   r¸   rZ   rX   Útest_matthews_corrcoef_nanr�  ý  sJ   € Ý˜a˜S 1 #Ñ&Ô&¨#Ò-Ð-Ð-Ð-Ý˜a ˜V a¨ VÑ,Ô,°Ò3Ð3Ð3Ð3Ð3Ð3rZ   zy_true, y_predr{   r³   c                 ó  — t          j        ¦   «         5  t          j        d¦  «          | |||¬¦  «        }ddd¦  «         n# 1 swxY w Y   t          j        |¦  «        rt          j        |¦  «        sJ ‚dS ||k    sJ ‚dS )zmCheck the behaviour of `zero_division` when setting to 0, 1 or np.nan.
    No warnings should be raised.
    rY  ©r‚   N)rŒ   r�   r[  r?   Úisnan)r{   rW   rV   r‚   Úresults        rX   Ú!test_zero_division_nan_no_warningr†    sç   € õ 
Ô	 Ñ	"Ô	"ð Eð EÝÔ˜gÑ&Ô&Ð&Ø�˜ °mÐDÑDÔDˆðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eõ 
„x�ÑÔð 'ÝŒx˜ÑÔÐÐÐÐÐà˜Ò&Ð&Ð&Ð&Ð&Ð&s   ”#AÁAÁ
Ac                 ó”   — t          j        t          ¦  «        5   | ||d¬¦  «        }ddd¦  «         n# 1 swxY w Y   |dk    sJ ‚dS )ztCheck the behaviour of `zero_division` when setting to "warn".
    A `UndefinedMetricWarning` should be raised.
    rƒ   rƒ  Nr~   )r¶   r÷   r   )r{   rW   rV   r…  s       rX   Útest_zero_division_nan_warningrˆ    s‘   € õ 
ŒÕ,Ñ	-Ô	-ð >ð >Ø�˜ °fÐ=Ñ=Ô=ˆð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >à�SŠ=ˆ=ˆ=ˆ=ˆ=ˆ=s   š5µ9¼9c                  ó  — t           j                             d¦  «        } |                      ddd¬¦  «        }|                      ddd¬¦  «        }t	          t          ||¦  «        t          j        ||¦  «        d         d¦  «         d S )Nr   r3   rf   ©Úsize©r   r:   rk  )r?   rC   rD   Úrandintr+   r   Úcorrcoef)rR   rW   rV   s      rX   Ú-test_matthews_corrcoef_against_numpy_corrcoefr�  .  sƒ   € Ý
Œ)×
Ò
 Ñ
"Ô
"€CØ�[Š[˜˜A Bˆ[Ñ'Ô'€FØ�[Š[˜˜A Bˆ[Ñ'Ô'€FåÝ˜& &Ñ)Ô)­2¬;°v¸vÑ+FÔ+FÀtÔ+LÈbñô ð ð ð rZ   c                  óŽ  ‡	‡
— t           j                             d¦  «        } |                      ddd¬¦  «        }|                      ddd¬¦  «        }|                      d¦  «        }t          |||¬¦  «        Š	t          ‰	¦  «        Š
t          ˆ	ˆ
fd„t          ‰
¦  «        D ¦   «         ¦  «        }t          ˆ	ˆ
fd„t          ‰
¦  «        D ¦   «         ¦  «        }t          j        ˆ	ˆ
fd„t          ‰
¦  «        D ¦   «         ¦  «        }|t          j	        ||z  ¦  «        z  }t          |||¬¦  «        }t          ||d	¦  «         d S )
Nr   r3   rf   rŠ  rE  c           	      ó®   •— g | ]Q}t          ‰¦  «        D ]?}t          ‰¦  «        D ]-}‰||f         ‰||f         z  ‰||f         ‰||f         z  z
  ‘Œ.Œ@ŒRS r¸   ©Úrange)r  ÚkÚmÚlÚCÚNs       €€rX   r  z9test_matthews_corrcoef_against_jurman.<locals>.<listcomp>D  s’   ø€ ð 	
ð 	
ð 	
àÝ˜1‘X”Xð	
ð 	
ð Ý˜1‘X”Xð		
ð 	
ð ð ˆa�ˆdŒG�a˜˜1˜”gÑ  ! Q $¤¨!¨A¨q¨D¬'Ñ 1Ñ1ð	
ð 	
ð 	
ð 	
ð 	
rZ   c           	      ó®   •‡— g | ]PŠ‰d d …‰f                               ¦   «         t          j         ˆˆˆfd„t          ‰¦  «        D ¦   «         ¦  «        z  ‘ŒQS )Nc                 óT   •— g | ]$}t          ‰¦  «        D ]}|‰k    ¯‰||f         ‘ŒŒ%S r¸   r’  ©r  r©   Úgr—  r˜  r”  s      €€€rX   r  zDtest_matthews_corrcoef_against_jurman.<locals>.<listcomp>.<listcomp>N  ó8   ø€ ÐLÐLÐL !½¸q¹¼ÐLÐL°AÀQÈ!ÂVÀV�a˜˜1˜”gÀVÀVÀVÀVrZ   ©rZ  r?   r“  ©r  r”  r—  r˜  s    @€€rX   r  z9test_matthews_corrcoef_against_jurman.<locals>.<listcomp>L  st   øø€ ð 	
ð 	
ð 	
ð ð ˆaˆaˆa�ˆdŒG�KŠK‰MŒMÝŒfÐLÐLÐLÐLÐLÐL¥u¨Q¡x¤xÐLÑLÔLÑMÔMñNð	
ð 	
ð 	
rZ   c           	      ó®   •‡— g | ]PŠ‰‰d d …f                               ¦   «         t          j         ˆˆˆfd„t          ‰¦  «        D ¦   «         ¦  «        z  ‘ŒQS )Nc                 óT   •— g | ]$}t          ‰¦  «        D ]}|‰k    ¯‰||f         ‘ŒŒ%S r¸   r’  r›  s      €€€rX   r  zDtest_matthews_corrcoef_against_jurman.<locals>.<listcomp>.<listcomp>U  r�  rZ   rž  rŸ  s    @€€rX   r  z9test_matthews_corrcoef_against_jurman.<locals>.<listcomp>S  st   øø€ ð 	
ð 	
ð 	
ð ð ˆa���ˆdŒG�KŠK‰MŒMÝŒfÐLÐLÐLÐLÐLÐL¥u¨Q¡x¤xÐLÑLÔLÑMÔMñNð	
ð 	
ð 	
rZ   rk  )r?   rC   rD   r�  Úrandr   rr   rZ  r“  r  r   r+   )rR   rW   rV   r8  Úcov_ytypÚcov_ytytÚcov_ypypÚ
mcc_jurmanÚmcc_oursr—  r˜  s            @@rX   Ú%test_matthews_corrcoef_against_jurmanr¨  8  sˆ  øø€ õ Œ)×
Ò
 Ñ
"Ô
"€CØ�[Š[˜˜A Bˆ[Ñ'Ô'€FØ�[Š[˜˜A Bˆ[Ñ'Ô'€FØ—H’H˜R‘L”L€Må˜ °}ÐEÑEÔE€AÝˆA‰Œ€AÝð	
ð 	
ð 	
ð 	
ð 	
å˜1‘X”Xð	
ñ 	
ô 	
ñô €Hõ ð	
ð 	
ð 	
ð 	
ð 	
õ ˜1‘X”Xð	
ñ 	
ô 	
ñô €Hõ Œvð	
ð 	
ð 	
ð 	
ð 	
õ ˜1‘X”Xð	
ñ 	
ô 	
ñô €Hð �BœG H¨xÑ$7Ñ8Ô8Ñ8€JÝ  ¨¸}ÐMÑMÔM€Hå˜ *¨bÑ1Ô1Ð1Ð1Ð1rZ   c            	      óR  — t           j                             d¦  «        } d„ |                      ddd¬¦  «        D ¦   «         }t	          t          ||¦  «        d¦  «         d„ |D ¦   «         }t	          t          ||¦  «        d¦  «         t          |d	d
g¬¦  «        }t          j        |d	d
¦  «        }t	          t          ||¦  «        d¦  «         t	          t          g d¢g d¢¦  «        d¦  «         t	          t          |d	gt          |¦  «        z  ¦  «        d¦  «         g d¢}g d¢}t	          t          ||¦  «        d¦  «         dgdz  dgdz  z   }t          j
        t          ¦  «        5  t	          t          |||¬¦  «        d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   c                 ó"   — g | ]}|d k    rdnd‘ŒS )r   r†   r‡   r¸   ©r  rÏ   s     rX   r  z*test_matthews_corrcoef.<locals>.<listcomp>a  s$   € ÐIÐIÐI¨�Q˜!’V�Vˆcˆc ÐIÐIÐIrZ   r3   rf   rŠ  r²   c                 ó"   — g | ]}|d k    rdnd ‘ŒS )r†   r‡   r¸   r«  s     rX   r  z*test_matthews_corrcoef.<locals>.<listcomp>g  s$   € Ð;Ð;Ð;¨q˜˜cš˜�#�# sÐ;Ð;Ð;rZ   r´   r†   r‡   r¼   ©r   r   r   r   r~   )r:   r   r:   r:   r   r:   r:   r:   r   r:   r:   r:   r:   r:   r:   r:   r   r:   r:   r:   )r:   r:   r:   r   r   r:   r:   r:   r:   r   r:   r:   r:   r   r:   r:   r:   r   r:   r:   r:   rk  rE  )r?   rC   rD   r�  r+   r   r'   Úwhererr   r¶   rË   ÚAssertionError)rR   rW   Ú
y_true_invÚy_true_inv2Úy_1Úy_2Úmasks          rX   Útest_matthews_corrcoefrµ  _  s  € Ý
Œ)×
Ò
 Ñ
"Ô
"€CØIÐI¨c¯kªk¸!¸QÀR¨kÑ.HÔ.HÐIÑIÔI€Fõ Õ)¨&°&Ñ9Ô9¸3Ñ?Ô?Ð?ð <Ð;°FÐ;Ñ;Ô;€JÝÕ)¨&°*Ñ=Ô=¸rÑBÔBÐBå  °#°s°Ð<Ñ<Ô<€KÝ”(˜;¨¨SÑ1Ô1€KÝÕ)¨&°+Ñ>Ô>ÀÑCÔCÐCõ Õ)¨,¨,¨,¸¸¸ÑEÔEÀsÑKÔKÐKõ Õ)¨&°3°%½#¸f¹+¼+Ñ2EÑFÔFÈÑLÔLÐLð GÐ
FÐ
F€CØ
FÐ
FÐ
F€CÝÕ)¨#¨sÑ3Ô3°SÑ9Ô9Ð9ð ˆ3�‰8�q�c˜B‘hÑ€Dõ 
Œ•~Ñ	&Ô	&ð Rð RÝÕ-¨c°3ÀdÐKÑKÔKÈSÑQÔQÐQðRð Rð Rñ Rô Rð Rð Rð Rð Rð Rð Rð Røøøð Rð Rð Rð Rð Rð Rs   Å.!FÆF Æ#F c                  óB  ‡	— t           j                             d¦  «        } t          d¦  «        Š	d}ˆ	fd„|                      d|d¬¦  «        D ¦   «         }t          t          ||¦  «        d¦  «         g d¢}g d	¢}t          t          ||¦  «        d
¦  «         g d¢}g d¢}t          t          ||¦  «        dt          j        d¦  «        z  ¦  «         g d¢}g d¢}t          t          ||¦  «        d¦  «         g d¢}g d¢}t          t          ||¦  «        d¦  «         g d¢}g d¢}t          t          ||¦  «        d¦  «         g d¢}g d¢}g d¢}t          t          |||¬¦  «        d¦  «         g d¢}g d¢}g d¢}t          t          |||¬¦  «        d¦  «         d S )Nr   r†   r§   c                 ó4   •— g | ]}t          ‰|z   ¦  «        ‘ŒS r¸   )Úchr)r  rÏ   Úord_as     €rX   r  z5test_matthews_corrcoef_multiclass.<locals>.<listcomp>†  s#   ø€ ÐIÐIÐI �c�%˜!‘)‰nŒnÐIÐIÐIrZ   rf   rŠ  r²   )r   r   r:   r:   r3   r3   )r3   r3   r   r   r:   r:   g      à¿)r:   r:   r   r   r   r   iôÿÿÿi€  rÚ   )r»   r»   r»   r~   ©	r   r:   r3   r   r:   r3   r   r:   r3   )	r:   r:   r:   r3   r3   r3   r   r   r   )r   r   r:   r:   r3   rg  ©r:   r:   r:   r:   r   rE  r´   rì   ©r:   r:   r   r   )r?   rC   rD   Úordr�  r+   r   r  )
rR   Ú	n_classesrW   Ú
y_pred_badÚ
y_pred_minrV   r²  r³  r8  r¹  s
            @rX   Ú!test_matthews_corrcoef_multiclassrÁ  ‚  s  ø€ Ý
Œ)×
Ò
 Ñ
"Ô
"€CÝ�‰HŒH€EØ€IØIÐIÐIÐI c§k¢k°!°YÀR kÑ&HÔ&HÐIÑIÔI€Fõ Õ)¨&°&Ñ9Ô9¸3Ñ?Ô?Ð?ð  ÐÐ€FØ#Ð#Ð#€JÝÕ)¨&°*Ñ=Ô=¸tÑDÔDÐDð  ÐÐ€FØ#Ð#Ð#€JÝÕ)¨&°*Ñ=Ô=¸sÅRÄWÈWÑEUÔEUÑ?UÑVÔVÐVð ˆYˆY€FØˆYˆY€FÝÕ)¨&°&Ñ9Ô9¸3Ñ?Ô?Ð?ð ˆYˆY€FØˆYˆY€FÝÕ)¨&°&Ñ9Ô9¸3Ñ?Ô?Ð?ð &Ð
%Ð
%€CØ
%Ð
%Ð
%€CÝÕ)¨#¨sÑ3Ô3°SÑ9Ô9Ð9ð ˆ_ˆ_€FØˆ_ˆ_€FØ#�O�O€MÝÝ˜& &¸ÐFÑFÔFÈñô ð ð ˆ\ˆ\€FØˆ\ˆ\€FØ �L�L€MÝÝ˜& &¸ÐFÑFÔFÈñô ð ð ð rZ   Ún_pointséd   i'  c                 óÒ  ‡— t           j                             d¦  «        Šd„ }ˆfd„}t          j        ddg| ¦  «        }t	          t          ||¦  «        d¦  «         t          j        g d¢| ¦  «        }t	          t          ||¦  «        d¦  «          || ¦  «        \  }}t	          t          ||¦  «        d¦  «         t	          t          ||¦  «         |||¦  «        ¦  «         d S )NišÈ3c                 óö   — t          | |¦  «        }|d         }|d         }|d         }t          | ¦  «        }||z   |z  }||z   |z  }||z  ||z  z
  }	||z  d|z
  z  d|z
  z  }
|	t          j        |
¦  «        z  S )N©r:   r:   )r:   r   rŒ  r:   )r   rr   r?   r  )rW   rV   Úconf_matrixÚtrue_posÚ	false_posÚ	false_negrÂ  Úpos_rateÚactivityÚmcc_numeratorÚmcc_denominators              rX   Úmcc_safez1test_matthews_corrcoef_overflow.<locals>.mcc_safe¿  s�   € Ý& v¨vÑ6Ô6ˆØ˜tÔ$ˆØ Ô%ˆ	Ø Ô%ˆ	Ý�v‘;”;ˆØ˜yÑ(¨HÑ4ˆØ˜yÑ(¨HÑ4ˆØ  8Ñ+¨h¸Ñ.AÑAˆØ" XÑ-°°X±Ñ>À!ÀhÁ,ÑOˆØ�rœw Ñ7Ô7Ñ7Ð7rZ   c                 óŠ   •— ‰                      | ¦  «        }|d‰                      | ¦  «        dz
  z  z   }|dk    }|dk    }||fS )NrÞ   r—   )Úrandom_sample)rÂ  Úx_trueÚx_predrW   rV   rR   s        €rX   Ú	random_ysz2test_matthews_corrcoef_overflow.<locals>.random_ysË  sT   ø€ Ø×"Ò" 8Ñ,Ô,ˆØ˜# ×!2Ò!2°8Ñ!<Ô!<¸sÑ!BÑCÑCˆØ˜#’ˆØ˜#’ˆØ�vˆ~ÐrZ   r~   r²   )r~   r²   rX  )r?   rC   rD   Úrepeatr+   r   )rÂ  rÏ  rÔ  ÚarrrW   rV   rR   s         @rX   Útest_matthews_corrcoef_overflowr×  º  sÿ   ø€ õ Œ)×
Ò
 Ñ
)Ô
)€Cð
8ð 
8ð 
8ðð ð ð ð õ Œ)�S˜#�J Ñ
)Ô
)€CÝÕ)¨#¨sÑ3Ô3°SÑ9Ô9Ð9Ý
Œ)�O�O�O XÑ
.Ô
.€CÝÕ)¨#¨sÑ3Ô3°SÑ9Ô9Ð9à�Y˜xÑ(Ô(�N€FˆFÝÕ)¨&°&Ñ9Ô9¸3Ñ?Ô?Ð?ÝÕ)¨&°&Ñ9Ô9¸8¸8ÀFÈFÑ;SÔ;SÑTÔTÐTÐTÐTrZ   c                  óN  — t          d¬¦  «        \  } }}t          | |d ¬¦  «        \  }}}}t          |g d¢d¦  «         t          |g d¢d¦  «         t          |g d¢d¦  «         t          |g d¢¦  «         t	          | |d	d
¬¦  «        }t          |dd¦  «         t          | |d
¬¦  «        }t          |dd¦  «         t          | |d
¬¦  «        }	t          |	dd¦  «         t	          | |d¬¦  «        }t          |dd¦  «         t          | |d¬¦  «        }t          |dd¦  «         t          | |d¬¦  «        }	t          |	dd¦  «         t	          | |d¬¦  «        }t          |dd¦  «         t          | |d¬¦  «        }t          |dd¦  «         t          | |d¬¦  «        }	t          |	dd¦  «         t          j        t          ¦  «        5  t	          | |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          | |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          | |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          | |dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          | |g d¢d ¬¦  «        \  }}}}t          |g d¢d¦  «         t          |g d¢d¦  «         t          |g d¢d¦  «         t          |g d¢¦  «         d S )NFr    r¡   )ç�Âõ(\�ê?ç…ëQ¸Õ?gáz®GáÚ?r3   )çHáz®Gé?g
×£p=
·?rd   )çìQ¸…ëé?ç333333Ã?r  )r]   rc   rf   r:   rÀ   rö   gö(\�Âõà?r¿   rí   gR¸…ëQà?rÁ   g®GázÞ?rÂ   r—   ©r¢   r¥   r+  r¾   )rÙ  g=
×£p=Ú?rÚ  )rÛ  rd   rß   )rÜ  r  rÝ  )r]   rf   rc   )rY   r   r,   r-   r    r!   r   r¶   rË   rÌ   r   )
rW   rV   rw   rQ   r¨   r©   rª   r­   r®   r¯   s
             rX   Ú)test_precision_recall_f1_score_multiclassrß  Ü  s}  € å'¨uÐ5Ñ5Ô5Ñ€FˆF�Aõ 1°¸ÈÐNÑNÔN�J€A€qˆ!ˆQÝ˜aÐ!3Ð!3Ð!3°QÑ7Ô7Ð7Ý˜aÐ!3Ð!3Ð!3°QÑ7Ô7Ð7Ý˜aÐ!3Ð!3Ð!3°QÑ7Ô7Ð7Ý�q˜,˜,˜,Ñ'Ô'Ð'õ 
˜ °1¸gÐ	FÑ	FÔ	F€BÝ˜b $¨Ñ*Ô*Ð*å	�f˜f¨gÐ	6Ñ	6Ô	6€BÝ˜b $¨Ñ*Ô*Ð*å	�&˜&¨'Ð	2Ñ	2Ô	2€BÝ˜b $¨Ñ*Ô*Ð*å	˜ °Ð	9Ñ	9Ô	9€BÝ˜b $¨Ñ*Ô*Ð*å	�f˜f¨gÐ	6Ñ	6Ô	6€BÝ˜b $¨Ñ*Ô*Ð*å	�&˜&¨'Ð	2Ñ	2Ô	2€BÝ˜b $¨Ñ*Ô*Ð*å	˜ °Ð	<Ñ	<Ô	<€BÝ˜b $¨Ñ*Ô*Ð*å	�f˜f¨jÐ	9Ñ	9Ô	9€BÝ˜b $¨Ñ*Ô*Ð*å	�&˜&¨*Ð	5Ñ	5Ô	5€BÝ˜b $¨Ñ*Ô*Ð*å	Œ•zÑ	"Ô	"ð ;ð ;Ý˜ °	Ð:Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;å	Œ•zÑ	"Ô	"ð 8ð 8Ý�V˜V¨YÐ7Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8å	Œ•zÑ	"Ô	"ð 4ð 4Ý�˜¨Ð3Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4å	Œ•zÑ	"Ô	"ð Að AÝ�F˜F¨I¸CÐ@Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Aõ 1Ø�˜y˜y˜y°$ðñ ô �J€A€qˆ!ˆQõ ˜aÐ!3Ð!3Ð!3°QÑ7Ô7Ð7Ý˜aÐ!3Ð!3Ð!3°QÑ7Ô7Ð7Ý˜aÐ!3Ð!3Ð!3°QÑ7Ô7Ð7Ý�q˜,˜,˜,Ñ'Ô'Ð'Ð'Ð'sH   ÇG+Ç+G/Ç2G/ÈH.È.H2È5H2ÉI1É1I5É8I5ÊJ5Ê5J9Ê<J9r¢   )rÂ   rÀ   r¿   rÁ   Nc                 ó$  — t          j        g d¢g¦  «        }t          j        g d¢g¦  «        }t          ||g d¢g | ¬¦  «        \  }}}}t          |d¦  «         t          |d¦  «         t          |d¦  «         | €t          |g d¢¦  «         d S d S )Nr¼  ©r   r   r:   r:   )r»   r   r:   r3   )ro   Úwarn_forr¢   r   ©r   r:   r:   r   )r?   r˜   r   r-   )r¢   rW   rV   rQ   r¨   r©   rª   s          rX   Ú;test_precision_refcall_f1_score_multilabel_unordered_labelsrä    s±   € õ ŒX�|�|�|�nÑ%Ô%€FÝŒX�|�|�|�nÑ%Ô%€FÝ0Ø�˜|˜|˜|°bÀ'ðñ ô �J€A€qˆ!ˆQõ �q˜!ÑÔÐÝ�q˜!ÑÔÐÝ�q˜!ÑÔÐØ€Ý˜1˜l˜l˜lÑ+Ô+Ð+Ð+Ð+ð €rZ   c                  óT  — t          j        g d¢¦  «        } t          j        g d¢¦  «        }t          | |d ¬¦  «        \  }}}}t          | |d¬¦  «        \  }}}}|t          j        |¦  «        k    sJ ‚|t          j        |¦  «        k    sJ ‚|t          j        |¦  «        k    sJ ‚t          | |d¬¦  «        \  }}}}t          j        | ¦  «        }	|t          j        ||	¬¦  «        k    sJ ‚|t          j        ||	¬¦  «        k    sJ ‚|t          j        ||	¬¦  «        k    sJ ‚d S )N)r   r:   r   r   r:   r:   r   r:   r   r   r:   r   r:   r   r:   )r:   r:   r   r:   r   r:   r:   r:   r:   r   r:   r   r:   r   r:   r¡   r¿   rÁ   rz  )r?   r˜   r   rÊ   Úbincountr¢   )
rW   rV   r­   r®   r¯   rw   rQ   r¨   r©   ra   s
             rX   Ú.test_precision_recall_f1_score_binary_averagedrç  %  sD  € ÝŒXÐCÐCÐCÑDÔD€FÝŒXÐCÐCÐCÑDÔD€Fõ 4°F¸FÈDÐQÑQÔQ�M€BˆˆB�Ý0°¸ÈÐQÑQÔQ�J€A€qˆ!ˆQØ•”˜‘”ÒÐÐÐØ•”˜‘”ÒÐÐÐØ•”˜‘”ÒÐÐÐÝ0°¸ÈÐTÑTÔT�J€A€qˆ!ˆQÝŒk˜&Ñ!Ô!€GØ•”
˜2 wÐ/Ñ/Ô/Ò/Ð/Ð/Ð/Ø•”
˜2 wÐ/Ñ/Ô/Ò/Ð/Ð/Ð/Ø•”
˜2 wÐ/Ñ/Ô/Ò/Ð/Ð/Ð/Ð/Ð/rZ   c                  óž  — t          j        d¬¦  «        } 	 t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          t	          ||d¬¦  «        dd¦  «         t          t          ||d¬¦  «        dd¦  «         t          t          ||d¬¦  «        dd¦  «         t          j        d	i | ¤Ž d S # t          j        d	i | ¤Ž w xY w)
NÚraise)rL  )r   r:   r3   r   r:   r3   )r3   r   r:   r:   r3   r   r¿   r¡   r~   r3   r¸   )r?   Úseterrr˜   r+   r    r!   r   )Úold_error_settingsrW   rV   s      rX   Útest_zero_precision_recallrì  6  sé   € õ œ wÐ/Ñ/Ô/Ðð	(Ý”Ð,Ð,Ð,Ñ-Ô-ˆÝ”Ð,Ð,Ð,Ñ-Ô-ˆå�O¨F°FÀGÐLÑLÔLÈcÐSTÑUÔUÐUÝ�L¨°ÀÐIÑIÔIÈ3ÐPQÑRÔRÐRÝ�H V¨V¸WÐEÑEÔEÀsÈAÑNÔNÐNõ 	Œ	Ð'Ð'Ð&Ð'Ð'Ð'Ð'Ð'ø�Œ	Ð'Ð'Ð&Ð'Ð'Ð'Ð'øøøs   —BB9 Â9Cc                  óX  — t          d¬¦  «        \  } }}t          | |ddg¬¦  «        }t          |ddgddgg¦  «         t          | |d	dg¬¦  «        }t          |d
d	gddgg¦  «         t          j        | ¦  «        dz   }t          | |d	|g¬¦  «        }t          |d
dgddgg¦  «         d S )NFr    r   r:   rÓ   r#  r§   r»   r3   r'  r]   )rY   r   r-   r?   Úmax)rW   rV   rw   r  Úextra_labels        rX   Ú.test_confusion_matrix_multiclass_subset_labelsrð  G  s×   € å'¨uÐ5Ñ5Ô5Ñ€FˆF�Aõ 
˜& &°!°Q°Ð	8Ñ	8Ô	8€BÝ�r˜R ˜G a¨ VÐ,Ñ-Ô-Ð-õ 
˜& &°!°Q°Ð	8Ñ	8Ô	8€BÝ�r˜R ˜G b¨! WÐ-Ñ.Ô.Ð.õ ”&˜‘.”. 1Ñ$€KÝ	˜& &°!°[Ð1AÐ	BÑ	BÔ	B€BÝ�r˜R ˜G a¨ VÐ,Ñ-Ô-Ð-Ð-Ð-rZ   zlabels, err_msgz,'labels' should contains at least one label.r»   r§   z.At least one label specified must be in y_truez
empty listzunknown labels)Úidsc                 óº   — t          d¬¦  «        \  }}}t          j        t          |¬¦  «        5  t	          ||| ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NFr    rå   rÓ   )rY   r¶   rË   rÌ   r   )ro   rê   rW   rV   rw   s        rX   Útest_confusion_matrix_errorró  Z  s©   € õ (¨uÐ5Ñ5Ô5Ñ€FˆF�AÝ	Œ•z¨Ð	1Ñ	1Ô	1ð 8ð 8Ý˜ °Ð7Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð 8ð 8s   °AÁAÁAro   rÚ   )ÚNonerL   Ú
multiclassc                 óª   — | rt          | ¦  «        nd}t          j        ||ft          ¬¦  «        }t	          g g | ¬¦  «        }t          ||¦  «         d S )Nr   ©rQ  rÓ   )rr   r?   rš   rB   r   r-   )ro   Úexpected_n_classesÚexpectedr  s       rX   Ú*test_confusion_matrix_on_zero_length_inputrú  h  s^   € ð )/Ð5�˜V™œ˜°AÐÝŒxÐ+Ð-?Ð@ÍÐLÑLÔL€HÝ	˜"˜b¨Ð	0Ñ	0Ô	0€BÝ�r˜8Ñ$Ô$Ð$Ð$Ð$rZ   c            	      ó–  — g d¢} t          j        t          | ¦  «        ¦  «        }t          | | ¦  «        }|j        t           j        k    sJ ‚t           j        t           j        t           j        fD ]@}t          | | | 	                    |d¬¦  «        ¬¦  «        }|j        t           j        k    sJ ‚ŒAt           j
        t           j        d t          fD ]@}t          | | | 	                    |d¬¦  «        ¬¦  «        }|j        t           j        k    sJ ‚ŒAt          j        t          | ¦  «        dt           j        ¬¦  «        }t          | | |¬¦  «        }|d         dk    sJ ‚|d         d	k    sJ ‚t          j        t          | ¦  «        d
t           j        ¬¦  «        }t          | | |¬¦  «        }|d         d
k    sJ ‚|d         dk    sJ ‚d S )Nr”   F)ÚcopyrE  l   ÿÿ r÷  ©r   r   rÆ  l   þÿ l   ÿÿÿÿ éþÿÿÿ)r?   Úonesrr   r   rQ  Úint64Úbool_Úint32Úuint64ÚastypeÚfloat32Úfloat64ÚobjectÚfullÚuint32)rN   Úweightr  rQ  s       rX   Útest_confusion_matrix_dtyper  r  s°  € Øˆ	ˆ	€AÝŒW•S˜‘V”V‰_Œ_€Få	˜!˜QÑ	Ô	€BØŒ8•r”xÒÐÐÐå”(�BœH¥b¤iÐ0ð $ð $ˆÝ˜a °&·-²-ÀÈE°-Ñ2RÔ2RÐSÑSÔSˆØŒx�2œ8Ò#Ð#Ð#Ð#Ð#Ý”*�bœj¨$µÐ7ð &ð &ˆÝ˜a °&·-²-ÀÈE°-Ñ2RÔ2RÐSÑSÔSˆØŒx�2œ:Ò%Ð%Ð%Ð%Ð%õ ŒW•S˜‘V”V˜Z­r¬yÐ9Ñ9Ô9€FÝ	˜!˜Q¨fÐ	5Ñ	5Ô	5€BØˆdŒ8�zÒ!Ð!Ð!Ð!ØˆdŒ8�zÒ!Ð!Ð!Ð!õ ŒW•S˜‘V”VÐ0½¼ÐAÑAÔA€FÝ	˜!˜Q¨fÐ	5Ñ	5Ô	5€BØˆdŒ8Ð*Ò*Ð*Ð*Ð*ØˆdŒ8�rŠ>ˆ>ˆ>ˆ>ˆ>ˆ>rZ   rQ  )ÚInt64ÚFloat64Úbooleanc                 ó  — t          j        d¦  «        }t          j        g d¢¦  «        }|                     || ¬¦  «        }|                     g d¢d¬¦  «        }t          ||¦  «        }t          ||¦  «        }t          ||¦  «         dS )zkChecks that confusion_matrix works with pandas nullable dtypes.

    Non-regression test for gh-25635.
    Úpandas)	r:   r   r   r:   r   r:   r:   r   r:   r÷  )	r   r   r:   r:   r   r:   r:   r:   r:   r   N)r¶   Úimportorskipr?   r˜   ÚSeriesr   r-   )rQ  ÚpdÚ	y_ndarrayrW   Úy_predictedÚoutputÚexpected_outputs          rX   Ú%test_confusion_matrix_pandas_nullabler  �  s�   € õ 
Ô	˜XÑ	&Ô	&€Bå”Ð4Ð4Ð4Ñ5Ô5€IØ�YŠY�y¨ˆYÑ.Ô.€FØ—)’)Ð7Ð7Ð7¸w�)ÑGÔG€Kå˜f kÑ2Ô2€FÝ& y°+Ñ>Ô>€Oå�v˜Ñ/Ô/Ð/Ð/Ð/rZ   c            	      óâ   — t          j        ¦   «         } t          | d¬¦  «        \  }}}d}t          ||t	          j        t          | j        ¦  «        ¦  «        | j        ¬¦  «        }||k    sJ ‚d S )NFr\   a|                precision    recall  f1-score   support

      setosa       0.83      0.79      0.81        24
  versicolor       0.33      0.10      0.15        31
   virginica       0.42      0.90      0.57        20

    accuracy                           0.53        75
   macro avg       0.53      0.60      0.51        75
weighted avg       0.51      0.53      0.47        75
©ro   rp   ©r
   r;   rY   r   r?   r@   rr   rp   ©rv   rW   rV   rw   rx   ry   s         rX   Ú%test_classification_report_multiclassr  Ÿ  sƒ   € åÔÑÔ€DÝ'°¸UÐCÑCÔCÑ€FˆF�Að
€Oõ #ØØÝŒy�˜TÔ.Ñ/Ô/Ñ0Ô0ØÔ&ð	ñ ô €Fð �_Ò$Ð$Ð$Ð$Ð$Ð$rZ   c                  óJ   — g d¢g d¢}} d}t          | |¦  «        }||k    sJ ‚d S )N)	r   r   r   r:   r:   r:   r3   r3   r3   rº  a|                precision    recall  f1-score   support

           0       0.33      0.33      0.33         3
           1       0.33      0.33      0.33         3
           2       0.33      0.33      0.33         3

    accuracy                           0.33         9
   macro avg       0.33      0.33      0.33         9
weighted avg       0.33      0.33      0.33         9
)r   )rW   rV   rx   ry   s       rX   Ú.test_classification_report_multiclass_balancedr  ¹  sG   € Ø0Ð0Ð0Ð2MÐ2MÐ2MˆF€Fð
€Oõ # 6¨6Ñ2Ô2€FØ�_Ò$Ð$Ð$Ð$Ð$Ð$rZ   c                  óŠ   — t          j        ¦   «         } t          | d¬¦  «        \  }}}d}t          ||¦  «        }||k    sJ ‚d S )NFr\   a|                precision    recall  f1-score   support

           0       0.83      0.79      0.81        24
           1       0.33      0.10      0.15        31
           2       0.42      0.90      0.57        20

    accuracy                           0.53        75
   macro avg       0.53      0.60      0.51        75
weighted avg       0.51      0.53      0.47        75
)r
   r;   rY   r   r  s         rX   Ú:test_classification_report_multiclass_with_label_detectionr!  Ë  sX   € ÝÔÑÔ€DÝ'°¸UÐCÑCÔCÑ€FˆF�Að
€Oõ # 6¨6Ñ2Ô2€FØ�_Ò$Ð$Ð$Ð$Ð$Ð$rZ   c            	      óä   — t          j        ¦   «         } t          | d¬¦  «        \  }}}d}t          ||t	          j        t          | j        ¦  «        ¦  «        | j        d¬¦  «        }||k    sJ ‚d S )NFr\   a|                precision    recall  f1-score   support

      setosa    0.82609   0.79167   0.80851        24
  versicolor    0.33333   0.09677   0.15000        31
   virginica    0.41860   0.90000   0.57143        20

    accuracy                        0.53333        75
   macro avg    0.52601   0.59615   0.50998        75
weighted avg    0.51375   0.53333   0.47310        75
r¦   )ro   rp   Údigitsr  r  s         rX   Ú1test_classification_report_multiclass_with_digitsr$  ß  s†   € åÔÑÔ€DÝ'°¸UÐCÑCÔCÑ€FˆF�Að
€Oõ #ØØÝŒy�˜TÔ.Ñ/Ô/Ñ0Ô0ØÔ&Øðñ ô €Fð �_Ò$Ð$Ð$Ð$Ð$Ð$rZ   c                  ó  — t          d¬¦  «        \  } }}t          j        g d¢¦  «        |          } t          j        g d¢¦  «        |         }d}t          | |¦  «        }||k    sJ ‚d}t          | |g d¢¬¦  «        }||k    sJ ‚d S )NFr    )ÚblueÚgreenÚreda|                precision    recall  f1-score   support

        blue       0.83      0.79      0.81        24
       green       0.33      0.10      0.15        31
         red       0.42      0.90      0.57        20

    accuracy                           0.53        75
   macro avg       0.53      0.60      0.51        75
weighted avg       0.51      0.53      0.47        75
a|                precision    recall  f1-score   support

           a       0.83      0.79      0.81        24
           b       0.33      0.10      0.15        31
           c       0.42      0.90      0.57        20

    accuracy                           0.53        75
   macro avg       0.53      0.60      0.51        75
weighted avg       0.51      0.53      0.47        75
r…   ©rp   ©rY   r?   r˜   r   )rW   rV   rw   rx   ry   s        rX   Ú7test_classification_report_multiclass_with_string_labelr+  ú  s°   € Ý'¨uÐ5Ñ5Ô5Ñ€FˆF�AåŒXÐ.Ð.Ð.Ñ/Ô/°Ô7€FÝŒXÐ.Ð.Ð.Ñ/Ô/°Ô7€Fð
€Oõ # 6¨6Ñ2Ô2€FØ�_Ò$Ð$Ð$Ð$ð
€Oõ # 6¨6ÀÀÀÐPÑPÔP€FØ�_Ò$Ð$Ð$Ð$Ð$Ð$rZ   c                  ó®   — t          d¬¦  «        \  } }}t          j        g d¢¦  «        }||          } ||         }d}t          | |¦  «        }||k    sJ ‚d S )NFr    )u   blueÂ¢u   greenÂ¢u   redÂ¢u                precision    recall  f1-score   support

       blueÂ¢       0.83      0.79      0.81        24
      greenÂ¢       0.33      0.10      0.15        31
        redÂ¢       0.42      0.90      0.57        20

    accuracy                           0.53        75
   macro avg       0.53      0.60      0.51        75
weighted avg       0.51      0.53      0.47        75
r*  ©rW   rV   rw   ro   rx   ry   s         rX   Ú8test_classification_report_multiclass_with_unicode_labelr.    sp   € Ý'¨uÐ5Ñ5Ô5Ñ€FˆF�AåŒXÐ:Ð:Ð:Ñ;Ô;€FØ�FŒ^€FØ�FŒ^€Fð
€Oõ # 6¨6Ñ2Ô2€FØ�_Ò$Ð$Ð$Ð$Ð$Ð$rZ   c                  ó®   — t          d¬¦  «        \  } }}t          j        g d¢¦  «        }||          } ||         }d}t          | |¦  «        }||k    sJ ‚d S )NFr    )r&  Úgreengreengreengreengreenr(  a×                             precision    recall  f1-score   support

                     blue       0.83      0.79      0.81        24
greengreengreengreengreen       0.33      0.10      0.15        31
                      red       0.42      0.90      0.57        20

                 accuracy                           0.53        75
                macro avg       0.53      0.60      0.51        75
             weighted avg       0.51      0.53      0.47        75
r*  r-  s         rX   Ú<test_classification_report_multiclass_with_long_string_labelr1  3  sp   € Ý'¨uÐ5Ñ5Ô5Ñ€FˆF�AåŒXÐ2Ð2Ð2Ñ3Ô3€FØ�FŒ^€FØ�FŒ^€Fð
€Oõ # 6¨6Ñ2Ô2€FØ�_Ò$Ð$Ð$Ð$Ð$Ð$rZ   c                  ó´   — g d¢} g d¢}g d¢}d}t          j        t          |¬¦  «        5  t          | |ddg|¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	N©r   r   r3   r   r   ©r   r3   r3   r   r   ©zclass 0zclass 1zclass 2z6labels size, 2, does not match size of target_names, 3rå   r   r3   r  )r¶   r÷   rø   r   )rW   rV   rp   r‘   s       rX   Ú=test_classification_report_labels_target_names_unequal_lengthr6  J  sÌ   € Øˆ_ˆ_€FØˆ_ˆ_€FØ4Ð4Ð4€Là
B€CÝ	Œ•k¨Ð	-Ñ	-Ô	-ð Xð XÝ˜f f°a¸°VÈ,ÐWÑWÔWÐWðXð Xð Xñ Xô Xð Xð Xð Xð Xð Xð Xð Xøøøð Xð Xð Xð Xð Xð Xs   ªAÁAÁAc                  ó®   — g d¢} g d¢}g d¢}d}t          j        t          |¬¦  «        5  t          | ||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr3  r4  r5  zaNumber of classes, 2, does not match size of target_names, 3. Try specifying the labels parameterrå   r)  )r¶   rË   rÌ   r   )rW   rV   rp   rê   s       rX   Ú@test_classification_report_no_labels_target_names_unequal_lengthr8  T  sÍ   € Øˆ_ˆ_€FØˆ_ˆ_€FØ4Ð4Ð4€Lð	.ð õ
 
Œ•z¨Ð	1Ñ	1Ô	1ð Ið IÝ˜f f¸<ÐHÑHÔHÐHðIð Ið Iñ Iô Ið Ið Ið Ið Ið Ið Ið Iøøøð Ið Ið Ið Ið Ið Is   ªA
Á
AÁAc                  óš   — d} d}t          d|| d¬¦  «        \  }}t          d|| d¬¦  «        \  }}d}t          ||¦  «        }||k    sJ ‚d S )Nr§   rt  r:   r   )rP   rO   r¾  r9   aè                precision    recall  f1-score   support

           0       0.50      0.67      0.57        24
           1       0.51      0.74      0.61        27
           2       0.29      0.08      0.12        26
           3       0.52      0.56      0.54        27

   micro avg       0.50      0.51      0.50       104
   macro avg       0.45      0.51      0.46       104
weighted avg       0.45      0.51      0.46       104
 samples avg       0.46      0.42      0.40       104
)r   r   )r¾  rO   rw   rW   rV   rx   ry   s          rX   Ú%test_multilabel_classification_reportr:  b  s   € à€IØ€Iå.Ø 	°YÈQðñ ô �I€A€võ /Ø 	°YÈQðñ ô �I€A€vð€Oõ # 6¨6Ñ2Ô2€FØ�_Ò$Ð$Ð$Ð$Ð$Ð$rZ   c                  óF  — t          j        g d¢g d¢g¦  «        } t          j        g d¢g d¢g¦  «        }t          | |¦  «        dk    sJ ‚t          | | ¦  «        dk    sJ ‚t          ||¦  «        dk    sJ ‚t          |t          j        |¦  «        ¦  «        dk    sJ ‚t          | t          j        | ¦  «        ¦  «        dk    sJ ‚t          | t          j        | j        ¦  «        ¦  «        dk    sJ ‚t          |t          j        | j        ¦  «        ¦  «        dk    sJ ‚d S )Nr”   r•   r–   r—   r   r:   )r?   r˜   r"   r™   rš   r>   r›   s     rX   Ú$test_multilabel_zero_one_loss_subsetr<  �  s)  € å	Œ�9�9�9˜i˜i˜iÐ(Ñ	)Ô	)€BÝ	Œ�9�9�9˜i˜i˜iÐ(Ñ	)Ô	)€Bå˜˜RÑ Ô  CÒ'Ð'Ð'Ð'Ý˜˜RÑ Ô  AÒ%Ð%Ð%Ð%Ý˜˜RÑ Ô  AÒ%Ð%Ð%Ð%Ý˜�Rœ^¨BÑ/Ô/Ñ0Ô0°AÒ5Ð5Ð5Ð5Ý˜�Rœ^¨BÑ/Ô/Ñ0Ô0°AÒ5Ð5Ð5Ð5Ý˜�RœX b¤hÑ/Ô/Ñ0Ô0°AÒ5Ð5Ð5Ð5Ý˜�RœX b¤hÑ/Ô/Ñ0Ô0°AÒ5Ð5Ð5Ð5Ð5Ð5rZ   c                  óh  — t          j        g d¢g d¢g¦  «        } t          j        g d¢g d¢g¦  «        }t          j        ddg¦  «        }t          | |¦  «        dk    sJ ‚t          | | ¦  «        dk    sJ ‚t          ||¦  «        dk    sJ ‚t          |d|z
  ¦  «        dk    sJ ‚t          | d| z
  ¦  «        dk    sJ ‚t          | t          j        | j        ¦  «        ¦  «        dk    sJ ‚t          |t          j        | j        ¦  «        ¦  «        d	k    sJ ‚t          | ||¬
¦  «        dk    sJ ‚t          | d|z
  |¬
¦  «        dk    sJ ‚t          | t          j        | ¦  «        |¬
¦  «        dk    sJ ‚t          | d         |d         ¦  «        t          | d         |d         ¦  «        k    sJ ‚d S )Nr”   r•   r–   r:   r»   çUUUUUUÅ?r   rÔ   r—   rE  gUUUUUUµ?gUUUUUUí?)r?   r˜   r   rš   r>   Ú
zeros_likeÚ
sp_hamming)rœ   r�   Úws      rX   Útest_multilabel_hamming_lossrB  �  sÓ  € å	Œ�9�9�9˜i˜i˜iÐ(Ñ	)Ô	)€BÝ	Œ�9�9�9˜i˜i˜iÐ(Ñ	)Ô	)€BÝ
Œ�!�Q�ÑÔ€Aå˜˜BÑÔ 5Ò(Ð(Ð(Ð(Ý˜˜BÑÔ 1Ò$Ð$Ð$Ð$Ý˜˜BÑÔ 1Ò$Ð$Ð$Ð$Ý˜˜A ™FÑ#Ô# qÒ(Ð(Ð(Ð(Ý˜˜A ™FÑ#Ô# qÒ(Ð(Ð(Ð(Ý˜�BœH R¤XÑ.Ô.Ñ/Ô/°5Ò8Ð8Ð8Ð8Ý˜�BœH R¤XÑ.Ô.Ñ/Ô/°3Ò6Ð6Ð6Ð6Ý˜˜B¨aÐ0Ñ0Ô0°HÒ<Ð<Ð<Ð<Ý˜˜A ™F°!Ð4Ñ4Ô4¸	ÒAÐAÐAÐAÝ˜�BœM¨"Ñ-Ô-¸QÐ?Ñ?Ô?À7ÒJÐJÐJÐJå˜˜1œ˜r !œuÑ%Ô%­°B°q´E¸2¸a¼5Ñ)AÔ)AÒAÐAÐAÐAÐAÐArZ   c                  óì  — t          j        g d¢¦  «        } t          j        g d¢¦  «        }d}t          j        t          |¬¦  «        5  t          | |dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        g d¢g d¢g¦  «        } t          j        g d	¢g d
¢g¦  «        }d}t          j        t          |¬¦  «        5  t          | |dd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        g d¢¦  «        } t          j        g d¢¦  «        }d}t          j        t          |¬¦  «        5  t          | |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          | |d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          | |dd¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r   r:   r   r:   r:   z>pos_label=2 is not a valid label. It should be one of \[0, 1\]rå   rL   r3   ©r¢   rè   r”   rÄ   rÅ   r•   ú•Target is multilabel-indicator but average='binary'. Please choose another average setting, one of \[None, 'micro', 'macro', 'weighted', 'samples'\].r´   )r   r:   r:   r   r3   r»  ú€Target is multiclass but average='binary'. Please choose another average setting, one of \[None, 'micro', 'macro', 'weighted'\].r¡   zJSamplewise metrics are not available outside of multilabel classification.rÂ   zšNote that pos_label \(set to 3\) is ignored when average != 'binary' \(got 'micro'\). You may use labels=\[pos_label\] to specify a single positive class.rÀ   r»   )r?   r˜   r¶   rË   rÌ   r   r÷   rø   )rW   rV   rê   Úmsg1Úmsg2Úmsg3r‘   s          rX   Útest_jaccard_score_validationrJ  £  s~  € ÝŒX�o�o�oÑ&Ô&€FÝŒX�o�o�oÑ&Ô&€FØO€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð Eð EÝ�f˜f¨hÀ!ÐDÑDÔDÐDðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eõ ŒX�y�y�y ) ) )Ð,Ñ-Ô-€FÝŒX�y�y�y ) ) )Ð,Ñ-Ô-€Fð	6ð 	õ
 
Œ•z¨Ð	.Ñ	.Ô	.ð Fð FÝ�f˜f¨hÀ"ÐEÑEÔEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fõ ŒX�o�o�oÑ&Ô&€FÝŒX�o�o�oÑ&Ô&€Fð	ð 	õ
 
Œ•z¨Ð	.Ñ	.Ô	.ð 8ð 8Ý�f˜f¨hÐ7Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8àW€DÝ	Œ•z¨Ð	.Ñ	.Ô	.ð 9ð 9Ý�f˜f¨iÐ8Ñ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð	ð õ 
Œ•k¨Ð	-Ñ	-Ô	-ð Dð DÝ�f˜f¨gÀÐCÑCÔCÐCðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dð Dð DsZ   Á
A*Á*A.Á1A.ÃC&Ã&C*Ã-C*Ä:EÅEÅ EÆF Æ F$Æ'F$ÇG)Ç)G-Ç0G-c           	      ó˜  — t          j        g d¢g d¢g¦  «        }t          j        g d¢g d¢g¦  «        }t          ||d¬¦  «        dk    sJ ‚t          ||d¬¦  «        dk    sJ ‚t          ||d¬¦  «        dk    sJ ‚t          |t          j        |¦  «        d¬¦  «        dk    sJ ‚t          |t          j        |¦  «        d¬¦  «        dk    sJ ‚t          |t          j        |j        ¦  «        d¬¦  «        dk    sJ ‚t          |t          j        |j        ¦  «        d¬¦  «        dk    sJ ‚t          j        g d¢g d	¢g¦  «        }t          j        g d
¢g d¢g¦  «        }t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          t          ||dddg¬¦  «        d¦  «         t          t          ||dddg¬¦  «        d¦  «         t          t          ||d ¬¦  «        t          j        g d¢¦  «        ¦  «         t          j        g d¢g d¢g¦  «        }t          j        g d
¢g d¢g¦  «        }t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         d}t          j	        t          |¬¦  «        5  t          ||dgd¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j	        t          |¬¦  «        5  t          ||dgd¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          t          j        ddgg¦  «        t          j        ddgg¦  «        d¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t          t          j        ddgddgg¦  «        t          j        ddgddgg¦  «        d¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          | ¦  «        rJ ‚d S )Nr”   r•   r–   rÂ   r¡   rÇ   r:   r   rÄ   rÅ   r¿   rÔ   rÀ   rí   g«ªªªªªâ?r3   rÆ   r—   )r—   r²   r—   rÈ   rÁ   g      ì?z	Got 4 > 2rå   r§   r¾   z
Got -1 < 0r´   zXJaccard is ill-defined and being set to 0.0 in labels with no true or predicted samples.zXJaccard is ill-defined and being set to 0.0 in samples with no true or predicted labels.)r?   r˜   r   r™   rš   r>   r+   r-   r¶   rË   rÌ   r÷   r   rP  )Úrecwarnrœ   r�   rW   rV   rH  rI  r‘   s           rX   Útest_multilabel_jaccard_scorerM  Ë  s×  € å	Œ�9�9�9˜i˜i˜iÐ(Ñ	)Ô	)€BÝ	Œ�9�9�9˜i˜i˜iÐ(Ñ	)Ô	)€Bõ
 ˜˜R¨Ð3Ñ3Ô3°tÒ;Ð;Ð;Ð;Ý˜˜R¨Ð3Ñ3Ô3°qÒ8Ð8Ð8Ð8Ý˜˜R¨Ð3Ñ3Ô3°qÒ8Ð8Ð8Ð8Ý˜�Rœ^¨BÑ/Ô/¸ÐCÑCÔCÀqÒHÐHÐHÐHÝ˜�Rœ^¨BÑ/Ô/¸ÐCÑCÔCÀqÒHÐHÐHÐHÝ˜�RœX b¤hÑ/Ô/¸ÐCÑCÔCÀqÒHÐHÐHÐHÝ˜�RœX b¤hÑ/Ô/¸ÐCÑCÔCÀqÒHÐHÐHÐHåŒX�y�y�y ) ) )Ð,Ñ-Ô-€FÝŒX�y�y�y ) ) )Ð,Ñ-Ô-€Få� f¨f¸gÐFÑFÔFÈÑPÔPÐPå� f¨f¸gÐFÑFÔFÈÑPÔPÐPå� f¨f¸iÐHÑHÔHÈ(ÑSÔSÐSÝÝ�f˜f¨iÀÀAÀÐGÑGÔGÈñô ð õ Ý�f˜f¨iÀÀAÀÐGÑGÔGÈñô ð õ Ý�f˜f¨dÐ3Ñ3Ô3µR´XÐ>UÐ>UÐ>UÑ5VÔ5Vñô ð õ ŒX�y�y�y ) ) )Ð,Ñ-Ô-€FÝŒX�y�y�y ) ) )Ð,Ñ-Ô-€FÝ� f¨f¸gÐFÑFÔFÈÑPÔPÐPå� f¨f¸jÐIÑIÔIÈ7ÑSÔSÐSà€DÝ	Œ•z¨Ð	.Ñ	.Ô	.ð Cð CÝ�f˜f¨a¨S¸'ÐBÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cà€DÝ	Œ•z¨Ð	.Ñ	.Ô	.ð Dð DÝ�f˜f¨b¨T¸7ÐCÑCÔCÐCðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dð	-ð õ
 
ŒÕ,°CÐ	8Ñ	8Ô	8ð 
ð 
å�"œ( Q¨ F 8Ñ,Ô,­b¬h¸¸A¸°xÑ.@Ô.@È'ÐRÑRÔRØòð ð ð ð ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð	,ð õ
 
ŒÕ,°CÐ	8Ñ	8Ô	8ð 
ð 
åÝ”˜1˜a˜& 1 a &Ð)Ñ*Ô*Ý”˜1˜a˜& 1 a &Ð)Ñ*Ô*Ø!ðñ ô ð
 òð ð ð ð ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ �G‰}Œ}ÐÐÐÐÐsJ   ËK/Ë/K3Ë6K3ÌL8Ì8L<Ì?L<Í AN0Î0N4Î7N4ÏA	P.Ð.P2Ð5P2c           	      óî  — g d¢}g d¢}g d¢}t          ¦   «         }|                     |¦  «         |                     |¦  «        }|                     |¦  «        }t          t          ||¦  «        }t          t          ||¦  «        }ddgddgddgdgdgdgd g}	ddgdd	gd	dgdgdgd	gd g}
d
D ]>}t          |	|
¦  «        D ]+\  }}t           |||¬¦  «         |||¬¦  «        ¦  «         Œ,Œ?t          j        ddgddgddgg¦  «        }t          j        ddgddgddgg¦  «        }t          ¦   «         5  t	          ||d¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          | ¦  «        rJ ‚d S )N)ÚantrO  ÚcatrP  rO  rP  ÚbirdrQ  )rP  rO  rP  rP  rO  rQ  rQ  rP  )rO  rQ  rP  rO  rQ  rP  r   r:   r3   )r¿   rÁ   rÀ   NrÆ   rÁ   r¡   )r&   rH   Ú	transformr   r   Úzipr+   r?   r˜   r/   rP  )rL  rW   rV   ro   ÚlbrÍ   rÎ   Úmulti_jaccard_scoreÚbin_jaccard_scoreÚmulti_labels_listÚbin_labels_listr¢   Úm_labelÚb_labels                 rX   Útest_multiclass_jaccard_scorer[    sA  € ØGÐGÐG€FØGÐGÐG€FØ#Ð#Ð#€FÝ	Ñ	Ô	€BØ‡F‚Fˆ6�N„N€NØ—’˜fÑ%Ô%€JØ—’˜fÑ%Ô%€JÝ!¥-°¸Ñ@Ô@ÐÝ¥¨z¸:ÑFÔFÐà	�ˆØ	�ˆØ	�ˆØ	ˆØ	ˆØ	ˆØðÐð ˜1�v  1˜v¨¨1 v°¨s°Q°C¸!¸¸dÐC€Oð 8ð ð ˆÝ #Ð$5°Ñ GÔ Gð 	ð 	ÑˆG�WÝØ#Ð#¨G¸GÐDÑDÔDØ!Ð!¨'¸'ÐBÑBÔBñô ð ð ð	õ ŒX˜˜1�v  1˜v¨¨1 vÐ.Ñ/Ô/€FÝŒX˜˜1�v  1˜v¨¨1 vÐ.Ñ/Ô/€FÝ	Ñ	Ô	ð Fð FÝ˜V V°ZÐ@Ñ@Ô@ÀAÒEÐEÐEÐEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fõ �G‰}Œ}ÐÐÐÐÐs   Ä3EÅEÅ Ec                 ó  — t          dgdgd¬¦  «        dk    sJ ‚d}t          j        t          |¬¦  «        5  t          ddgddgd¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          dgdgdd¬¦  «        d	k    sJ ‚t	          j        g d
¢¦  «        }t	          j        g d¢¦  «        }t          t          ||d¬¦  «        d¦  «         t          t          ||dd¬¦  «        d¦  «         t          | ¦  «        rJ ‚d S )Nr:   r   rL   r¡   r~   zOJaccard is ill-defined and being set to 0.0 due to no true or predicted samplesrå   rö   r²   )r:   r   r:   r:   r   )r:   r   r:   r:   r:   rÇ   rD  r—   )r   r¶   r÷   r   r?   r˜   r+   rP  )rL  r‘   rW   rV   s       rX   Ú!test_average_binary_jaccard_scorer]  =  sˆ  € å˜!˜˜q˜c¨8Ð4Ñ4Ô4¸Ò;Ð;Ð;Ð;ð	'ð õ 
ŒÕ,°CÐ	8Ñ	8Ô	8ð Fð FÝ˜a ˜V a¨ V°XÐ>Ñ>Ô>À#ÒEÐEÐEÐEÐEðFð Fð Fñ Fô Fð Fð Fð Fð Fð Fð Føøøð Fð Fð Fð Fõ ˜!˜˜q˜c¨Q¸ÐAÑAÔAÀSÒHÐHÐHÐHÝŒX�o�o�oÑ&Ô&€FÝŒX�o�o�oÑ&Ô&€FÝ� f¨f¸hÐGÑGÔGÈÑQÔQÐQÝÝ�f˜f¨hÀ!ÐDÑDÔDÀgñô ð õ �G‰}Œ}ÐÐÐÐÐs   ¸A"Á"A&Á)A&c                  ó6  — t          j        g d¢g d¢g¦  «        } t          j        g d¢g d¢g¦  «        }d}t          j        t          |¬¦  «        5  t          | |dd¬¦  «        }|t          j        d¦  «        k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )	Nr•   ©r   r   r   z�Jaccard is ill-defined and being set to 0.0 in samples with no true or predicted labels. Use `zero_division` parameter to control this behavior.rå   rÂ   rƒ   ©r¢   r‚   r~   )r?   r˜   r¶   r÷   r   r   r·   )rW   rV   r‘   Úscores       rX   Ú(test_jaccard_score_zero_division_warningrb  T  s÷   € õ ŒX�y�y�y ) ) )Ð,Ñ-Ô-€FÝŒX�y�y�y ) ) )Ð,Ñ-Ô-€Fð	Cð õ
 
ŒÕ,°CÐ	8Ñ	8Ô	8ð +ð +Ý˜f f°iÈvÐVÑVÔVˆØ�œ cÑ*Ô*Ò*Ð*Ð*Ð*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð +ð +s   Á.BÂBÂBzzero_division, expected_scorerý  )r:   r—   c                 óR  — t          j        g d¢g d¢g¦  «        }t          j        g d¢g d¢g¦  «        }t          j        ¦   «         5  t          j        dt
          ¦  «         t          ||d| ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |t          j        |¦  «        k    sJ ‚d S )Nr•   r_  rY  rÂ   r`  )	r?   r˜   rŒ   r�   r[  r   r   r¶   r·   )r‚   Úexpected_scorerW   rV   ra  s        rX   Ú*test_jaccard_score_zero_division_set_valuere  c  sô   € õ ŒX�y�y�y ) ) )Ð,Ñ-Ô-€FÝŒX�y�y�y ) ) )Ð,Ñ-Ô-€FÝ	Ô	 Ñ	"Ô	"ð 
ð 
ÝÔ˜gÕ'=Ñ>Ô>Ð>ÝØ�F I¸]ð
ñ 
ô 
ˆð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð
 •F”M .Ñ1Ô1Ò1Ð1Ð1Ð1Ð1Ð1s   Á.BÂBÂ	Bc                  óZ  — t          j        g d¢g d¢g d¢g¦  «        } t          j        g d¢g d¢g d¢g¦  «        }t          | |d ¬¦  «        \  }}}}t          |g d¢d¦  «         t          |g d¢d¦  «         t          |g d	¢d¦  «         t          |g d
¢d¦  «         t	          | |dd ¬¦  «        }|}t          |g d¢d¦  «         t          | |d¬¦  «        \  }}}}t          |d¦  «         t          |d¦  «         t          |d¦  «         |�J ‚t          t	          | |dd¬¦  «        t          j        |¦  «        ¦  «         t          | |d¬¦  «        \  }}}}t          |d¦  «         t          |d¦  «         t          |d¦  «         |�J ‚t          t	          | |dd¬¦  «        d|z  |z  d|z  |z   z  ¦  «         t          | |d¬¦  «        \  }}}}t          |d¦  «         t          |d¦  «         t          |d¦  «         |�J ‚t          t	          | |dd¬¦  «        t          j        ||¬¦  «        ¦  «         t          | |d¬¦  «        \  }}}}t          |d¦  «         t          |d¦  «         t          |d¦  «         |�J ‚t          t	          | |dd¬¦  «        d¦  «         d S )N©r:   r   r   r   ©r   r:   r   r   rá  )r:   r   r:   r   r¡   )r~   r—   r²   r~   r3   )r~   r²   r²   r~   )r~   rÔ   r:   r~   )r:   r:   r:   r:   ©r¥   r¢   )r   rÙ  r:   r   r¿   g      Ø?r—   g«ªªªªªÚ?rÀ   r¦   r§   rÁ   rz  rÂ   ©r?   r˜   r   r,   r   r+   rÊ   r¢   ©rW   rV   rQ   r¨   r©   rª   Úf2ra   s           rX   Ú+test_precision_recall_f1_score_multilabel_1rm  p  s$  € õ
 ŒX�|�|�| \ \ \°<°<°<Ð@ÑAÔA€FÝŒX�|�|�| \ \ \°<°<°<Ð@ÑAÔA€Få0°¸ÈÐNÑNÔN�J€A€qˆ!ˆQõ ˜aÐ!5Ð!5Ð!5°qÑ9Ô9Ð9Ý˜aÐ!5Ð!5Ð!5°qÑ9Ô9Ð9Ý˜aÐ!7Ð!7Ð!7¸Ñ;Ô;Ð;Ý˜a   ¨qÑ1Ô1Ð1å	�V˜V¨!°TÐ	:Ñ	:Ô	:€BØ€GÝ˜b / / /°1Ñ5Ô5Ð5õ 1°¸ÈÐQÑQÔQ�J€A€qˆ!ˆQÝ˜˜7Ñ#Ô#Ð#Ý˜˜3ÑÔÐÝ˜Ð+Ñ,Ô,Ð,Øˆ9ˆ9ˆ9ÝÝ�F˜F¨°GÐ<Ñ<Ô<½b¼gÀb¹k¼kñô ð õ
 1°¸ÈÐQÑQÔQ�J€A€qˆ!ˆQÝ˜˜3ÑÔÐÝ˜˜3ÑÔÐÝ˜˜3ÑÔÐØˆ9ˆ9ˆ9ÝÝ�F˜F¨°GÐ<Ñ<Ô<Ø	�!‰�a‰˜1˜q™5 1™9Ñ%ñô ð õ 1°¸ÈÐTÑTÔT�J€A€qˆ!ˆQÝ˜˜7Ñ#Ô#Ð#Ý˜˜3ÑÔÐÝ˜Ð+Ñ,Ô,Ð,Øˆ9ˆ9ˆ9ÝÝ�F˜F¨°JÐ?Ñ?Ô?Ý
Œ
�2˜wÐ'Ñ'Ô'ñô ð õ 1°¸ÈÐSÑSÔS�J€A€qˆ!ˆQÝ˜˜3ÑÔÐÝ˜˜3ÑÔÐÝ˜˜3ÑÔÐØˆ9ˆ9ˆ9Ý� F¨F¸ÀIÐNÑNÔNÐPSÑTÔTÐTÐTÐTrZ   c                  ó\  — t          j        g d¢g d¢g d¢g¦  «        } t          j        g d¢g d¢g d¢g¦  «        }t          | |d ¬¦  «        \  }}}}t          |g d¢d¦  «         t          |g d	¢d¦  «         t          |g d
¢d¦  «         t          |g d¢d¦  «         t	          | |dd ¬¦  «        }|}t          |g d¢d¦  «         t          | |d¬¦  «        \  }}}}t          |d¦  «         t          |d¦  «         t          |d¦  «         |�J ‚t          t	          | |dd¬¦  «        d|z  |z  d|z  |z   z  ¦  «         t          | |d¬¦  «        \  }}}}t          |d¦  «         t          |d¦  «         t          |d¦  «         |�J ‚t          t	          | |dd¬¦  «        t          j        |¦  «        ¦  «         t          | |d¬¦  «        \  }}}}t          |d¦  «         t          |d¦  «         t          |d¦  «         |�J ‚t          t	          | |dd¬¦  «        t          j        ||¬¦  «        ¦  «         t          | |d¬¦  «        \  }}}}t          |d¦  «         t          |d¦  «         t          |d¦  «         |�J ‚t          t	          | |dd¬¦  «        dd¦  «         d S )Nrg  rh  rã  ©r   r   r   r:   r¼  r¡   )r~   r²   r~   r~   r3   )r~   r—   r~   r~   )r~   g…ëQ¸å?r~   r~   ©r:   r3   r:   r   ri  )r   çš™™™™™á?r   r   rÀ   ç      Ð?r¦   r§   r¿   g      À?r>  rÁ   r—   rb   rz  rÂ   g¥½Á&SÅ?rj  rk  s           rX   Ú+test_precision_recall_f1_score_multilabel_2rs  ³  s/  € õ ŒX�|�|�| \ \ \°<°<°<Ð@ÑAÔA€FÝŒX�|�|�| \ \ \°<°<°<Ð@ÑAÔA€Fõ 1°¸ÈÐNÑNÔN�J€A€qˆ!ˆQÝ˜aÐ!5Ð!5Ð!5°qÑ9Ô9Ð9Ý˜aÐ!5Ð!5Ð!5°qÑ9Ô9Ð9Ý˜aÐ!6Ð!6Ð!6¸Ñ:Ô:Ð:Ý˜a   ¨qÑ1Ô1Ð1å	�V˜V¨!°TÐ	:Ñ	:Ô	:€BØ€GÝ˜b / / /°1Ñ5Ô5Ð5å0°¸ÈÐQÑQÔQ�J€A€qˆ!ˆQÝ˜˜4Ñ Ô Ð Ý˜˜4Ñ Ô Ð Ý˜Ð0Ñ1Ô1Ð1Øˆ9ˆ9ˆ9ÝÝ�F˜F¨°GÐ<Ñ<Ô<Ø	�!‰�a‰˜1˜q™5 1™9Ñ%ñô ð õ
 1°¸ÈÐQÑQÔQ�J€A€qˆ!ˆQÝ˜˜4Ñ Ô Ð Ý˜˜5Ñ!Ô!Ð!Ý˜˜6Ñ"Ô"Ð"Øˆ9ˆ9ˆ9ÝÝ�F˜F¨°GÐ<Ñ<Ô<½b¼gÀb¹k¼kñô ð õ 1°¸ÈÐTÑTÔT�J€A€qˆ!ˆQÝ˜˜5Ñ!Ô!Ð!Ý˜˜5Ñ!Ô!Ð!Ý˜˜=Ñ)Ô)Ð)Øˆ9ˆ9ˆ9ÝÝ�F˜F¨°JÐ?Ñ?Ô?Ý
Œ
�2˜wÐ'Ñ'Ô'ñô ð õ
 1°¸ÈÐSÑSÔS�J€A€qˆ!ˆQõ ˜˜5Ñ!Ô!Ð!Ý˜˜5Ñ!Ô!Ð!Ý˜˜=Ñ)Ô)Ð)Øˆ9ˆ9ˆ9ÝÝ�F˜F¨°IÐ>Ñ>Ô>ÀÈñô ð ð ð rZ   z%zero_division, zero_division_expected)rƒ   r   rÆ  c           	      óî  — t          j        g d¢g d¢g d¢g¦  «        }t          j        g d¢g d¢g d¢g¦  «        }t          ||d | ¬¦  «        \  }}}}t          ||dddgd	¦  «         t          |dd
d|gd	¦  «         t          j        |¦  «        sdnt           j        }t          ||dd|gd	¦  «         t          |g d¢d	¦  «         t          ||d	d | ¬¦  «        }	|}
t          |	|dd|gd	¦  «         t          ||d| ¬¦  «        \  }}}}t          j        |¦  «        rdn|}dt          j        |¦  «         z   }t          |d	|z   |z  ¦  «         t          |d|z   |z  ¦  «         dt          j        |¦  «        sdnd	z  }t          ||¦  «         |�J ‚t          t          ||d	d| ¬¦  «        t          |	d ¬¦  «        ¦  «         t          ||d| ¬¦  «        \  }}}}t          |d¦  «         t          |d
¦  «         t          |d¦  «         |�J ‚t          t          ||d	d| ¬¦  «        d|z  |z  d|z  |z   z  ¦  «         t          ||d| ¬¦  «        \  }}}}t          ||dk    rdnd¦  «         t          |d
¦  «         t          j        |¦  «        sdnd}t          |d|z  ¦  «         |�J ‚t          t          ||d	d| ¬¦  «        t          |	|
¬¦  «        ¦  «         t          ||d¬¦  «        \  }}}}t          |d¦  «         t          |d¦  «         t          |d¦  «         |�J ‚dd t           j        di}t          t          ||d	d| ¬¦  «        | 	                    | d!¦  «        d	¦  «         d S )"Nrh  rg  rã  r­  ro  r`  r²   r~   r3   r—   r   rÔ   r:   rp  ©r¥   r¢   r‚   rq  r¿   r»   ç      ø?gªªªªªªú?r§   rz  rÀ   re   r¦   rÁ   rÇ   gªªªªªª@rÂ   r¡   rb   gZd;ßOå?gZd;ßOÕ?)
r?   r˜   r   r,   r„  r   r   r+   r0   Úget)r‚   Úzero_division_expectedrW   rV   rQ   r¨   r©   rª   Ú
expected_frl  ra   Úvalue_to_sumÚvalues_to_averageÚexpected_results                 rX   Ú7test_precision_recall_f1_score_with_an_empty_predictionr}  ô  sq  € õ ŒX�|�|�| \ \ \°<°<°<Ð@ÑAÔA€FÝŒX�|�|�| \ \ \°<°<°<Ð@ÑAÔA€Fõ 1Ø� °Mðñ ô �J€A€qˆ!ˆQõ ˜aÐ"8¸#¸sÀCÐ!HÈ!ÑLÔLÐLÝ˜a # s¨CÐ1GÐ!HÈ!ÑLÔLÐLÝœ(Ð#9Ñ:Ô:ÐF��ÅÄ€JÝ˜a *¨g°q¸*Ð!EÀqÑIÔIÐIÝ˜a   ¨qÑ1Ô1Ð1å	�V˜V¨!°TÈÐ	WÑ	WÔ	W€BØ€GÝ˜b :¨t°Q¸
Ð"CÀQÑGÔGÐGå0Ø� °}ðñ ô �J€A€qˆ!ˆQõ œÐ!7Ñ8Ô8ÐT�1�1Ð>T€LØ¥¤Ð*@Ñ!AÔ!AÐAÑBÐå˜˜A Ñ,Ð0AÑAÑBÔBÐBÝ˜˜C ,Ñ.Ð2CÑCÑDÔDÐDØ­¬Ð2HÑ)IÔ)IÐ P  ÈqÑQ€JÝ˜˜:Ñ&Ô&Ð&Øˆ9ˆ9ˆ9ÝÝØØØØØ'ð	
ñ 	
ô 	
õ 	�B Ð%Ñ%Ô%ñ	ô 	ð 	õ 1Ø� °}ðñ ô �J€A€qˆ!ˆQõ ˜˜5Ñ!Ô!Ð!Ý˜˜3ÑÔÐÝ˜Ð0Ñ1Ô1Ð1Øˆ9ˆ9ˆ9ÝÝØ�F ¨GÀ=ð	
ñ 	
ô 	
ð 
�!‰�a‰˜1˜q™5 1™9Ñ%ñ	ô ð õ 1Ø� 
¸-ðñ ô �J€A€qˆ!ˆQõ ˜Ð$:¸aÒ$?Ð$?˜5˜5ÀSÑIÔIÐIÝ˜˜3ÑÔÐÝ!#¤Ð*@Ñ!AÔ!AÐH˜˜ÀqÐÝ˜˜MÐ->Ñ>Ñ?Ô?Ð?Øˆ9ˆ9ˆ9ÝÝØ�F ¨JÀmð	
ñ 	
ô 	
õ 	�B Ð(Ñ(Ô(ñ	ô ð õ 1°¸ÈÐSÑSÔS�J€A€qˆ!ˆQõ ˜˜5Ñ!Ô!Ð!Ý˜˜5Ñ!Ô!Ð!Ý˜˜5Ñ!Ô!Ð!Øˆ9ˆ9ˆ9Ø˜%¥¤¨Ð-€OÝÝØ�F ¨IÀ]ð	
ñ 	
ô 	
ð 	×Ò˜M¨5Ñ1Ô1Ø	ñô ð ð ð rZ   r¥   )r¿   rÀ   rÁ   rÂ   c                 óò  — t          j        d¦  «        }t          j        |¦  «        }t          t          |||| |¬¦  «        \  }}}}t          t
          ||| ||¬¦  «        }	|�J ‚t          j        |¦  «        r!||||	fD ]}
t          j        |
¦  «        sJ ‚Œd S t          |¦  «        }t          ||¦  «         t          ||¦  «         t          ||¦  «         t          |	t          |¦  «        ¦  «         d S )N©rf   r»   ©r¢   r¥   r‚   ru  )	r?   rš   r?  r.   r   r   r„  ru   r+   )r¥   r¢   r‚   rW   rV   rQ   r¨   r©   rª   Úfbetar{   s              rX   Ú"test_precision_recall_f1_no_labelsr‚  W  s(  € õ ŒX�gÑÔ€FÝŒ]˜6Ñ"Ô"€Få#Ý'ØØØØØ#ðñ ô �J€A€qˆ!ˆQõ ÝØØØØØ#ðñ ô €Eð ˆ9ˆ9ˆ9õ 
„x�ÑÔð Ø˜!˜Q Ð&ð 	$ð 	$ˆFÝ”8˜FÑ#Ô#Ð#Ð#Ð#Ð#Øˆå˜-Ñ(Ô(€MÝ˜˜=Ñ)Ô)Ð)Ý˜˜=Ñ)Ô)Ð)Ý˜˜=Ñ)Ô)Ð)å˜�u ]Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4rZ   c                 óþ  — t          j        d¦  «        }t          j        |¦  «        }t          }t	          j        t          ¦  «        5   |||| d¬¦  «        \  }}}}d d d ¦  «         n# 1 swxY w Y   t          |d¦  «         t          |d¦  «         t          |d¦  «         |�J ‚t	          j        t          ¦  «        5  t          ||| d¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |d¦  «         d S )Nr  r²   rÞ  r   )	r?   rš   r?  r   r¶   r÷   r   r+   r   )	r¢   rW   rV   ÚfuncrQ   r¨   r©   rª   r�  s	            rX   Ú1test_precision_recall_f1_no_labels_check_warningsr…  ~  sœ  € åŒX�gÑÔ€FÝŒ]˜6Ñ"Ô"€Få*€DÝ	ŒÕ,Ñ	-Ô	-ð Eð EØ�T˜& &°'ÀÐDÑDÔD‰
ˆˆ1ˆa�ðEð Eð Eñ Eô Eð Eð Eð Eð Eð Eð Eøøøð Eð Eð Eð Eõ ˜˜1ÑÔÐÝ˜˜1ÑÔÐÝ˜˜1ÑÔÐØˆ9ˆ9ˆ9å	ŒÕ,Ñ	-Ô	-ð Gð GÝ˜F F°GÀ#ÐFÑFÔFˆðGð Gð Gñ Gô Gð Gð Gð Gð Gð Gð Gøøøð Gð Gð Gð Gõ ˜˜qÑ!Ô!Ð!Ð!Ð!s$   Á	A*Á*A.Á1A.ÃC"Ã"C&Ã)C&c                 ó¶  — t          j        d¦  «        }t          j        |¦  «        }t          t          ||d d| ¬¦  «        \  }}}}t          t
          ||dd | ¬¦  «        }t          j        | ¦  «        } t          || | | gd¦  «         t          || | | gd¦  «         t          || | | gd¦  «         t          |g d¢d¦  «         t          || | | gd¦  «         d S )Nr  r²   r€  ru  r3   r_  )r?   rš   r?  r.   r   r   r  r,   )r‚   rW   rV   rQ   r¨   r©   rª   r�  s           rX   Ú/test_precision_recall_f1_no_labels_average_noner‡  ’  s  € åŒX�gÑÔ€FÝŒ]˜6Ñ"Ô"€Fõ $Ý'ØØØØØ#ðñ ô �J€A€qˆ!ˆQõ Ý�V˜V¨#°tÈ=ðñ ô €Eõ ”J˜}Ñ-Ô-€MÝ˜a -°ÀÐ!NÐPQÑRÔRÐRÝ˜a -°ÀÐ!NÐPQÑRÔRÐRÝ˜a -°ÀÐ!NÐPQÑRÔRÐRÝ˜a   ¨AÑ.Ô.Ð.å˜e m°]ÀMÐ%RÐTUÑVÔVÐVÐVÐVrZ   c                  ó.  — t          j        d¦  «        } t          j        | ¦  «        }t          j        t
          ¦  «        5  t          | |d d¬¦  «        \  }}}}d d d ¦  «         n# 1 swxY w Y   t          |g d¢d¦  «         t          |g d¢d¦  «         t          |g d¢d¦  «         t          |g d¢d¦  «         t          j        t
          ¦  «        5  t          | |dd ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |g d¢d¦  «         d S )Nr  r:   rÞ  r_  r3   ri  )	r?   rš   r?  r¶   r÷   r   r   r,   r   )rW   rV   rQ   r¨   r©   rª   r�  s          rX   Ú4test_precision_recall_f1_no_labels_average_none_warnr‰  ³  s²  € ÝŒX�gÑÔ€FÝŒ]˜6Ñ"Ô"€Fõ 
ŒÕ,Ñ	-Ô	-ð 
ð 
Ý4Ø�F D¨qð
ñ 
ô 
‰
ˆˆ1ˆa�ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ
 ˜a   ¨AÑ.Ô.Ð.Ý˜a   ¨AÑ.Ô.Ð.Ý˜a   ¨AÑ.Ô.Ð.Ý˜a   ¨AÑ.Ô.Ð.å	ŒÕ,Ñ	-Ô	-ð Bð BÝ˜F F°¸DÐAÑAÔAˆðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bõ ˜e Y Y Y°Ñ2Ô2Ð2Ð2Ð2s$   ÁA'Á'A+Á.A+ÃC7Ã7C;Ã>C;c            	      ó  — t           t          }} dD ]†}d}t          j        ||¬¦  «        5   | g d¢g d¢|¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        ||¬¦  «        5   | g d¢g d¢|¬¦  «         d d d ¦  «         n# 1 swxY w Y   Œ‡d}t          j        ||¬¦  «        5   | t	          j        d	d
gd	d
gg¦  «        t	          j        d	d
gd
d
gg¦  «        d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        ||¬¦  «        5   | t	          j        d	d
gd
d
gg¦  «        t	          j        d	d
gd	d
gg¦  «        d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        ||¬¦  «        5   | t	          j        d	d	gd	d	gg¦  «        t	          j        d
d
gd
d
gg¦  «        d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        ||¬¦  «        5   | t	          j        d
d
gd
d
gg¦  «        t	          j        d	d	gd	d	gg¦  «        d¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        ||¬¦  «        5   | d	d	gddgd¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}t          j        ||¬¦  «        5   | ddgd	d	gd¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d¬¦  «        5 }t          j        d¦  «         t          d
d
gd
d
gd¬¦  «         d}t          | 
                    ¦   «         j        ¦  «        |k    sJ ‚d}t          | 
                    ¦   «         j        ¦  «        |k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )N©NrÁ   r¿   z—Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.rå   rÚ   ©r:   r:   r3   r¡   z�Recall and F-score are ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.z—Precision and F-score are ill-defined and being set to 0.0 in samples with no predicted labels. Use `zero_division` parameter to control this behavior.r:   r   rÂ   z�Recall and F-score are ill-defined and being set to 0.0 in samples with no true labels. Use `zero_division` parameter to control this behavior.z�Precision and F-score are ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.rÀ   z‡Recall and F-score are ill-defined and being set to 0.0 due to no true samples. Use `zero_division` parameter to control this behavior.r´   rL   TrŠ   Úalways)r   r   r¶   r÷   r?   r˜   rŒ   r�   r[  rŽ   Úpopr�   )r©   rA  r¢   r‘   r‹   s        rX   Útest_prf_warningsr�  Ï  s¨  € å*Õ,B€q€AØ.ð 5ð 5ˆðð 	õ Œ\˜! 3Ð'Ñ'Ô'ð 	5ð 	5ØˆAˆiˆiˆi˜˜˜¨GÐ4Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5ðð 	õ Œ\˜! 3Ð'Ñ'Ô'ð 	5ð 	5ØˆAˆiˆiˆi˜˜˜¨GÐ4Ñ4Ô4Ð4ð	5ð 	5ð 	5ñ 	5ô 	5ð 	5ð 	5ð 	5ð 	5ð 	5ð 	5øøøð 	5ð 	5ð 	5ð 	5øð
	ð õ 
Œ�a˜sÐ	#Ñ	#Ô	#ð Uð UØ	ˆ�"Œ(�Q˜�F˜Q ˜FÐ#Ñ
$Ô
$¥b¤h°°A°¸¸A¸Ð/?Ñ&@Ô&@È)ÐTÑTÔTÐTðUð Uð Uñ Uô Uð Uð Uð Uð Uð Uð Uøøøð Uð Uð Uð Uð	ð õ 
Œ�a˜sÐ	#Ñ	#Ô	#ð Uð UØ	ˆ�"Œ(�Q˜�F˜Q ˜FÐ#Ñ
$Ô
$¥b¤h°°A°¸¸A¸Ð/?Ñ&@Ô&@È)ÐTÑTÔTÐTðUð Uð Uñ Uô Uð Uð Uð Uð Uð Uð Uøøøð Uð Uð Uð Uð
	ð õ 
Œ�a˜sÐ	#Ñ	#Ô	#ð Sð SØ	ˆ�"Œ(�Q˜�F˜Q ˜FÐ#Ñ
$Ô
$¥b¤h°°A°¸¸A¸Ð/?Ñ&@Ô&@È'ÐRÑRÔRÐRðSð Sð Sñ Sô Sð Sð Sð Sð Sð Sð Søøøð Sð Sð Sð Sð	ð õ 
Œ�a˜sÐ	#Ñ	#Ô	#ð Sð SØ	ˆ�"Œ(�Q˜�F˜Q ˜FÐ#Ñ
$Ô
$¥b¤h°°A°¸¸A¸Ð/?Ñ&@Ô&@È'ÐRÑRÔRÐRðSð Sð Sñ Sô Sð Sð Sð Sð Sð Sð Søøøð Sð Sð Sð Sð
	ð õ 
Œ�a˜sÐ	#Ñ	#Ô	#ð .ð .Ø	ˆˆ1ˆaˆ&�2�r�( HÐ-Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð	ð õ 
Œ�a˜sÐ	#Ñ	#Ô	#ð .ð .Ø	ˆˆ2ˆrˆ(�Q˜�F HÐ-Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .õ 
Ô	 ¨Ð	-Ñ	-Ô	-ð 0°ÝÔ˜hÑ'Ô'Ð'Ý'¨¨A¨°°A°ÀÐIÑIÔIÐIðð 	õ �6—:’:‘<”<Ô'Ñ(Ô(¨CÒ/Ð/Ð/Ð/ðð 	õ �6—:’:‘<”<Ô'Ñ(Ô(¨CÒ/Ð/Ð/Ð/Ð/ð!0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0s¢   «A
Á
A	ÁA	Á-BÂB	ÂB	Â0?C;Ã;C?ÄC?Ä?E)Å)E-Å0E-Æ?GÇGÇGÇ:?IÉI	ÉI	É(JÊJÊJÊ*K	Ë	KËKË)BM>Í>NÎNc           	      óÜ  — t           }dD ]2}t          |g d¢g d¢|| ¬¦  «         t          |g d¢g d¢|| ¬¦  «         Œ3t          |t          j        ddgddgg¦  «        t          j        ddgddgg¦  «        d| ¬¦  «         t          |t          j        ddgddgg¦  «        t          j        ddgddgg¦  «        d| ¬¦  «         t          |t          j        ddgddgg¦  «        t          j        ddgddgg¦  «        d| ¬¦  «         t          |t          j        ddgddgg¦  «        t          j        ddgddgg¦  «        d| ¬¦  «         t          |ddgd	d	gd
| ¬¦  «         t          |d	d	gddgd
| ¬¦  «         t	          j        d¬¦  «        5 }t	          j        d¦  «         t          ddgddgd
| ¬¦  «         t          |¦  «        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr‹  rÚ   rŒ  r`  r:   r   rÂ   rÀ   r´   rL   TrŠ   r�  )r   r.   r?   r˜   rŒ   r�   r[  rr   )r‚   r©   r¢   r‹   s       rX   Ú)test_prf_no_warnings_if_zero_division_setr‘  1  sï  € õ 	(€AØ.ð 
ð 
ˆÝØˆyˆyˆy˜)˜)˜)¨WÀMð	
ñ 	
ô 	
ð 	
õ 	Øˆyˆyˆy˜)˜)˜)¨WÀMð	
ñ 	
ô 	
ð 	
ð 	
õ
 Ø	Ý
Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"Ý
Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"ØØ#ðñ ô ð õ Ø	Ý
Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"Ý
Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"ØØ#ðñ ô ð õ Ø	Ý
Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"Ý
Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"ØØ#ðñ ô ð õ Ø	Ý
Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"Ý
Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"ØØ#ðñ ô ð õ Ø	ˆAˆqˆ6�B˜�8 X¸]ðñ ô ð õ Ø	ˆB�ˆ8�a˜�V X¸]ðñ ô ð õ 
Ô	 ¨Ð	-Ñ	-Ô	-ð  °ÝÔ˜hÑ'Ô'Ð'Ý'Ø�ˆF�Q˜�F H¸Mð	
ñ 	
ô 	
ð 	
õ �6‰{Œ{˜aÒÐÐÐÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   ÆAG!Ç!G%Ç(G%c           	      ó¾  — t          t          t          j        ddgddgg¦  «        t          j        ddgddgg¦  «        d| ¬¦  «         t	          j        d¬¦  «        5 }t	          j        d¦  «         t          t          j        ddgddgg¦  «        t          j        ddgddgg¦  «        d| ¬¦  «         | dk    r-t          |                     ¦   «         j	        ¦  «        d	k    sJ ‚nt          |¦  «        dk    sJ ‚t          ddgddg¦  «         | dk    r,t          |                     ¦   «         j	        ¦  «        d	k    sJ ‚d d d ¦  «         d S # 1 swxY w Y   d S )
Nr:   r   rÀ   r`  TrŠ   r�  rƒ   zzRecall is ill-defined and being set to 0.0 due to no true samples. Use `zero_division` parameter to control this behavior.)r.   r!   r?   r˜   rŒ   r�   r[  rŽ   rŽ  r�   rr   ©r‚   r‹   s     rX   Útest_recall_warningsr”  q  sÛ  € åÝÝ
Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"Ý
Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"ØØ#ðñ ô ð õ 
Ô	 ¨Ð	-Ñ	-Ô	-ð °ÝÔ˜hÑ'Ô'Ð'ÝÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ØØ'ð		
ñ 	
ô 	
ð 	
ð ˜FÒ"Ð"å�F—J’J‘L”LÔ(Ñ)Ô)ð"ò"ð "ð "ð "ð "õ �v‘;”; !Ò#Ð#Ð#Ð#å�a˜�V˜a ˜VÑ$Ô$Ð$Ø˜FÒ"Ð"å�F—J’J‘L”LÔ(Ñ)Ô)ð"ò"ð "ð "ð "ð-ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁC&EÅEÅEc           	      ó¼  — t          j        d¬¦  «        5 }t          j        d¦  «         t          t	          j        ddgddgg¦  «        t	          j        ddgddgg¦  «        d| ¬¦  «         | dk    r-t          |                     ¦   «         j        ¦  «        d	k    sJ ‚nt          |¦  «        dk    sJ ‚t          ddgddg¦  «         | dk    r,t          |                     ¦   «         j        ¦  «        d	k    sJ ‚d d d ¦  «         n# 1 swxY w Y   t          t          t	          j        ddgddgg¦  «        t	          j        ddgddgg¦  «        d| ¬¦  «         d S )
NTrŠ   r�  r:   r   rÀ   r`  rƒ   z‚Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.)rŒ   r�   r[  r    r?   r˜   rŽ   rŽ  r�   rr   r.   r“  s     rX   Útest_precision_warningsr–  ˜  sÖ  € å	Ô	 ¨Ð	-Ñ	-Ô	-ð °ÝÔ˜hÑ'Ô'Ð'ÝÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ØØ'ð		
ñ 	
ô 	
ð 	
ð ˜FÒ"Ð"å�F—J’J‘L”LÔ(Ñ)Ô)ð"ò"ð "ð "ð "ð "õ �v‘;”; !Ò#Ð#Ð#Ð#å˜˜A˜  A Ñ'Ô'Ð'Ø˜FÒ"Ð"å�F—J’J‘L”LÔ(Ñ)Ô)ð"ò"ð "ð "ð "ð-ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ: ÝÝ
Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"Ý
Œ�1�a�&˜1˜a˜&Ð!Ñ"Ô"ØØ#ðñ ô ð ð ð s   –C&DÄDÄDc           
      ó0  — t          j        d¬¦  «        5 }t          j        d¦  «         t          t	          t
          d¬¦  «        fD �]3} |t          j        ddgddgg¦  «        t          j        ddgddgg¦  «        d| ¬	¦  «         t          |¦  «        dk    sJ ‚ |t          j        ddgddgg¦  «        t          j        ddgddgg¦  «        d| ¬	¦  «         t          |¦  «        dk    sJ ‚ |t          j        ddgddgg¦  «        t          j        ddgddgg¦  «        d| ¬	¦  «         | d
k    r.t          | 
                    ¦   «         j        ¦  «        dk    sJ ‚�Œt          |¦  «        dk    sJ ‚�Œ5	 d d d ¦  «         d S # 1 swxY w Y   d S )NTrŠ   r�  r3   r³   r:   r   rÀ   r`  rƒ   z‰F-score is ill-defined and being set to 0.0 due to no true nor predicted samples. Use `zero_division` parameter to control this behavior.)rŒ   r�   r[  r   r   r   r?   r˜   rr   rŽ   rŽ  r�   )r‚   r‹   ra  s      rX   Útest_fscore_warningsr˜  À  s7  € å	Ô	 ¨Ð	-Ñ	-Ô	-ð #(°ÝÔ˜hÑ'Ô'Ð'å¥­¸!Ð <Ñ <Ô <Ð=ð  	(ñ  	(ˆEØˆEÝ”˜1˜a˜& 1 a &Ð)Ñ*Ô*Ý”˜1˜a˜& 1 a &Ð)Ñ*Ô*ØØ+ð	ñ ô ð õ �v‘;”; !Ò#Ð#Ð#Ð#àˆEÝ”˜1˜a˜& 1 a &Ð)Ñ*Ô*Ý”˜1˜a˜& 1 a &Ð)Ñ*Ô*ØØ+ð	ñ ô ð õ �v‘;”; !Ò#Ð#Ð#Ð#àˆEÝ”˜1˜a˜& 1 a &Ð)Ñ*Ô*Ý”˜1˜a˜& 1 a &Ð)Ñ*Ô*ØØ+ð	ñ ô ð ð  Ò&Ð&å˜Ÿ
š
™œÔ,Ñ-Ô-ð-ò-ð -ð -ð -ñ -õ ˜6‘{”{ aÒ'Ð'Ð'Ð'Ñ'ðA 	(ð#(ð #(ð #(ñ #(ô #(ð #(ð #(ð #(ð #(ð #(ð #(ð #(øøøð #(ð #(ð #(ð #(ð #(ð #(s   –E'FÆFÆFc                  óŠ  — g d¢} g d¢}d}t          j        g d¢g d¢g d¢g¦  «        }t          j        g d¢g d¢g d¢g¦  «        }d}| ||f|||ffD ]q\  }}}t          t          t          t          t          d	¬
¦  «        fD ]A}	t          j        t          |¬¦  «        5   |	||¦  «         d d d ¦  «         n# 1 swxY w Y   ŒBŒrd S )N)r:   r3   r»   r»   )r:   r3   r»   r:   rF  r”   rÄ   r–   r4  rE  r3   r³   rå   )
r?   r˜   r    r!   r   r   r   r¶   rË   rÌ   )
Ú	y_true_mcÚ	y_pred_mcÚmsg_mcÚ
y_true_indÚ
y_pred_indÚmsg_indrW   rV   r‘   r{   s
             rX   Ú'test_prf_average_binary_data_non_binaryr   è  sV  € à��€IØ��€Ið	1ð õ
 ”˜9˜9˜9 i i i°°°Ð;Ñ<Ô<€JÝ”˜9˜9˜9 i i i°°°Ð;Ñ<Ô<€Jð	<ð ð 
�I˜vÐ&Ø	�Z Ð)ð ð 'ð 'Ñˆ�˜õ
 ÝÝÝ•K aÐ(Ñ(Ô(ð	
ð 	'ð 	'ˆFõ ”�z°Ð5Ñ5Ô5ð 'ð 'Ø��v˜vÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'øð	'ð	'ð 's   ÂB6Â6B:Â=B:c                  ó†  — d} d}d}d}d}d}| t          j        g d¢g d¢g d	¢g¦  «        f| t          j        d
dgdd
gddgg¦  «        f|g d¢f|g d¢f|g d¢f|t          j        dgdgdgg¦  «        f|t          j        d
gdgdgg¦  «        f|t          j        dgdgdgg¦  «        f|t          j        d
dgddgddgg¦  «        f|t          j        ddgddgddgg¦  «        fg
}i | | f| “||f|“||f|“|| fd “|| fd “||f|“||fd “||fd “||fd “| |fd “||fd “||fd “||fd “||fd “| |fd “||fd “||fd “||fd | |fd ||fd ||fd i¥}t          |d¬¦  «        D �]\  \  }}	\  }
}	 |||
f         }n# t          $ r ||
|f         }Y nw xY w|�€t	          j        t          ¦  «        5  t          |	|¦  «         d d d ¦  «         n# 1 swxY w Y   ||
k    rZd                     ||
¦  «        }t	          j        t          |¬¦  «        5  t          |	|¦  «         d d d ¦  «         n# 1 swxY w Y   ŒÖ|||| fvrXd                     |¦  «        }t	          j        t          |¬¦  «        5  t          |	|¦  «         d d d ¦  «         n# 1 swxY w Y   �Œ7t          |	|¦  «        \  }}}||k    sJ ‚| 	                    d¦  «        r|j        dk    sJ ‚|j        dk    sJ ‚nDt          |t          j        |	¦  «        ¦  «         t          |t          j        |¦  «        ¦  «         t	          j        t          ¦  «        5  t          |	d d…         |¦  «         d d d ¦  «         n# 1 swxY w Y   �Œddg}	d d!g}d"}t	          j        t          |¬¦  «        5  t          |	|¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )#Nzmultilabel-indicatorrõ  rL   Ú
continuouszmulticlass-multioutputzcontinuous-multioutputr”   rÄ   r–   r   r:   )r3   r»   r:   )r~   rv  r²   r3   r»   r~   rv  r²   r—   rX  gš™™™™™ñ?g      @)rÕ  z@Classification metrics can't handle a mix of {0} and {1} targetsrå   z{0} is not supportedÚ
multilabelÚcsrr´   )r:   r3   )r   r3   r»   )r3   )r   r3   zÝYou appear to be using a legacy multi-label data representation. Sequence of sequences are no longer supported; use a binary array or sparse matrix instead - the MultiLabelBinarizer transformer can convert to this format.)r?   r˜   r   ÚKeyErrorr¶   rË   rÌ   r$   ÚformatÚ
startswithr-   Úsqueeze)ÚINDÚMCÚBINÚCNTÚMMCÚMCNÚEXAMPLESÚEXPECTEDÚtype1rœ   Útype2r�   rù  rê   Úmerged_typeÚy1outÚy2outr‘   s                     rX   Útest__check_targetsr¶  	  sj  € ð !€CØ	€BØ
€CØ
€CØ
"€CØ
"€Cð 
�bŒh˜	˜	˜	 9 9 9¨i¨i¨iÐ8Ñ9Ô9Ð:à	�bŒh˜˜A˜  A ¨¨A¨Ð/Ñ0Ô0Ð1Ø	ˆYˆYˆYˆØ	ˆiˆiˆiÐØ	ˆoˆoˆoÐØ	�RŒX˜�s˜Q˜C ! �oÑ&Ô&Ð'Ø	�bŒh˜˜˜a˜S 1 #�Ñ'Ô'Ð(Ø	�bŒh˜˜ ˜u s eÐ,Ñ-Ô-Ð.Ø	�bŒh˜˜A˜  A ¨¨A¨Ð/Ñ0Ô0Ð1Ø	�bŒh˜˜c˜
 S¨# J°°c°
Ð;Ñ<Ô<Ð=ð€HðØ	ˆcˆ
�Cðà	ˆRˆ�"ðð 
ˆcˆ
�Cðð 
ˆSˆ	�4ð	ð
 
ˆcˆ
�Dðð 
ˆbˆ	�2ðð 
ˆcˆ
�Dðð 
ˆcˆ
�Dðð 
ˆcˆ
�Dðð 
ˆcˆ
�Dðð 
ˆSˆ	�4ðð 
ˆcˆ
�Dðð 
ˆcˆ
�Dðð 
ˆcˆ
�Dðð  
ˆcˆ
�Dð!ð" 
ˆSˆ	�4ð#ð$ 
ˆcˆ
�Dð%ð& 
ˆcˆ
�DØ	ˆcˆ
�DØ	ˆSˆ	�4Ø	ˆcˆ
�Dð-ð €Hõ2 %,¨H¸QÐ$?Ñ$?Ô$?ð !,ñ !,Ñ ‰ˆ�‘[�e˜Rð	.Ø  u Ô-ˆHˆHøÝð 	.ð 	.ð 	.Ø  u Ô-ˆHˆHˆHð	.øøøàÑÝ”�zÑ*Ô*ð 'ð 'Ý˜r 2Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð ˜Š~ˆ~ð-ß-3ªV°E¸5Ñ-AÔ-Að õ ”]¥:°WÐ=Ñ=Ô=ð +ð +Ý" 2 rÑ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +øð   b¨# Ð.Ð.Ø4×;Ò;¸EÑBÔB�GÝœ¥z¸ÐAÑAÔAð /ð /Ý& r¨2Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ùõ )7°r¸2Ñ(>Ô(>Ñ%ˆK˜ Ø (Ò*Ð*Ð*Ð*Ø×%Ò% lÑ3Ô3ð :Ø”| uÒ,Ð,Ð,Ð,Ø”| uÒ,Ð,Ð,Ð,Ð,å" 5­"¬*°R©.¬.Ñ9Ô9Ð9Ý" 5­"¬*°R©.¬.Ñ9Ô9Ð9Ý”�zÑ*Ô*ð ,ð ,Ý˜r # 2 #œw¨Ñ+Ô+Ð+ð,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,ùð �)Ð	€BØ
�ˆ€Bð	3ð õ 
Œ•z¨Ð	-Ñ	-Ô	-ð ð Ý�r˜2ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð sl   Å.
E9Å9FÆFÆ/GÇG	ÇG	ÈH+È+H/	È2H/	É.JÊJ	ÊJ	ÍM&Í&M*	Í-M*	ÎN6Î6N:Î=N:c                  óN   — ddg} ddg}t          | |¦  «        d         dk    sJ ‚d S )Nr   r:   r´   rõ  r#   r`  s     rX   ÚAtest__check_targets_multiclass_with_both_y_true_and_y_pred_binaryr¸  i	  s:   € à�ˆV€FØ�ˆW€FÝ˜& &Ñ)Ô)¨!Ô,°Ò<Ð<Ð<Ð<Ð<Ð<rZ   c                  ó  — t          j        g d¢¦  «        } t          j        g d¢¦  «        }t          | |¦  «        dk    sJ ‚t          j        g d¢¦  «        } t          j        g d¢¦  «        }t          | |¦  «        dk    sJ ‚d S )N)r´   r:   r:   r´   )g      !Àr—   rv  g333333Ó¿râ   )r   r3   r3   r   )r?   r˜   r   ©rW   Úpred_decisions     rX   Útest_hinge_loss_binaryr¼  p	  s�   € ÝŒX�n�n�nÑ%Ô%€FÝ”HÐ3Ð3Ð3Ñ4Ô4€MÝ�f˜mÑ,Ô,°Ò7Ð7Ð7Ð7åŒX�l�l�lÑ#Ô#€FÝ”HÐ3Ð3Ð3Ñ4Ô4€MÝ�f˜mÑ,Ô,°Ò7Ð7Ð7Ð7Ð7Ð7rZ   c            
      óž  — t          j        g d¢g d¢g d¢g d¢g d¢g d¢g¦  «        } t          j        g d¢¦  «        }t          j        d| d         d         z
  | d         d         z   d| d         d         z
  | d         d	         z   d| d	         d	         z
  | d	         d
         z   d| d
         d         z
  | d
         d	         z   d| d         d
         z
  | d         d	         z   d| d         d	         z
  | d         d
         z   g¦  «        }t          j        |dd |¬¦  «         t          j        |¦  «        }t	          || ¦  «        |k    sJ ‚d S )N©ç
×£p=
×?çÃõ(\�ÂÅ¿ç�Âõ(\�â¿g®Gáz®ï¿)çHáz®Gá¿g®Gáz®×¿ç¸…ëQ¸Þ¿rÁ  ©ç333333÷¿rÁ  çR¸…ëQØ¿rÀ  )rÂ  rÆ  rÃ  rÁ  ©gáz®GáÀgHáz®Gé¿gHáz®GÑ¿g¸…ëQ¸Î?)r   r:   r3   r:   r»   r3   r:   r   r3   r»   r§   r¦   ©Úout©r?   r˜   ÚcliprÊ   r   )r»  rW   Údummy_lossesÚdummy_hinge_losss       rX   Útest_hinge_loss_multiclassrÎ  z	  s�  € Ý”Hà(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(ð	
ñ	ô 	€Mõ ŒXÐ(Ð(Ð(Ñ)Ô)€FÝ”8à�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9Ø�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9Ø�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9Ø�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9Ø�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9Ø�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9ð	
ñ	ô 	€Lõ „GˆL˜!˜T |Ð4Ñ4Ô4Ð4Ý”w˜|Ñ,Ô,ÐÝ�f˜mÑ,Ô,Ð0@Ò@Ð@Ð@Ð@Ð@Ð@rZ   c                  óþ   — t          j        g d¢¦  «        } t          j        g d¢g d¢g d¢g d¢g¦  «        }d}t          j        t          |¬¦  «        5  t          | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r   r:   r3   r3   )gR¸…ëQô?gœÄ °rh¡?gÃõ(\�Âå¿gffffffö¿rÄ  rÇ  zDPlease include all labels in y_true or pass labels as third argumentrå   )r?   r˜   r¶   rË   rÌ   r   )rW   r»  Úerror_messages      rX   Ú:test_hinge_loss_multiclass_missing_labels_with_labels_nonerÑ  •	  så   € ÝŒX�l�l�lÑ#Ô#€FÝ”Hà(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(ð		
ñô €Mð 	Oð õ 
Œ•z¨Ð	7Ñ	7Ô	7ð *ð *Ý�6˜=Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *s   ÁA2Á2A6Á9A6c            
      ó  — t          j        g d¢¦  «        } t          j        g d¢¦  «        }d}t          j        t          t          j        |¦  «        ¬¦  «        5  t          | |¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        ddgddgddgddgddgddgddgg¦  «        }g d	¢}d
}t          j        t          t          j        |¦  «        ¬¦  «        5  t          | ||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r3   r:   r   r:   r   r:   r:   )r   r:   r3   r:   r   r3   r:   z”The shape of pred_decision cannot be 1d arraywith a multiclass target. pred_decision shape must be (n_samples, n_classes), that is (7, 3). Got: (7,)rå   rº  r   r:   r3   rÚ   z²The shape of pred_decision is not consistent with the number of classes. With a multiclass target, pred_decision shape must be (n_samples, n_classes), that is (7, 3). Got: (7, 2))rW   r»  ro   )r?   r˜   r¶   rË   rÌ   ÚreÚescaper   )rW   r»  rÐ  ro   s       rX   Ú<test_hinge_loss_multiclass_no_consistent_pred_decision_shaperÕ  ¦	  sÁ  € õ ŒXÐ+Ð+Ð+Ñ,Ô,€FÝ”HÐ2Ð2Ð2Ñ3Ô3€Mð	ð õ 
Œ•z­¬°=Ñ)AÔ)AÐ	BÑ	BÔ	Bð ?ð ?Ý˜&°Ð>Ñ>Ô>Ð>ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?õ ”H˜q !˜f q¨! f¨q°!¨f°q¸!°f¸qÀ!¸fÀqÈ!ÀfÈqÐRSÈfÐUÑVÔV€MØˆYˆY€Fð	ð õ 
Œ•z­¬°=Ñ)AÔ)AÐ	BÑ	BÔ	Bð Nð NÝ˜&°ÀfÐMÑMÔMÐMðNð Nð Nñ Nô Nð Nð Nð Nð Nð Nð Nð Nøøøð Nð Nð Nð Nð Nð Ns$   ÁA:Á:A>ÂA>Ã!DÄDÄDc            	      óŠ  — t          j        g d¢g d¢g d¢g d¢g d¢g¦  «        } t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        d| d         d         z
  | d         d         z   d| d         d         z
  | d         d         z   d| d         d         z
  | d         d	         z   d| d	         d         z
  | d	         d         z   d| d
         d         z
  | d
         d	         z   g¦  «        }t          j        |dd |¬¦  «         t          j        |¦  «        }t	          || |¬¦  «        |k    sJ ‚d S )Nr¾  ©çš™™™™™á¿rÆ  rÃ  rÁ  rÄ  )r   r:   r3   r:   r3   )r   r:   r3   r»   r:   r   r3   r»   r§   rÈ  rÓ   rÊ  ©r»  rW   ro   rÌ  rÍ  s        rX   Ú.test_hinge_loss_multiclass_with_missing_labelsrÚ  Â	  sz  € Ý”Hà(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(ð	
ñô €Mõ ŒX�o�o�oÑ&Ô&€FÝŒX�l�l�lÑ#Ô#€FÝ”8à�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9Ø�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9Ø�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9Ø�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9Ø�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9ð	
ñô €Lõ „GˆL˜!˜T |Ð4Ñ4Ô4Ð4Ý”w˜|Ñ,Ô,ÐÝ�f˜m°FÐ;Ñ;Ô;Ð?OÒOÐOÐOÐOÐOÐOrZ   c            	      óš  — t          j        g d¢g d¢g d¢g d¢g d¢g¦  «        } t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          j        d| d         d         z
  | d         d         z   d| d         d	         z
  | d         d         z   d| d	         d	         z
  | d	         d         z   d| d
         d         z
  | d
         d	         z   d| d         d	         z
  | d         d         z   g¦  «        }t          j        |dd |¬¦  «         t          j        |¦  «        }t	          t          || |¬¦  «        |¦  «         d S )N)r¿  rÀ  rÁ  )g333333Ã¿rÁ  rÃ  )rÅ  rÁ  rÆ  )rØ  gö(\�Âõè¿gáz®GáÚ¿)r   r3   r3   r   r3   rÚ   r:   r   r3   r»   r§   rÈ  rÓ   )r?   r˜   rË  rÊ   r+   r   rÙ  s        rX   Ú@test_hinge_loss_multiclass_missing_labels_only_two_unq_in_y_truerÜ  Ü	  s†  € õ
 ”Hà!Ð!Ð!Ø!Ð!Ð!Ø!Ð!Ð!Ø!Ð!Ð!Ø!Ð!Ð!ð	
ñô €Mõ ŒX�o�o�oÑ&Ô&€FÝŒX�i�i�iÑ Ô €FÝ”8à�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9Ø�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9Ø�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9Ø�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9Ø�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9ð	
ñô €Lõ „GˆL˜!˜T |Ð4Ñ4Ô4Ð4Ý”w˜|Ñ,Ô,ÐÝÝ�6˜=°Ð8Ñ8Ô8Ð:Jñô ð ð ð rZ   c            
      óV  — g d¢} g d¢g d¢g d¢g d¢g d¢g d¢g}t          j        d|d         d         z
  |d         d         z   d|d         d         z
  |d         d         z   d|d         d         z
  |d         d	         z   d|d	         d         z
  |d	         d         z   d|d
         d	         z
  |d
         d         z   d|d         d         z
  |d         d	         z   g¦  «        }t          j        |dd |¬¦  «         t          j        |¦  «        }t	          | |¦  «        |k    sJ ‚d S )N)r&  r'  r(  r'  Úwhiter(  r¾  r×  rÄ  rÇ  r:   r   r3   r»   r§   r¦   rÈ  rÊ  )rW   r»  rÌ  rÍ  s       rX   Ú+test_hinge_loss_multiclass_invariance_listsrß  ü	  sw  € ð ?Ð>Ð>€Fà$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$ð€Mõ ”8à�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9Ø�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9Ø�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9Ø�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9Ø�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9Ø�˜aÔ  Ô#Ñ# m°AÔ&6°qÔ&9Ñ9ð	
ñ	ô 	€Lõ „GˆL˜!˜T |Ð4Ñ4Ô4Ð4Ý”w˜|Ñ,Ô,ÐÝ�f˜mÑ,Ô,Ð0@Ò@Ð@Ð@Ð@Ð@Ð@rZ   c                  óÌ
  — g d¢} t          j        ddgddgddgddgddgd	d
gg¦  «        }t          | |¦  «        }t          j        t	          j        t          j        | ¦  «        dk    |d d …df         ¦  «        ¦  «         }t          ||¦  «         g d¢} g d¢g d¢g d¢g}t          | |d¬¦  «        }t          |d¦  «         | dz  } |dz  }t          | |d¬¦  «        }t          |dd¬¦  «         d}t          j        |¦  «        dk    }t          j	        t          ¦  «        5  t          | |dd¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j	        t          |¬¦  «        5  t          |t          | t          j        |dd¦  «        ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        t          ¦  «        5  t          ddgddgd¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j	        t          ¦  «        5  t          ddgddgd¬¦  «        t           j        k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j	        t          ¦  «        5  t          ddgddgd¬¦  «        t           j        k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j	        t          ¦  «        5  t          g d¢g d¢g d ¢g d!¢gd¬¦  «        dk    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j	        t          ¦  «        5  t          g d¢g d"¢g d ¢g d!¢gd¬¦  «        t           j        k    sJ ‚	 d d d ¦  «         n# 1 swxY w Y   g d¢} d#d$gd%dgd&dgg}t          j        t          ¦  «        5  t          | |¦  «         d d d ¦  «         n# 1 swxY w Y   g d'¢} d#d$gd%dgd&dgd$d#gg}t          j	        t          |¬¦  «        5  t          | |¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |d(d¬¦  «         ddg} d#d$gd%dgg}t          j        ddgddgg¦  «        }d)}t          j        t          |¬¦  «        5  t          | |¦  «         d d d ¦  «         n# 1 swxY w Y   d#d$gd%dgd#d*gg}d+}t          |t          | |f t          j        t          j        |d d …df         ¦  «        ¦  «         }t          | |ddg¬,¦  «        }t          ||¦  «         g d-¢} g d.¢g d/¢g d0¢g}	t          j	        t          |¬¦  «        5  t          | |	g d1¢¬,¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |d2d¬¦  «         d S )3N)Únorá  rá  Úyesrâ  râ  r—   rß   rd   g{®Gáz„?g®Gáz®ï?rÇ   rr  gü©ñÒMbP?g+‡ÙÎ÷ï?râ  r:   rG  )rÞ   rÝ   rß   )rí   rÞ   rÞ   )rí   rß   râ   TrN  gèº•Ê€æ?r3   Fg.Lð—`’@rÃ   r   úy_pred values do not sum to one)rO  Úepsrå   r   ©rä  rÚ   rÄ   r4  r–   )r   r—   r—   rÞ   rÝ   rí   rá   ©ÚhamÚspamrè  rç  çL¢7÷œð?zly_true contains only one label \(2\). Please provide the true labels explicitly through the labels argument.râ   zBFound input variables with inconsistent numbers of samples: [3, 2]rÓ   rõ   )rÞ   rÝ   râ   )rí   r—   râ   )râ   rd   rß   rF  g¾PÀv0ñ?)r?   r˜   r   rÊ   r	   Úlogpmfr+   Úasarrayr¶   r÷   ÚFutureWarningrø   rË  rµ   rË   rÌ   Úlog)
rW   rV   ÚlossÚ	loss_trueÚuser_warning_msgré   Ú	error_strÚtrue_log_lossÚcalculated_log_lossÚy_score2s
             rX   Útest_log_lossrõ  
  sÓ  € à4Ð4Ð4€FÝŒXØ
ˆsˆ�c˜3�Z $¨ °°S¨z¸DÀ$¸<È%ÐQVÈÐXñô €Fõ �F˜FÑ#Ô#€DÝ”�Ô)­"¬(°6Ñ*:Ô*:¸eÒ*CÀVÈAÈAÈAÈqÈDÄ\ÑRÔRÑSÔSÐS€IÝ˜˜iÑ(Ô(Ð(ð ˆYˆY€FØˆoˆo˜˜˜°°°Ð@€FÝ�F˜F¨dÐ3Ñ3Ô3€DÝ˜˜iÑ(Ô(Ð(ð ˆa�K€FØ
ˆa�K€FÝ�F˜F¨eÐ4Ñ4Ô4€DÝ˜˜m°QÐ7Ñ7Ô7Ð7à8ÐåŒZ˜ÑÔ #Ò%€FÝ	Œ•mÑ	$Ô	$ð Að AÝ˜ °$¸CÐ@Ñ@Ô@ˆðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Aå	Œ•kÐ)9Ð	:Ñ	:Ô	:ð Oð OÝ˜D¥(¨6µ2´7¸6À3ÈÑ3LÔ3LÑ"MÔ"MÑNÔNÐNðOð Oð Oñ Oô Oð Oð Oð Oð Oð Oð Oøøøð Oð Oð Oð Oõ 
Œ•mÑ	$Ô	$ð 4ð 4Ý˜˜A˜  A ¨AÐ.Ñ.Ô.°!Ò3Ð3Ð3Ð3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4å	Œ•mÑ	$Ô	$ð 9ð 9Ý˜˜A˜  A ¨AÐ.Ñ.Ô.µ"´&Ò8Ð8Ð8Ð8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9å	Œ•mÑ	$Ô	$ð 9ð 9Ý˜˜A˜  A ¨AÐ.Ñ.Ô.µ"´&Ò8Ð8Ð8Ð8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9õ 
Œ•mÑ	$Ô	$ð Rð RÝ˜	˜	˜	 I I I¨y¨y¨y¸)¸)¸)Ð#DÈ!ÐLÑLÔLÐPQÒQÐQÐQÐQÐQðRð Rð Rñ Rô Rð Rð Rð Rð Rð Rð Røøøð Rð Rð Rð Rå	Œ•mÑ	$Ô	$ð 
ð 
å�Y�Y�Y   °	°	°	¸9¸9¸9Ð EÈ1ÐMÑMÔMÕQSÔQWÒWÐWÐWÐWÐWð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð ˆYˆY€FØ�Cˆj˜3 ˜* s¨C jÐ1€FÝ	Œ•zÑ	"Ô	"ð !ð !Ý�˜Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð ,Ð+Ð+€FØ�Cˆj˜3 ˜* s¨C j°3¸°*Ð=€FÝ	Œ•kÐ)9Ð	:Ñ	:Ô	:ð (ð (Ý˜ Ñ'Ô'ˆð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (å˜˜i°Ð3Ñ3Ô3Ð3ð �ˆV€FØ�Cˆj˜3 ˜*Ð%€FÝŒh˜˜c˜
 S¨# JÐ/Ñ0Ô0€Gð	Cð õ 
Œ•z¨Ð	3Ñ	3Ô	3ð !ð !Ý�˜Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð �Cˆj˜3 ˜* s¨C jÐ1€FØT€IÝ��H f¨fÐ5Ð5õ ”W�RœV G¨A¨A¨A¨q¨D¤MÑ2Ô2Ñ3Ô3Ð3€MÝ" 6¨7¸A¸q¸6ÐBÑBÔBÐÝÐ+¨]Ñ;Ô;Ð;ð ˆYˆY€FØ��   °/°/°/ÐB€HÝ	Œ•kÐ)9Ð	:Ñ	:Ô	:ð <ð <Ý˜ °°°Ð;Ñ;Ô;ˆð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <å˜˜i°Ð3Ñ3Ô3Ð3Ð3Ð3sÆ   Ä%EÅE	ÅE	Å+3F*Æ*F.Æ1F.ÇG8Ç8G<Ç?G<È'IÉIÉIÉ4'J(Ê(J,Ê/J,Ë$K=Ë=LÌLÌ!.MÍM Í#M ÎN,Î,N0Î3N0Ï$PÐPÐPÑ!Q>Ñ>RÒRÔ&UÕUÕUc                 ó®   — t          j        ddg| ¬¦  «        }|                     ¦   «         }t          ||d¬¦  «        }t          j        |¦  «        sJ ‚dS )z¸Check the behaviour of `eps="auto"` that changes depending on the input
    array dtype.
    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/24315
    r   r:   r÷  Úautorå  N)r?   r˜   rü  r   Úisfinite)Úglobal_dtyperW   rV   rî  s       rX   Útest_log_loss_eps_autorú  r
  sY   € õ ŒX�q˜!�f LÐ1Ñ1Ô1€FØ�[Š[‰]Œ]€Få�F˜F¨Ð/Ñ/Ô/€DÝŒ;�tÑÔÐÐÐÐÐrZ   c                  óÂ   — t          j        ddgt           j        ¬¦  «        } |                      ¦   «         }t	          | |d¬¦  «        }t          j        |¦  «        sJ ‚dS )z2Check the behaviour of `eps="auto"` for np.float16r   r:   r÷  r÷  rå  N)r?   r˜   Úfloat16rü  r   rø  )rW   rV   rî  s      rX   Útest_log_loss_eps_auto_float16rý  
  sY   € åŒX�q˜!�f¥B¤JÐ/Ñ/Ô/€FØ�[Š[‰]Œ]€Få�F˜F¨Ð/Ñ/Ô/€DÝŒ;�tÑÔÐÐÐÐÐrZ   c                  óØ  — t          j        g d¢¦  «        } t          j        ddgddgddgddgg¦  «        }t          t          fg}	 dd	lm}m} |                     ||f¦  «         n# t          $ r Y nw xY w|D ]p\  }} || ¦  «         ||¦  «        }}t          j	        t          d
¬¦  «        5  t          ||¦  «        }	d d d ¦  «         n# 1 swxY w Y   t          |	dd¬¦  «         Œqd S )Nræ  rÞ   rÝ   rí   r—   rá   rß   r   )Ú	DataFramer  rã  rå   ré  rÃ   r   )r?   r˜   r)   r  rÿ  r  r}  ÚImportErrorr¶   r÷   rø   r   r+   )
Úy_trÚy_prÚtypesrÿ  r  ÚTrueInputTypeÚPredInputTyperW   rV   rî  s
             rX   Útest_log_loss_pandas_inputr  ˆ
  sq  € åŒ8Ð2Ð2Ð2Ñ3Ô3€DÝŒ8�c˜3�Z # s ¨c°3¨Z¸#¸s¸ÐDÑEÔE€DÝ�]Ð+Ð,€EðØ,Ð,Ð,Ð,Ð,Ð,Ð,Ð,à�Š�f˜iÐ(Ñ)Ô)Ð)Ð)øÝð ð ð Øˆðøøøà(-ð 8ð 8Ñ$ˆ�}à&˜ tÑ,Ô,¨m¨m¸DÑ.AÔ.A�ˆÝŒ\�+Ð-NÐOÑOÔOð 	,ð 	,Ý˜F FÑ+Ô+ˆDð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,å˜D )°QÐ7Ñ7Ô7Ð7Ð7ð8ð 8s$   ÁA' Á'
A4Á3A4Â/CÃC	ÃC	c                  ó€  — t          j        g d¢¦  «        } t          j        g d¢¦  «        }t          j        | |z
  ¦  «        dz  t	          | ¦  «        z  }t          t          | | ¦  «        d¦  «         t          t          | |¦  «        |¦  «         t          t          d| z   |¦  «        |¦  «         t          t          d| z  dz
  |¦  «        |¦  «         t          j        t          ¦  «        5  t          | |dd …         ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          | |dz   ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          | |dz
  ¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        g d¢¦  «        } t          j        g d¢¦  «        }d	}t          j        t          |¬
¦  «        5  t          | |¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          dgdg¦  «        d¦  «         t          t          dgdg¦  «        d¦  «         t          t          dgdg¦  «        d¦  «         t          t          dgdgd¬¦  «        d¦  «         t          t          dgdgd¬¦  «        d¦  «         d S )N)r   r:   r:   r   r:   r:   )rß   r£   rd   râ   r²   gffffffî?r3   r~   r²   r:   )r   r:   r3   r   )r£   rí   rá   rÞ   zMOnly binary classification is supported. The type of the target is multiclassrå   r´   rá   g{®GázÄ?r   r¿  ÚfooÚbarrç   )
r?   r˜   r   Únormrr   r+   r   r¶   rË   rÌ   )rW   rV   Ú
true_scorerÐ  s       rX   Útest_brier_score_lossr  ›
  s”  € åŒXÐ(Ð(Ð(Ñ)Ô)€FÝŒXÐ5Ð5Ð5Ñ6Ô6€FÝ”˜V f™_Ñ-Ô-°Ñ2µS¸±[´[Ñ@€JåÕ(¨°Ñ8Ô8¸#Ñ>Ô>Ð>ÝÕ(¨°Ñ8Ô8¸*ÑEÔEÐEÝÕ(¨¨v©°vÑ>Ô>À
ÑKÔKÐKÝÕ(¨¨V©°a©¸Ñ@Ô@À*ÑMÔMÐMÝ	Œ•zÑ	"Ô	"ð -ð -Ý˜ ¨¨¨¤Ñ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -å	Œ•zÑ	"Ô	"ð /ð /Ý˜ ¨#¡Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /å	Œ•zÑ	"Ô	"ð /ð /Ý˜ ¨#¡Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /õ ŒX�l�l�lÑ#Ô#€FÝŒXÐ*Ð*Ð*Ñ+Ô+€FàWð õ 
Œ•z¨Ð	7Ñ	7Ô	7ð )ð )Ý˜ Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )õ Õ(¨"¨°¨uÑ5Ô5°tÑ<Ô<Ð<ÝÕ(¨!¨¨s¨eÑ4Ô4°dÑ;Ô;Ð;ÝÕ(¨!¨¨s¨eÑ4Ô4°dÑ;Ô;Ð;ÝÕ(¨%¨°3°%À5ÐIÑIÔIÈ4ÑPÔPÐPÝÕ(¨%¨°3°%À5ÐIÑIÔIÈ4ÑPÔPÐPÐPÐPsH   Ã1DÄDÄDÄ:EÅEÅ!EÅ>FÆF"Æ%F"Ç2HÈHÈHc                  óš   — d} t          j        t          | ¬¦  «        5  t          g d¢g d¢¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz%y_pred contains classes not in y_truerå   r_  r–   )r¶   r÷   rø   r   rù   s    rX   Ú#test_balanced_accuracy_score_unseenr  ¾
  s˜   € Ø
1€CÝ	Œ•k¨Ð	-Ñ	-Ô	-ð 6ð 6Ý 	 	 	¨9¨9¨9Ñ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð 6ð 6s   žA Á AÁAzy_true,y_pred)r†   r‡   r†   r‡   )r†   r†   r†   r‡   )r†   r‡   rˆ   r‡   c                 óˆ  — t          | |dt          j        | ¦  «        ¬¦  «        }t          ¦   «         5  t	          | |¦  «        }d d d ¦  «         n# 1 swxY w Y   |t          j        |¦  «        k    sJ ‚t	          | |d¬¦  «        }t	          | t          j        | | d         ¦  «        ¦  «        }|||z
  d|z
  z  k    sJ ‚d S )Nr¿   rÆ   T)Úadjustedr   r:   )r!   r?   Úuniquer/   r   r¶   r·   Ú	full_like)rW   rV   Úmacro_recallÚbalancedr  Úchances         rX   Útest_balanced_accuracy_scorer  Ä
  s  € õ  Ø� µ´	¸&Ñ0AÔ0Aðñ ô €Lõ 
Ñ	Ô	ð ;ð ;å*¨6°6Ñ:Ô:ˆð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð •v”} \Ñ2Ô2Ò2Ð2Ð2Ð2Ý& v¨vÀÐEÑEÔE€HÝ$ V­R¬\¸&À&ÈÄ)Ñ-LÔ-LÑMÔM€FØ˜ 6Ñ)¨a°&©jÑ9Ò9Ð9Ð9Ð9Ð9Ð9s   ´AÁAÁAr—   r½   ))FTrŒ  )r~   r²   )ÚzeroÚonec                 ó\  — t           j                             d¦  «        }d|d         }}|                     ||d¬¦  «        }| t          u r|                     |¬¦  «        }n|                     ¦   «         } | |||¬¦  «        }t          j        t          j        |¦  «        ¦  «        rJ ‚dS )	zÀCheck that the metric works with different types of `pos_label`.

    We can expect `pos_label` to be a bool, an integer, a float, a string.
    No error should be raised for those types.
    é*   rk  r´   T)r‹  ÚreplacerŠ  rç   N)	r?   rC   rD   Úchoicer   Úuniformrü  Úanyr„  )r{   r½   rR   rO   rè   rW   rV   r…  s           rX   Ú*test_classification_metric_pos_label_typesr  Ù
  s§   € õ* Œ)×
Ò
 Ñ
#Ô
#€CØ˜w rœ{ˆy€IØ�ZŠZ˜ i¸ˆZÑ>Ô>€FØÕ!Ð!Ð!à—’ )�Ñ,Ô,ˆˆà—’‘”ˆØˆV�F˜F¨iÐ8Ñ8Ô8€FÝŒv•b”h˜vÑ&Ô&Ñ'Ô'Ð'Ð'Ð'Ð'Ð'rZ   Úscoringrƒ  r3   )r¥   r‚   c                 óª   — t          j        d¬¦  «        \  }}t          dd¬¦  «                             ||¦  «        }t	          |||| dd¬¦  «         dS )	aZ  Check that we validate `np.nan` properly for classification metrics.

    With `n_jobs=2` in cross-validation, the `np.nan` used for the singleton will be
    different in the sub-process and we should not use the `is` operator but
    `math.isnan`.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/27563
    r   )r9   r»   )Ú	max_depthr9   r3   ré  )r   Ún_jobsÚerror_scoreN)r
   Úmake_classificationr(   rH   r%   )r   rM   rN   Ú
classifiers       rX   Ú9test_classification_metric_division_by_zero_nan_validatonr'  ú
  s^   € õ& Ô'°QÐ7Ñ7Ô7�D€A€qÝ'°!À!ÐDÑDÔD×HÒHÈÈAÑNÔN€JÝ�J  1¨g¸aÈWÐUÑUÔUÐUÐUÐUrZ   )NF)£rÓ  rŒ   Ú	functoolsr   Ú	itertoolsr   r   r   Únumpyr?   r¶   Úscipyr   Úscipy.spatial.distancer   r@  Úscipy.statsr	   Úsklearnr
   r   Úsklearn.datasetsr   Úsklearn.exceptionsr   Úsklearn.metricsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   Úsklearn.metrics._classificationr$   Úsklearn.model_selectionr%   Úsklearn.preprocessingr&   r'   Úsklearn.treer(   Úsklearn.utils._mockingr)   Úsklearn.utils._testingr*   r+   r,   r-   r.   r/   Úsklearn.utils.extmathr0   Úsklearn.utils.validationr1   rY   r|   r�   ÚmarkÚparametrizer   r’   rž   r°   r¹   rÑ   r×   rë   r˜   rñ   ró   rú   r  r  r0  rC  rH  rV  r_  re  ri  rp  r  r�  r†  rˆ  r�  r¨  rµ  rÁ  r×  rß  rä  rç  rì  rð  ró  rú  r  r  r  r  r!  r$  r+  r.  r1  r6  r8  r:  r<  rB  rJ  rM  r[  r]  rb  re  rm  rs  r}  r‚  r…  r‡  r‰  r�  r‘  r”  r–  r˜  r   r¶  r¸  r¼  rÎ  rÑ  rÕ  rÚ  rÜ  rß  rõ  rú  rý  r  r  r  r  r  r'  r¸   rZ   rX   ú<module>r<     s  ðØ 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø !Ð !Ð !Ð !Ð !Ð !à !Ð !Ð !Ð !Ð !Ð !Ð !Ð !Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð. ;Ð :Ð :Ð :Ð :Ð :Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø /Ð /Ð /Ð /Ð /Ð /Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð .Ð -Ð -Ð -Ð -Ð -Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7ð)'ð )'ð )'ð )'ð`>Dð >Dð >DðBWð Wð Wð< „×Ò˜¨6°1°a¸¼Ð*@ÑAÔAðð ñ BÔAðð7ð 7ð 7ð
ð 
ð 
ðD ðð ñ „ðð$ ð*Jð *Jñ „ð*JðZ ðMð Mñ „ðMð,>ð >ð >ð6 „×ÒØð ˆLˆLØˆBŒHà#�O�OØ#�O�OØ#�O�OØ#�O�Oð	ñô ð
	
ð .Ð-Ð-Ø=Ð=Ð=ð	
ðñô ð(9ð 9ñ)ô ð(9ð „×ÒØð ˆOˆOØˆBŒHà#�O�OØ#�O�OØ#�O�OØ#�O�OØ#�O�Oðñô ð	
ð ˆIˆIØˆOˆOð	
ðñô ð*;ð ;ñ+ô ð*;ð
ð 
ð 
ð =ð =ð =ð*	=ð 	=ð 	=ð Oð  Oð  OðF&Sð &Sð &SðRTð Tð Tð< „×ÒØ+ðð ð ñô ð%ð %ñô ð%ð;ð ;ð ;ð& „×ÒØð
 #˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6Ø"˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6ðð ð Að	
ð #˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6Ø"˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6ðð ð Ið	
ð #˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6Ø"˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6ðð ð :ð	
ð #˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6Ø"˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6ðð ð Ið	
ð #˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6Ø"˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6ðð ð Oð	
ðE)ñ,ô ,ðZ*ð *ñ[,ô ,ðZ*ð „×ÒØð #˜"œ( ? ? ?Ñ3Ô3Ø"˜"œ( ? ? ?Ñ3Ô3ðð ð
<ð		
ðñô ð*ð *ñô ð*ð"ð "ð "ð2ð ð ð>4ð 4ð 4ð
 „×Ò˜¨1¨a°´¨.Ñ9Ô9Ø„×ÒÐ)¨a¨S°1°#¨J¸¸R¸Ð+AÑBÔBØ„×ÒØàØˆ� !Ð$Ñ$Ô$ØØð	ñô ð'ð 'ñô ñ CÔBñ :Ô9ð'ð „×ÒÐ)¨a¨S°1°#¨J¸¸R¸Ð+AÑBÔBØ„×ÒØàØˆ� !Ð$Ñ$Ô$ØØð	ñô ðð ñô ñ CÔBððð ð ð$2ð $2ð $2ðN Rð  Rð  RðF5ð 5ð 5ðp „×Ò˜ c¨5 \Ñ2Ô2ðUð Uñ 3Ô2ðUðB7(ð 7(ð 7(ðt „×Ò˜Ð$SÐ$SÐ$SÑTÔTð,ð ,ñ UÔTð,ð0ð 0ð 0ð"(ð (ð (ð".ð .ð .ð& „×ÒØà	Ð;Ð<Ø
ˆQˆÐAÐBðð 
Ð'Ð(ð ñ ô ð8ð 8ñô ð8ð „×ÒØˆt�a˜�V˜Y˜Y˜YÐ'Ð-MÐ-MÐ-Mð ñ ô ð%ð %ñô ð%ðð ð ð6 „×Ò˜Ð"AÐ"AÐ"AÑBÔBð0ð 0ñ CÔBð0ð"%ð %ð %ð4%ð %ð %ð$%ð %ð %ð(%ð %ð %ð6 %ð  %ð  %ðF%ð %ð %ð,%ð %ð %ð.Xð Xð XðIð Ið Ið ð%ð %ñ „ð%ð<6ð 6ð 6ðBð Bð Bð(%Dð %Dð %DðPJð Jð JðZ"ð "ð "ðJð ð ð.+ð +ð +ð „×ÒÐ8¸6À8Ð:LÑMÔMð	2ð 	2ñ NÔMð	2ð ð?Uð ?Uñ „ð?UðD ð=ð =ñ „ð=ð@ Ø„×ÒØ+Ø�&˜& 2¤6¨2¬6Ð"2Ð3ñô ð[ð [ñ	ô ñ „ð
[ð| „×Ò˜ ! Ñ%Ô%Ø„×Ò˜Ð$MÐ$MÐ$MÑNÔNØ„×Ò˜¨1¨a°´¨.Ñ9Ô9ð!5ð !5ñ :Ô9ñ OÔNñ &Ô%ð!5ðH „×Ò˜Ð$MÐ$MÐ$MÑNÔNð"ð "ñ OÔNð"ð& „×Ò˜¨1¨a°´¨.Ñ9Ô9ðWð Wñ :Ô9ðWð@3ð 3ð 3ð8_0ð _0ð _0ðD „×Ò˜¨1¨a°´¨.Ñ9Ô9ð< ð < ñ :Ô9ð< ð~ „×Ò˜¨6°1°a¸¼Ð*@ÑAÔAð#ð #ñ BÔAð#ðL „×Ò˜¨6°1°a¸¼Ð*@ÑAÔAð$ð $ñ BÔAð$ðN „×Ò˜¨6°1°a¸¼Ð*@ÑAÔAð$(ð $(ñ BÔAð$(ðN'ð 'ð 'ð>_ð _ð _ðD=ð =ð =ð8ð 8ð 8ðAð Að Að6*ð *ð *ð"Nð Nð Nð8Pð Pð Pð4ð ð ð@Að Að Að8W4ð W4ð W4ðt
ð 
ð 
ðð ð ð8ð 8ð 8ð& Qð  Qð  QðF6ð 6ð 6ð „×ÒØà	Ð	Ð	Ð3Ð3Ð3Ð4Ø	Ð	Ð	Ð3Ð3Ð3Ð4Ø	Ð	Ð	Ð3Ð3Ð3Ð4ðñô ð
:ð 
:ñô ð
:ð „×ÒØàØØˆ� #Ð&Ñ&Ô&Ø'ØØØðñô ð „×ÒØÐCÐCÐCñô ð(ð (ñô ñô ð(ð$ „×ÒØàˆ�H¨B¬FÐ3Ñ3Ô3Øˆ�K a°r´vÐ>Ñ>Ô>Øˆ�O°2´6Ð:Ñ:Ô:Øˆ�L°´Ð7Ñ7Ô7ð	ñô ðVð Vñô ðVð Vð VrZ   