§
    rŠtj" ã                   ó�  — 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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 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/m0Z0m1Z1m2Z2m3Z3 d dl4m5Z5m6Z6m7Z7 d dl8m9Z9 d dl:m;Z;m<Z< d dl=m>Z> d dl?m@ZA d dl?mBZBmCZC d dlDmEZE d dlFmGZGmHZHmIZImJZJmKZKmLZL d dlMmNZN d dlOmPZPmQZQ d dlRmSZS �d
d„ZTd„ ZUe
jV         W                    ddd de	jX        g¦  «        d„ ¦   «         ZYe
jV         W                    dd gd fd dgdfg d!¢dfg¦  «        d"„ ¦   «         ZZd#„ Z[d$„ Z\e
jV         ]                    d%¦  «        d&„ ¦   «         Z^e
jV         ]                    d%¦  «        d'„ ¦   «         Z_e
jV         ]                    d%¦  «        d(„ ¦   «         Z`d)„ Zae
jV         W                    d*g d+¢ e	jb        g d,¢g d-¢g d.¢g d/¢g¦  «        fg d0¢g d1¢fg¦  «        d2„ ¦   «         Zce
jV         W                    d*g d3¢ e	jb        g d/¢g d/¢g d4¢g d4¢g d5¢g¦  «        fg d6¢g d7¢fg¦  «        d8„ ¦   «         Zdd9„ Zed:„ Zfd;„ Zgd<„ Zhe
jV         W                    d=eP¦  «        e
jV         W                    d>eQ¦  «        d?„ ¦   «         ¦   «         Zid@„ Zje
jV         W                    dAg dB¢¦  «        dC„ ¦   «         ZkdD„ ZldE„ Zme
jV         W                    dF e	jb        g dG¢¦  «         e	jb        g dG¢¦  «        dHœdIf e	jb        g dG¢¦  «         e	jb        g dJ¢¦  «        dHœdKf e	jb        g dG¢¦  «         e	jb        g dL¢¦  «        dHœdMf e	jb        g dJ¢¦  «         e	jb        g dG¢¦  «        dHœdNfg¦  «        dO„ ¦   «         Zne
jV         W                    dP e	jb        g dQ¢¦  «         e	jb        g dR¢¦  «        dHœdSfg¦  «        dT„ ¦   «         ZodU„ ZpdV„ Zqe
jV         W                    dWdXdYidZdYid[dYd\œd]d^d\œdYdYd\œd]d_d\œg¦  «        d`„ ¦   «         Zre
jV         W                    dad]d]d\œd]fe	js        dYd\œe	js        fd_dYd\œd_fe	jX        e	jX        d\œe	jX        fe	jX        e	jX        fg¦  «        db„ ¦   «         Zte
jV         W                    dad]d]d\œd]fe	js        dYd\œdYfe	js        dcd\œdcfe	jX        e	jX        d\œe	jX        fe	jX        e	jX        fg¦  «        dd„ ¦   «         Zude„ Zv eLe¬f¦  «        e
jV         W                    dgdgdhz  digdhz  z   djgdkz  ddigdfdjgdkz  djgdkz  ddfdgdhz  digdhz  z   dgdhz  djgdhz  z   ddigdfdgdhz  digdhz  z   dgdhz  djgdhz  z   ddigdlfg¦  «        e
jV         W                    dWdYe	jX        g¦  «        dm„ ¦   «         ¦   «         ¦   «         Zwdn„ Zxdo„ Zye
jV         W                    dd de	jX        g¦  «        e
jV         W                    dpd gd gfg¦  «        e
jV         W                    dqe' ee(d¬r¦  «        e1e2g¦  «        ds„ ¦   «         ¦   «         ¦   «         Zze
jV         W                    dpd gd gfg¦  «        e
jV         W                    dqe' ee(d¬r¦  «        e1e2g¦  «        dt„ ¦   «         ¦   «         Z{du„ Z|dv„ Z}dw„ Z~dx„ Ze
jV         W                    dydzd{g¦  «        d|„ ¦   «         Z€d}„ Z�e
jV         W                    d~g d¢¦  «        d€„ ¦   «         Z‚d�„ Zƒd‚„ Z„dƒ„ Z…e
jV         W                    d„g d…fdjd†gd‡fgdˆd‰g¬Š¦  «        d‹„ ¦   «         Z†dŒ„ Z‡e
jV         W                    d�g dŽ¢¦  «        d�„ ¦   «         Zˆd�„ Z‰d‘„ ZŠd’„ Z‹d“„ ZŒd”„ Z�d•„ ZŽd–„ Z�d—„ Z�d˜„ Z‘e
jV         ]                    d%¦  «        d™„ ¦   «         Z’dš„ Z“d›„ Z”dœ„ Z•d�„ Z–dž„ Z—dŸ„ Z˜d „ Z™e
jV         W                    d¡d¢d£g¦  «        d¤„ ¦   «         Zše
jV         ]                    d%¦  «        d¥„ ¦   «         Z›e
jV         ]                    d%¦  «        d¦„ ¦   «         Zœe
jV         ]                    d%¦  «        e
jV         W                    d§d¨d¢d©e	jX        e	jX        fg¦  «        dª„ ¦   «         ¦   «         Z�e
jV         W                    d«dg¦  «        e
jV         W                    d~g d¬¢¦  «        e
jV         W                    dd de	jX        g¦  «        d­„ ¦   «         ¦   «         ¦   «         Zže
jV         W                    d~g d¬¢¦  «        d®„ ¦   «         ZŸe
jV         W                    dd de	jX        g¦  «        d¯„ ¦   «         Z d°„ Z¡d±„ Z¢e
jV         W                    dd de	jX        g¦  «        d²„ ¦   «         Z£e
jV         W                    ddd de	jX        g¦  «        d³„ ¦   «         Z¤e
jV         W                    ddd de	jX        g¦  «        d´„ ¦   «         Z¥e
jV         W                    ddd de	jX        g¦  «        dµ„ ¦   «         Z¦d¶„ Z§d·„ Z¨d¸„ Z©d¹„ Zªe
jV         W                    dº ej«        dgd gdgd gg¦  «        d»f ej«        d gdgdigdgg¦  «        d¼f ej«        g d½¢g d¾¢g d¿¢g¦  «        dÀfg¦  «        dÁ„ ¦   «         Z¬dÂ„ Z­dÃ„ Z®dÄ„ Z¯dÅ„ Z°dÆ„ Z±dÇ„ Z²dÈ„ Z³dÉ„ Z´e
jV         W                    d�e	jµ        e	j¶        e	j·        g¦  «        dÊ„ ¦   «         Z¸e
jV         W                    d�e	jµ        e	j¶        e	j·        g¦  «        dË„ ¦   «         Z¹e
jV         W                    dÌg d¾¢g d¾¢fg d¾¢dd gd dgdd ggfg d!¢g dÍ¢g d¾¢g dÎ¢gfg¦  «        dÏ„ ¦   «         ZºdÐ„ Z»dÑ„ Z¼dÒ„ Z½dÓ„ Z¾dÔ„ Z¿dÕ„ ZÀdÖ„ ZÁd×„ ZÂe
jV         W                    dØg dÙ¢g dÚ¢fg dÛ¢g dÚ¢fg dÚ¢g dÛ¢fg¦  «        dÜ„ ¦   «         ZÃe
jV         W                    dqe+e' ee(dc¬r¦  «        e0e1e2e"g¦  «        e
jV         W                    dÝg dÞ¢¦  «        dß„ ¦   «         ¦   «         ZÄe
jV         W                    dà e	jb        d dg¦  «         e	jb        dd g¦  «        dYf e	jb        d dg¦  «         e	jb        d dg¦  «        d]f e	jb        d dg¦  «         e	jb        d d g¦  «        dYf e	jb        d d g¦  «         e	jb        d d g¦  «        d]fg¦  «        dá„ ¦   «         ZÅe
jV        jÆ        e
jV         W                    dâ e-e'e	jX        ¬ã¦  «         e-e(die	jX        ¬ä¦  «         e-e1e	jX        ¬ã¦  «         e-e2e	jX        ¬ã¦  «        g¦  «        då„ ¦   «         ¦   «         ZÇdæ„ ZÈdç„ ZÉdè„ ZÊdé„ ZËdê„ ZÌdë„ ZÍdì„ ZÎe
jV         W                    díg dî¢g dï¢ddðfg dñ¢g dï¢ddòfg dó¢g dï¢ddôfg dõ¢g dö¢dd÷fg dõ¢g dø¢ddùfg dú¢dcdcgdcdcgdcdcggddûfg dü¢g dý¢gg dþ¢g dÿ¢gd�d fg �d¢g �d¢g �d¢g �d¢gd dig�dfg �d¢g �d¢g �d¢g �d¢gd g�dfg	¦  «        �d„ ¦   «         ZÏ�d„ ZÐe
jV         W                    �d eC¦   «         ¦  «        �d	„ ¦   «         ZÑdS (  é    N)Úpartial)ÚchainÚpermutationsÚproduct)ÚlinalgÚsparse)Úhamming)Ú	bernoulli)ÚdatasetsÚsvm)Úconfig_context)ÚCalibratedClassifierCV)Ú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Úd2_brier_scoreÚd2_log_loss_score)Úcross_val_score)ÚLabelBinarizerÚlabel_binarize)ÚDecisionTreeClassifier©Údevice)Úget_namespaceÚ)yield_namespace_device_dtype_combinations)ÚMockDataFrame)Ú_array_api_for_testsÚassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚignore_warnings)Ú_nanaverage)ÚCSC_CONTAINERSÚCSR_CONTAINERS)Ú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          t          j        d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 an SVC

    If binary is True restrict to a binary classification problem instead of a
    multiclass classification problem
    Né   é%   r   éÈ   Úlinear)ÚkernelÚrandom_stateFé   )ÚensembleÚcvé   )r   Ú	load_irisÚdataÚtargetÚshapeÚnpÚaranger;   ÚshuffleÚintÚrandomÚRandomStateÚc_Úrandnr   r   ÚSVCÚfitÚpredict_probaÚpredict)ÚdatasetÚbinaryÚXÚyÚ	n_samplesÚ
n_featuresÚpÚrngÚhalfÚclfÚy_pred_probaÚy_predÚy_trues                úg/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/metrics/tests/test_classification.pyÚmake_predictionre   H   s�  € ð €åÔ$Ñ&Ô&ˆàŒ€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õ !ÝŒ�x¨aÐ0Ñ0Ô0¸5ÀQðñ ô €Cð —7’7˜1˜U˜d˜Uœ8 Q u¨ u¤XÑ.Ô.×<Ò<¸Q¸t¸u¸u¼XÑFÔF€Làð *ð $ A A A q DÔ)ˆà�[Š[˜˜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©rW   rX   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   )rl   rj   rk   rm   gá?gDÖ~WGÞ?g]žè3«pà?)ÚsetosaÚ
versicolorÚ	virginicaú	macro avgÚaccuracyzweighted avgT)ÚlabelsÚtarget_namesÚoutput_dictrx   rt   rj   rw   rm   )r   rG   re   r   rK   rL   Úlenrz   ÚkeysÚ
isinstanceÚfloatr4   rN   )Úirisrc   rb   Ú_Úexpected_reportÚreportÚkeyÚmetrics           rd   Ú,test_classification_report_dictionary_outputr†   z   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ÐCrf   Úzero_divisionÚwarnrF   c                 óB  — g d¢g d¢}}t          j        d¬¦  «        5 }t          j        dd¬¦  «         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Úalwaysz.+Use `zero_division`)Úmessage)r‡   r{   rˆ   rF   z7Use `zero_division` parameter to control this behavior.)ÚwarningsÚcatch_warningsÚfilterwarningsr   r|   Ústrr’   )r‡   rc   rb   r�   ÚitemÚmsgs         rd   Ú0test_classification_report_zero_division_warningr™   »   s%  € à$�_�_ o o oˆF€FÝ	Ô	 ¨Ð	-Ñ	-Ô	-ð °õ 	Ô Ð2IÐJÑJÔJÐJÝØ�F¨-ÀTð	
ñ 	
ô 	
ð 	
ð ˜FÒ"Ð"Ý�v‘;”; ’?�?�?�?Øð 0ð 0�ØO�Ø�c $¤,Ñ/Ô/Ð/Ð/Ð/Ð/Ð/ð0ð ÐÐ�:ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   žA)BÂBÂBzlabels, show_micro_avgT©r   rF   r=   c                 ót   — ddgddg}}t          ||| d¬¦  «        }|rd|v sJ ‚d|vsJ ‚dS d|v sJ ‚d|vsJ ‚dS )a3  Check the behaviour of passing `labels` as a superset or subset of the labels.
    WHen a superset, we expect to show the "accuracy" in the report while it should be
    the micro-averaging if this is a subset.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/27927
    r   rF   T)ry   r{   z	micro avgrx   N©r   )ry   Úshow_micro_avgrc   rb   rƒ   s        rd   Ú1test_classification_report_labels_subset_supersetrž   Ï   sƒ   € ð ˜�V˜a ˜VˆF€Få" 6¨6¸&ÈdÐSÑSÔS€FØð )Ø˜fÐ$Ð$Ð$Ð$Ø Ð'Ð'Ð'Ð'Ð'Ð'à˜VÐ#Ð#Ð#Ð#Ø &Ð(Ð(Ð(Ð(Ð(Ð(rf   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   rF   rF   ©rF   r   rF   ©r   r   rF   ç      à?rF   r   )rK   Úarrayr   Úlogical_notÚzerosrJ   ©Úy1Úy2s     rd   Ú.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Ð6rf   c            	      ó˜  — t          d¬¦  «        \  } }}t          | |d ¬¦  «        \  }}}}t          |ddgd¦  «         t          |ddgd¦  «         t          |d	d
gd¦  «         t          |ddg¦  «         i ddifD ]Ì}t	          j        ¦   «         5  t	          j        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 d d ¦  «         n# 1 swxY w Y   ŒÍd S )NT©rX   ©Úaverageg\�Âõ(\ç?g333333ë?r=   g)\�Âõ(ì?gÃõ(\�Âå?çš™™™™™é?gR¸…ëQè?é   r®   rX   ÚerrorÚbetaé   é   )re   r"   r5   r6   r“   r”   Úsimplefilterr#   r$   r   r4   r   )rc   rb   r�   r]   ÚrÚfÚsÚkwargsÚpsÚrsÚfss              rd   Ú%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˜(Ñ#Ô#Ð#ð
 ˜	 8Ð,Ð-ð ð ˆÝÔ$Ñ&Ô&ð 	ð 	ÝÔ! 'Ñ*Ô*Ð*å  ¨Ð:Ð:°6Ð:Ð:ˆBÝ% b¨$°Ñ2Ô2Ð2å˜f fÐ7Ð7°Ð7Ð7ˆBÝ% b¨$°Ñ2Ô2Ð2å˜& &Ð3Ð3¨FÐ3Ð3ˆBÝ% b¨$°Ñ2Ô2Ð2åÝ˜F FÐ=Ð=°Ð=°fÐ=Ð=Ø˜R‘ "Ñ$¨¨r©	°B©Ñ7Øñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	øðð s   ÂB D>Ä>E	ÅE	z1ignore::sklearn.exceptions.UndefinedMetricWarningc                  ó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ç      ð?rF   r   ©r²   ç        éÿÿÿÿÚinfg     jø@)r#   r$   r   r   r   ÚpytestÚapprox© rf   rd   Ú+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ò ð ð ð ð ð rf   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)rF   rC   rC   r=   )rF   rF   rC   r=   r³   ©Úclasses)r   rF   r=   rC   r´   ©ry   r®   )rÁ   r¿   r¿   r£   rÁ   Úmacro)ÚmicroÚweightedÚsamplesrÏ   r   )NrÌ   rÍ   rÏ   é   rÂ   r´   r    ©rF   r   r   ©rF   rF   rF   r¡   rF   ©r®   ry   )ç      è?rF   ç«ªªªªªê?)r+   rK   rL   Ú	enumerater$   r5   Úmeanr4   rÄ   ÚraisesÚ
ValueErrorr¤   r"   )rc   rb   Ú
y_true_binÚ
y_pred_binrH   ÚiÚactualr®   r]   r¶   r·   r�   s               rd   Ú$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)rF   rF   r=   rC   )rF   rC   rC   rC   r³   rÉ   rF   rC   ©ry   r£   r¿   r­   rÔ   rÌ   çUUUUUUå?rÎ   rÍ   )rÌ   rÎ   rÍ   )r+   rK   rL   rÖ   r   r$   r5   r4   )	rc   rb   rÚ   rÛ   rH   rÜ   Ú	recall_13Ú
recall_allr®   s	            rd   Ú&test_precision_recall_f_ignored_labelsrä   W  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rf   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`.)r=   r=   rF   ©rF   r=   r   rš   ©rF   r=   rF   ©r=   r   rF   ©çffffffæ?çš™™™™™É?çš™™™™™¹?©çš™™™™™Ù?ç333333Ó?rï   ©rì   r¯   rì   ©rë   rï   r£   )rî   rî   rë   )rì   rë   rê   z.multiclass-multioutput format is not supported©Úmatchr=   ©Ú	pos_labelN)rK   r¤   rÄ   rØ   rÙ   r   )rc   Úy_scoreÚerr_msgs      rd   Ú-test_average_precision_score_non_binary_classrø   n  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   rF   r=   ré   rí   rð   rñ   )r   r   r   r   rF   rF   rF   rF   rF   rF   rF   )r   rì   rì   rî   r£   ç333333ã?rú   rp   rp   rF   rF   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.
    rF   N©r   ©rc   rö   s     rd   Ú-test_average_precision_score_duplicate_valuesrþ   ‰  s%   € õ8 # 6¨7Ñ3Ô3°qÒ8Ð8Ð8Ð8Ð8Ð8rf   )r=   r=   rF   rF   r   )rî   r£   rï   )r¯   r£   rï   r    )r£   r£   rú   c                 ó2   — t          | |¦  «        dk    sJ ‚d S )Nr¿   rü   rý   s     rd   Ú(test_average_precision_score_tied_valuesr   ¨  s%   € õ: # 6¨7Ñ3Ô3°sÒ:Ð:Ð:Ð:Ð:Ð:rf   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ç   ©rF   r=   r=   r=   rÌ   ©rõ   r®   )rÄ   ÚwarnsÚUserWarningr"   ©r˜   s    rd   Ú(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é   rC   é   é   r   r=   ©Údecimalç=
×£p=â?)r   r6   ÚflattenrK   Úsqrtr    r5   )rc   rb   ÚcmÚtpÚfpÚfnÚtnÚnumÚdenÚtrue_mccÚmccs              rd   Ú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Ð7rf   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rÆ   ©r–   ©Ú.0rZ   s     rd   ú
<listcomp>z0test_confusion_matrix_binary.<locals>.<listcomp>ê  ó   € Ð	!Ð	!Ð	!�Q�#ˆa‰&Œ&Ð	!Ð	!Ð	!rf   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rÆ   r  r  s     rd   r   z0test_confusion_matrix_binary.<locals>.<listcomp>ê  ó   € Ð#;Ð#;Ð#;¨q¥C¨¡F¤FÐ#;Ð#;Ð#;rf   ©re   ©rc   rb   r�   r  s       rd   Útest_confusion_matrix_binaryr&  Ø  sr   € å'¨tÐ4Ñ4Ô4Ñ€FˆF�Að8ð 8ð 8ð 	€Dˆ�ÑÔÐØ€DÐ	!Ð	!˜&Ð	!Ñ	!Ô	!Ð#;Ð#;°FÐ#;Ñ#;Ô#;Ñ<Ô<Ð<Ð<Ð<rf   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  rC   r
  ©r!   r6   )rc   rb   r  s      rd   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ÐHrf   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rÆ   r  r  s     rd   r   z;test_multilabel_confusion_matrix_binary.<locals>.<listcomp>ö  r!  rf   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rÆ   r  r  s     rd   r   z;test_multilabel_confusion_matrix_binary.<locals>.<listcomp>ö  r#  rf   r$  r%  s       rd   Ú'test_multilabel_confusion_matrix_binaryr,  í  su   € å'¨tÐ4Ñ4Ô4Ñ€FˆF�AðIð Ið Ið 	€Dˆ�ÑÔÐØ€DÐ	!Ð	!˜&Ð	!Ñ	!Ô	!Ð#;Ð#;°FÐ#;Ñ#;Ô#;Ñ<Ô<Ð<Ð<Ð<rf   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Ð   é   rC   é   r°   r=   é   )Ú0Ú2Ú1©r   r=   rF   rà   )r5  r6  r7  Ú3)r   r=   rF   rC   rs   r   r)  )rc   rb   Ústring_typer  ry   s        rd   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˜&Ð!ð	ñ	
ô 	
ð 	
ð 	
ð 	
rf   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rÆ   r  r  s     rd   r   z?test_multilabel_confusion_matrix_multiclass.<locals>.<listcomp>  r!  rf   c                 ó,   — g | ]}t          |¦  «        ‘ŒS rÆ   r  r  s     rd   r   z?test_multilabel_confusion_matrix_multiclass.<locals>.<listcomp>  r#  rf   T)r:  )Fr$  r%  s       rd   Ú+test_multilabel_confusion_matrix_multiclassr=  ù  s|   € å'¨uÐ5Ñ5Ô5Ñ€FˆF�Að
ð 
ð 
ð 
ð6 	€Dˆ�ÑÔÐØ€DÐ	!Ð	!˜&Ð	!Ñ	!Ô	!Ð#;Ð#;°FÐ#;Ñ#;Ô#;ÈÐNÑNÔNÐNÐNÐNrf   Úcsc_containerÚcsr_containerc                 óJ  — 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¡   ©r   rF   r   ©rF   rF   r   rÑ   r    r¢   )r=   rF   rC   rF   r   r=   T©Ú
samplewiserà   )ry   rD  )Úsample_weightrD  rC   rÐ   )rK   r¤   r!   r6   )r>  r?  rc   rb   Ú
y_true_csrÚ
y_pred_csrÚ
y_true_cscÚ
y_pred_cscrE  Úreal_cmÚtruesÚpredsÚ
y_true_tmpÚ
y_pred_tmpr  s                  rd   Ú+test_multilabel_confusion_matrix_multilabelrO    s…  € õ
 ŒX�y�y�y ) ) )¨Y¨Y¨YÐ7Ñ8Ô8€FÝŒX�y�y�y ) ) )¨Y¨Y¨YÐ7Ñ8Ô8€FØ�˜vÑ&Ô&€JØ�˜vÑ&Ô&€JØ�˜vÑ&Ô&€JØ�˜vÑ&Ô&€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ÐRrf   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¡   rA  rB  rÑ   r    r¢   úinconsistent numbers of samplesrò   rF   r=   ©rE  z)Sample weights must be 1D array or scalar©rF   r=   rC   )r=   rC   r´   )rC   r´   r³   z%All labels must be in \[0, n labels\)rÂ   rà   rC   zSamplewise metricsrš   ræ   TrC  z'multiclass-multioutput is not supported)r=   rF   r   ©rF   r   r=   )rK   r¤   rÄ   rØ   rÙ   r!   )rc   rb   r÷   s      rd   Ú'test_multilabel_confusion_matrix_errorsrU  F  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Ð)TÐ	UÑ	UÔ	Uð 
ð 
Ý#Ø�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·   rW  )Úallr·   g��eÇq¼?)NrÜ   r=   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   r3   ÚdtypeÚkind)r\  Úcm_dtypeÚexpected_resultsÚy_testrb   r  s         rd   Útest_confusion_matrix_normalizerc  d  so   € ð ˆYˆY˜‰]€FÝ•%� i i iÑ0Ô0Ð1Ñ2Ô2€FÝ	˜& &°IÐ	>Ñ	>Ô	>€BÝ�BÐ(Ñ)Ô)Ð)ØŒ8Œ=˜HÒ$Ð$Ð$Ð$Ð$Ð$rf   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   rF   rF   rF   rF   )r   r   r   r   r   r   r   r   rV  r[  ç       @r±   rX  r¿   )r   ÚsumrÄ   rÅ   r“   r”   rµ   ÚRuntimeWarning)rb  rb   Úcm_trueÚcm_preds       rd   Ú,test_confusion_matrix_normalize_single_classrj  u  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c                  óž   — g d¢} g d¢}t          j        t          d¬¦  «        5  t          || ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z8Test `confusion_matrix` warns when only one label found.©r   r   r   r   zA single label was found inrò   N)rÄ   r  r  r   )rb  rb   s     rd   Ú"test_confusion_matrix_single_labelrm  ˆ  sž   € àˆ\ˆ\€FØˆ\ˆ\€Få	Œ•kÐ)FÐ	GÑ	GÔ	Gð )ð )Ý˜ Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð )ð )s   ¤AÁAÁ	Azparams, warn_msg)rF   rF   rF   r   r   r   ©rc   rb   z?`positive_likelihood_ratio` is ill-defined and set to `np.nan`.)r   r   r   r   r   r   zdNo samples were predicted for the positive class and `positive_likelihood_ratio` is set to `np.nan`.©r   r   r   rF   rF   rF   z?`negative_likelihood_ratio` is ill-defined and set to `np.nan`.z9No samples of the positive class are present in `y_true`.c                 ó†   — 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     rd   Útest_likelihood_ratios_warningsrt  ‘  s’   € õX 
Œ•k¨Ð	2Ñ	2Ô	2ð *ð *ÝÐ)Ð) &Ð)Ð)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *ó   œ6¶:½:zparams, err_msg)r   rF   r   rF   r   ©rF   rF   r   r   r=   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 rq  )rÄ   rØ   rÙ   r   )rr  r÷   s     rd   Útest_likelihood_ratios_errorsrx  Á  s‘   € õ$ 
Œ•z¨Ð	1Ñ	1Ô	1ð *ð *ÝÐ)Ð) &Ð)Ð)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *ru  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 )NrF   rC   r   r  r=   é
   r  g«ªªªªªö?g_B{	í%ä?gê-�™—q=)Úrtolr¿   é   rÁ   r³   rR  gUUUUUU@gÇqÇqÜ?)rK   r¤   r   r3   r6   Únanr¦   )rc   rb   ÚposÚnegrE  s        rd   Útest_likelihood_ratiosr€  ×  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˜Ñ!Ô!Ð!Ð!Ð!rf   c                  ór  — t          j        g d¢¦  «        } t          j        g d¢¦  «        }t          | |d¬¦  «        \  }}|t          j        d¦  «        k    sJ ‚t          j        g d¢¦  «        } t          j        g d¢¦  «        }t          | |d¬¦  «        \  }}|t          j        d¦  «        k    sJ ‚dS )zTest that class_likelihood_ratios returns the worst scores `1.0` for both LR+ and
    LR- when `replace_undefined_by=1` is set.rB  rÑ   rF   ©Úreplace_undefined_byr¿   rÒ   N)rK   r¤   r   rÄ   rÅ   )rc   rb   Úpositive_likelihood_ratior�   Únegative_likelihood_ratios        rd   Ú1test_likelihood_ratios_replace_undefined_by_worstr†  ð  sÔ   € õ
 ŒX�i�i�iÑ Ô €FÝŒX�i�i�iÑ Ô €Få#:Ø�¨Qð$ñ $ô $Ñ Ð˜qð %­¬°cÑ(:Ô(:Ò:Ð:Ð:Ð:õ ŒX�i�i�iÑ Ô €FÝŒX�i�i�iÑ Ô €Få#:Ø�¨Qð$ñ $ô $Ñ €AÐ ð %­¬°cÑ(:Ô(:Ò:Ð:Ð:Ð:Ð:Ð:rf   rƒ  úLR+rÁ   úLR-g      À)r‡  rˆ  r¿   r}  re  c                 óî   — t          j        ddg¦  «        }t          j        ddg¦  «        }d}t          j        t          |¬¦  «        5  t          ||| ¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zžTest that class_likelihood_ratios raises a `ValueError` if the input dict for
    `replace_undefined_by` is in the wrong format or contains impossible values.rF   r   zGThe dictionary passed as `replace_undefined_by` needs to be in the formrò   r‚  N)rK   r¤   rÄ   rØ   rÙ   r   )rƒ  rc   rb   r˜   s       rd   Ú6test_likelihood_ratios_wrong_dict_replace_undefined_byrŠ    sÇ   € õ ŒX�q˜!�fÑÔ€FÝŒX�q˜!�fÑÔ€Fà
S€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð 
ð 
ÝØ�FÐ1Eð	
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   Á
A*Á*A.Á1A.zreplace_undefined_by, expectedc                 ó  — t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          ||| ¬¦  «        \  }}t          j        |¦  «        rt          j        |¦  «        sJ ‚dS |t	          j        |¦  «        k    sJ ‚dS )z€Test that the `replace_undefined_by` param returns the right value for the
    positive_likelihood_ratio as defined by the user.rB  rÑ   r‚  N©rK   r¤   r   ÚisnanrÄ   rÅ   )rƒ  Úexpectedrc   rb   r„  r�   s         rd   Ú0test_likelihood_ratios_replace_undefined_by_0_fpr�     sŸ   € õ ŒX�i�i�iÑ Ô €FÝŒX�i�i�iÑ Ô €Få#:Ø�Ð-Að$ñ $ô $Ñ Ð˜qõ 
„x�ÑÔð DÝŒxÐ1Ñ2Ô2Ð2Ð2Ð2Ð2Ð2à(­F¬M¸(Ñ,CÔ,CÒCÐCÐCÐCÐCÐCrf   r£   c                 ó  — t          j        g d¢¦  «        }t          j        g d¢¦  «        }t          ||| ¬¦  «        \  }}t          j        |¦  «        rt          j        |¦  «        sJ ‚dS |t	          j        |¦  «        k    sJ ‚dS )z€Test that the `replace_undefined_by` param returns the right value for the
    negative_likelihood_ratio as defined by the user.rÑ   rÒ   r‚  NrŒ  )rƒ  rŽ  rc   rb   r�   r…  s         rd   Ú0test_likelihood_ratios_replace_undefined_by_0_tnr‘  <  sŸ   € õ ŒX�i�i�iÑ Ô €FÝŒX�i�i�iÑ Ô €Få#:Ø�Ð-Að$ñ $ô $Ñ €AÐ õ 
„x�ÑÔð DÝŒxÐ1Ñ2Ô2Ð2Ð2Ð2Ð2Ð2à(­F¬M¸(Ñ,CÔ,CÒCÐCÐCÐCÐCÐCrf   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   é(   rF   é<   rr   rz  é2   gƒÀÊ¡EÖ?rC   r  r=   r´   rà   r¿   é.   é,   é4   é    é   gÉå?¤é?g+‡ÙÎí?r@   ©Úweightsg®Ø_vOî?Ú	quadraticgœ¢#¹ü‡î?)rK   r¤   r   r4   Úappend)r¨   r©   Úkappas      rd   Útest_cohen_kappar   X  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¸Èðñ ô ð ð ð rf   )ÚcategoryÚ	test_caser³   r=   rC   rz  r@   c                 ó°   — | \  }}}}t          j        |¦  «        t          j        |¦  «        }}t          |||||¬¦  «        }t          ||d¬¦  «         dS )aM  Test that cohen_kappa_score handles divisions by 0 correctly by returning the
    `replace_undefined_by` param. (The first test case covers the first possible
    location in the function for an occurrence of a division by zero, the last three
    test cases cover a zero division in the second possible location in the
    function.)ry   rœ  rƒ  T)Ú	equal_nanN)rK   r¤   r   r3   )r¢  rƒ  r¨   r©   ry   rœ  Úscores          rd   Útest_cohen_kappa_undefinedr¦  w  sl   € ð4 (Ñ€BˆˆF�GÝŒX�b‰\Œ\�2œ8 B™<œ<ˆ€BåØ
Ø
ØØØ1ðñ ô €Eõ �EÐ/¸4Ð@Ñ@Ô@Ð@Ð@Ð@rf   c                  ó  — ddg} t          j        dgdz  dgdz  z   ¦  «        }t          j        dgdz  ¦  «        }t          j        t          d¬¦  «        5  t          ||| ¬¦  «         d	d	d	¦  «         n# 1 swxY w Y   ddg} t          j        dgdz  dgdz  z   ¦  «        }t          j        dgdz  dgdz  z   ¦  «        }t          j        t          d
¬¦  «        5  t          ||| ¬¦  «         d	d	d	¦  «         d	S # 1 swxY w Y   d	S )zZTest that cohen_kappa_score raises UndefinedMetricWarning when a division by 0
    occurs.rF   r=   r³   rC   rz  zC`y2` contains no labels that are present in both `y1` and `labels`.rò   rà   Nz6`y1`, `y2` and `labels` have only one label in common.)rK   r¤   rÄ   r  r   r   ©ry   r¨   r©   s      rd   Ú&test_cohen_kappa_zero_division_warningr©  ž  s®  € ð �ˆV€FÝ	Œ�1�#˜‘'˜Q˜C !™GÑ#Ñ	$Ô	$€BÝ	Œ�1�#˜‘(Ñ	Ô	€BÝ	ŒÝØSð
ñ 
ô 
ð 1ð 1õ 	˜"˜b¨Ð0Ñ0Ô0Ð0ð	1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð �ˆV€FÝ	Œ�1�#˜‘'˜Q˜C !™GÑ#Ñ	$Ô	$€BÝ	Œ�1�#˜‘'˜Q˜C !™GÑ#Ñ	$Ô	$€BÝ	ŒÝØFð
ñ 
ô 
ð 1ð 1õ 	˜"˜b¨Ð0Ñ0Ô0Ð0ð	1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1s$   ÁA6Á6A:Á=A:ÃC>Ã>DÄDc                  ó  — ddg} t          j        dgdz  dgdz  z   ¦  «        }t          j        dgdz  ¦  «        }t          j        t          d¬¦  «        5  t          ||| ¬	¦  «         d
d
d
¦  «         d
S # 1 swxY w Y   d
S )zLTest that correct error is raised when users pass labels that are not in y1.rF   r=   r‹   r³   rŒ   rz  z6At least one label in `labels` must be present in `y1`rò   rà   N)rK   r¤   rÄ   rØ   rÙ   r   r¨  s      rd   Ú(test_cohen_kappa_score_error_wrong_labelr«  µ  sØ   € à�ˆV€FÝ	Œ�3�%˜!‘)˜s˜e a™iÑ'Ñ	(Ô	(€BÝ	Œ�3�%˜"‘*Ñ	Ô	€BÝ	ŒÝÐRð
ñ 
ô 
ð 1ð 1õ 	˜"˜b¨Ð0Ñ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1s   ÁA7Á7A;Á>A;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.
    r±   ©r‡   N)r“   r”   rµ   rK   r�  )r…   rc   rb   r‡   Úresults        rd   Ú!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…   rc   rb   r®  s       rd   Útest_zero_division_nan_warningr±  Ù  s‘   € õ 
ŒÕ,Ñ	-Ô	-ð >ð >Ø�˜ °fÐ=Ñ=Ô=ˆð>ð >ð >ñ >ô >ð >ð >ð >ð >ð >ð >øøøð >ð >ð >ð >à�SŠ=ˆ=ˆ=ˆ=ˆ=ˆ=s   š5µ9¼9c                 ó  — t           j                             | ¦  «        }|                     ddd¬¦  «        }|                     ddd¬¦  «        }t	          t          ||¦  «        t          j        ||¦  «        d         d¦  «         d S )Nr   r=   rr   ©Úsize©r   rF   rz  )rK   rO   rP   Úrandintr4   r    Úcorrcoef)Úglobal_random_seedr^   rc   rb   s       rd   Ú-test_matthews_corrcoef_against_numpy_corrcoefr¹  ì  s„   € Ý
Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ�[Š[˜˜A Bˆ[Ñ'Ô'€FØ�[Š[˜˜A Bˆ[Ñ'Ô'€FåÝ˜& &Ñ)Ô)­2¬;°v¸vÑ+FÔ+FÀtÔ+LÈbñô ð ð ð rf   c                 óŽ  ‡
‡— t           j                             | ¦  «        }|                     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   r=   rr   r³  rR  c           	      ó®   •— g | ]Q}t          ‰¦  «        D ]?}t          ‰¦  «        D ]-}‰||f         ‰||f         z  ‰||f         ‰||f         z  z
  ‘Œ.Œ@ŒRS rÆ   ©Úrange)r  ÚkÚmÚlÚCÚNs       €€rd   r   z9test_matthews_corrcoef_against_jurman.<locals>.<listcomp>  s’   ø€ ð 	
ð 	
ð 	
àÝ˜1‘X”Xð	
ð 	
ð Ý˜1‘X”Xð		
ð 	
ð ð ˆa�ˆdŒG�a˜˜1˜”gÑ  ! Q $¤¨!¨A¨q¨D¬'Ñ 1Ñ1ð	
ð 	
ð 	
ð 	
ð 	
rf   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      €€€rd   r   zDtest_matthews_corrcoef_against_jurman.<locals>.<listcomp>.<listcomp>  ó8   ø€ ÐLÐLÐL !½¸q¹¼ÐLÐL°AÀQÈ!ÂVÀV�a˜˜1˜”gÀVÀVÀVÀVrf   ©rf  rK   r½  ©r  r¾  rÁ  rÂ  s    @€€rd   r   z9test_matthews_corrcoef_against_jurman.<locals>.<listcomp>
  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ð	
ð 	
ð 	
rf   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      €€€rd   r   zDtest_matthews_corrcoef_against_jurman.<locals>.<listcomp>.<listcomp>  rÇ  rf   rÈ  rÉ  s    @€€rd   r   z9test_matthews_corrcoef_against_jurman.<locals>.<listcomp>  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ð	
ð 	
ð 	
rf   rz  )rK   rO   rP   r¶  Úrandr   r|   rf  r½  r  r    r4   )r¸  r^   rc   rb   rE  Úcov_ytypÚcov_ytytÚcov_ypypÚ
mcc_jurmanÚmcc_oursrÁ  rÂ  s             @@rd   Ú%test_matthews_corrcoef_against_jurmanrÒ  ö  s‰  øø€ õ Œ)×
Ò
Ð 2Ñ
3Ô
3€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Ð1rf   c           	      óR  — t           j                             | ¦  «        }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 )Nc                 ó"   — g | ]}|d k    rdnd‘ŒS )r   r‹   rŒ   rÆ   ©r  rÜ   s     rd   r   z*test_matthews_corrcoef.<locals>.<listcomp>  s$   € ÐIÐIÐI¨�Q˜!’V�Vˆcˆc ÐIÐIÐIrf   r   r=   rr   r³  r¿   c                 ó"   — g | ]}|d k    rdnd ‘ŒS )r‹   rŒ   rÆ   rÕ  s     rd   r   z*test_matthews_corrcoef.<locals>.<listcomp>%  s$   € Ð;Ð;Ð;¨q˜˜cš˜�#�# sÐ;Ð;Ð;rf   rÂ   r‹   rŒ   rÉ   rl  rÁ   )rF   r   rF   rF   r   rF   rF   rF   r   rF   rF   rF   rF   rF   rF   rF   r   rF   rF   rF   )rF   rF   rF   r   r   rF   rF   rF   rF   r   rF   rF   rF   r   rF   rF   rF   r   rF   rF   rF   rz  rR  )rK   rO   rP   r¶  r4   r    r+   Úwherer|   rÄ   rØ   ÚAssertionError)r¸  r^   rc   Ú
y_true_invÚy_true_inv2Úy_1Úy_2Úmasks           rd   Útest_matthews_corrcoefrÞ    s  € Ý
Œ)×
Ò
Ð 2Ñ
3Ô
3€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                             | ¦  «        }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´   c                 ó4   •— g | ]}t          ‰|z   ¦  «        ‘ŒS rÆ   )Úchr)r  rÜ   Úord_as     €rd   r   z5test_matthews_corrcoef_multiclass.<locals>.<listcomp>D  s#   ø€ ÐIÐIÐI �c�%˜!‘)‰nŒnÐIÐIÐIrf   r   rr   r³  r¿   )r   r   rF   rF   r=   r=   )r=   r=   r   r   rF   rF   g      à¿)rF   rF   r   r   r   r   iôÿÿÿi€  rš   )rC   rC   rC   rÁ   ©	r   rF   r=   r   rF   r=   r   rF   r=   )	rF   rF   rF   r=   r=   r=   r   r   r   )r   r   rF   rF   r=   rv  ©rF   rF   rF   rF   r   rR  rÂ   rù   ©rF   rF   r   r   )rK   rO   rP   Úordr¶  r4   r    r  )r¸  r^   Ú	n_classesrc   Ú
y_pred_badÚ
y_pred_minrb   rÛ  rÜ  rE  râ  s             @rd   Ú!test_matthews_corrcoef_multiclassrê  @  s  ø€ Ý
Œ)×
Ò
Ð 2Ñ
3Ô
3€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Èñô ð ð ð rf   Ún_pointséd   i'  c                 óÒ  ‡— t           j                             |¦  «        Š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 )Nc                 óö   — t          | |¦  «        }|d         }|d         }|d         }t          | ¦  «        }||z   |z  }||z   |z  }||z  ||z  z
  }	||z  d|z
  z  d|z
  z  }
|	t          j        |
¦  «        z  S )N©rF   rF   )rF   r   rµ  rF   )r   r|   rK   r  )rc   rb   Úconf_matrixÚtrue_posÚ	false_posÚ	false_negrë  Úpos_rateÚactivityÚmcc_numeratorÚmcc_denominators              rd   Ú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Ð7rf   c                 óŠ   •— ‰                      | ¦  «        }|d‰                      | ¦  «        dz
  z  z   }|dk    }|dk    }||fS )Nrë   r£   )Úrandom_sample)rë  Úx_trueÚx_predrc   rb   r^   s        €rd   Ú	random_ysz2test_matthews_corrcoef_overflow.<locals>.random_ys‰  sT   ø€ Ø×"Ò" 8Ñ,Ô,ˆØ˜# ×!2Ò!2°8Ñ!<Ô!<¸sÑ!BÑCÑCˆØ˜#’ˆØ˜#’ˆØ�vˆ~Ðrf   rÁ   r¿   )rÁ   r¿   re  )rK   rO   rP   Úrepeatr4   r    )rë  r¸  rø  rý  Úarrrc   rb   r^   s          @rd   Útest_matthews_corrcoef_overflowr   x  s   ø€ õ Œ)×
Ò
Ð 2Ñ
3Ô
3€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ÐTrf   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áÚ?r=   )çHáz®Gé?g
×£p=
·?rp   )çìQ¸…ëé?ç333333Ã?r  )ri   ro   rr   rF   rÍ   r  gö(\�Âõà?rÌ   rú   gR¸…ëQà?rÎ   g®GázÞ?rÏ   r£   ©r®   r²   r8  rË   )r  g=
×£p=Ú?r  )r  rp   rì   )r  r  r  )ri   rr   ro   )re   r"   r5   r6   r#   r$   r   rÄ   rØ   rÙ   r   )
rc   rb   r�   r]   r¶   r·   r¸   rº   r»   r¼   s
             rd   Ú)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   rF   rF   )rC   r   rF   r=   )ry   Úwarn_forr®   r   ©r   rF   rF   r   )rK   r¤   r"   r6   )r®   rc   rb   r]   r¶   r·   r¸   s          rd   Ú;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Ñ+Ô+Ð+Ð+Ð+ð €rf   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   rF   r   r   rF   rF   r   rF   r   r   rF   r   rF   r   rF   )rF   rF   r   rF   r   rF   rF   rF   rF   r   rF   r   rF   r   rF   r­   rÌ   rÎ   r›  )rK   r¤   r"   r×   Úbincountr®   )
rc   rb   rº   r»   r¼   r�   r]   r¶   r·   rm   s
             rd   Ú.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Ð/Ñ/Ô/Ò/Ð/Ð/Ð/Ð/Ð/rf   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)rY  )r   rF   r=   r   rF   r=   )r=   r   rF   rF   r=   r   rÌ   r­   rÁ   r=   rÆ   )rK   Úseterrr¤   r4   r#   r$   r   )Úold_error_settingsrc   rb   s      rd   Útest_zero_precision_recallr  ô  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   rF   rà   r0  r´   rC   r=   r4  ri   )re   r   r6   rK   Úmax)rc   rb   r�   r  Úextra_labels        rd   Ú.test_confusion_matrix_multiclass_subset_labelsr    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Ð,Ñ-Ô-Ð-Ð-Ð-rf   zlabels, err_msgz+'labels' should contain at least one label.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à   )re   rÄ   rØ   rÙ   r   )ry   r÷   rc   rb   r�   s        rd   Útest_confusion_matrix_errorr    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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)ÚcopyrR  l   ÿÿ ©r^  ©r   r   rï  l   þÿ l   ÿÿÿÿ éþÿÿÿ)rK   Úonesr|   r   r^  Úint64Úbool_Úint32Úuint64ÚastypeÚfloat32Úfloat64ÚobjectÚfullÚuint32)rZ   Úweightr  r^  s       rd   Útest_confusion_matrix_dtyper.  &  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Š>ˆ>ˆ>ˆ>ˆ>ˆ>rf   r^  )Ú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)	rF   r   r   rF   r   rF   rF   r   rF   r  )	r   r   rF   rF   r   rF   rF   rF   rF   r#  N)rÄ   ÚimportorskiprK   r¤   ÚSeriesr   r6   )r^  ÚpdÚ	y_ndarrayrc   Úy_predictedÚoutputÚexpected_outputs          rd   Ú%test_confusion_matrix_pandas_nullabler;  A  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˜Ñ/Ô/Ð/Ð/Ð/rf   c            	      óâ   — t          j        ¦   «         } t          | d¬¦  «        \  }}}d}t          ||t	          j        t          | j        ¦  «        ¦  «        | j        ¬¦  «        }||k    sJ ‚d S )NFrh   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
©ry   rz   ©r   rG   re   r   rK   rL   r|   rz   ©r€   rc   rb   r�   r‚   rƒ   s         rd   Ú%test_classification_report_multiclassr@  S  sƒ   € åÔÑÔ€DÝ'°¸UÐCÑCÔCÑ€FˆF�Að
€Oõ #ØØÝŒy�˜TÔ.Ñ/Ô/Ñ0Ô0ØÔ&ð	ñ ô €Fð �_Ò$Ð$Ð$Ð$Ð$Ð$rf   c                  óJ   — g d¢g d¢}} d}t          | |¦  «        }||k    sJ ‚d S )N)	r   r   r   rF   rF   rF   r=   r=   r=   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œ   )rc   rb   r‚   rƒ   s       rd   Ú.test_classification_report_multiclass_balancedrB  m  sG   € Ø0Ð0Ð0Ð2MÐ2MÐ2MˆF€Fð
€Oõ # 6¨6Ñ2Ô2€FØ�_Ò$Ð$Ð$Ð$Ð$Ð$rf   c                  óŠ   — t          j        ¦   «         } t          | d¬¦  «        \  }}}d}t          ||¦  «        }||k    sJ ‚d S )NFrh   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   rG   re   r   r?  s         rd   Ú:test_classification_report_multiclass_with_label_detectionrD    sX   € ÝÔÑÔ€DÝ'°¸UÐCÑCÔCÑ€FˆF�Að
€Oõ # 6¨6Ñ2Ô2€FØ�_Ò$Ð$Ð$Ð$Ð$Ð$rf   c            	      óä   — t          j        ¦   «         } t          | d¬¦  «        \  }}}d}t          ||t	          j        t          | j        ¦  «        ¦  «        | j        d¬¦  «        }||k    sJ ‚d S )NFrh   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³   )ry   rz   Údigitsr>  r?  s         rd   Ú1test_classification_report_multiclass_with_digitsrG  “  s†   € åÔÑÔ€DÝ'°¸UÐCÑCÔCÑ€FˆF�Að
€Oõ #ØØÝŒy�˜TÔ.Ñ/Ô/Ñ0Ô0ØÔ&Øðñ ô €Fð �_Ò$Ð$Ð$Ð$Ð$Ð$rf   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Š   ©rz   ©re   rK   r¤   r   )rc   rb   r�   r‚   rƒ   s        rd   Ú7test_classification_report_multiclass_with_string_labelrN  ®  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Ø�_Ò$Ð$Ð$Ð$Ð$Ð$rf   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
rM  ©rc   rb   r�   ry   r‚   rƒ   s         rd   Ú8test_classification_report_multiclass_with_unicode_labelrQ  Ñ  sp   € Ý'¨uÐ5Ñ5Ô5Ñ€FˆF�AåŒXÐ:Ð:Ð:Ñ;Ô;€FØ�FŒ^€FØ�FŒ^€Fð
€Oõ # 6¨6Ñ2Ô2€FØ�_Ò$Ð$Ð$Ð$Ð$Ð$rf   c                  ó®   — t          d¬¦  «        \  } }}t          j        g d¢¦  «        }||          } ||         }d}t          | |¦  «        }||k    sJ ‚d S )NFr¬   )rI  ÚgreengreengreengreengreenrK  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
rM  rP  s         rd   Ú<test_classification_report_multiclass_with_long_string_labelrT  ç  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Ø�_Ò$Ð$Ð$Ð$Ð$Ð$rf   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   r=   r   r   ©r   r=   r=   r   r   ©zclass 0zclass 1zclass 2z6labels size, 2, does not match size of target_names, 3rò   r   r=   r=  )rÄ   r  r  r   )rc   rb   rz   r˜   s       rd   Ú=test_classification_report_labels_target_names_unequal_lengthrY  þ  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 )NrV  rW  rX  zaNumber of classes, 2, does not match size of target_names, 3. Try specifying the labels parameterrò   rL  )rÄ   rØ   rÙ   r   )rc   rb   rz   r÷   s       rd   Ú@test_classification_report_no_labels_target_names_unequal_lengthr[    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´   r•  rF   r   )r\   r[   rç  rB   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ç  r[   r�   rc   rb   r‚   rƒ   s          rd   Ú%test_multilabel_classification_reportr]    s   € à€IØ€Iå.Ø 	°YÈQðñ ô �I€A€võ /Ø 	°YÈQðñ ô �I€A€vð€Oõ # 6¨6Ñ2Ô2€FØ�_Ò$Ð$Ð$Ð$Ð$Ð$rf   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   rF   )rK   r¤   r%   r¥   r¦   rJ   r§   s     rd   Ú$test_multilabel_zero_one_loss_subsetr_  5  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Ð5rf   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¢   rF   rC   çUUUUUUÅ?r   rá   r£   rR  gUUUUUUµ?gUUUUUUí?)rK   r¤   r   r¦   rJ   Ú
zeros_likeÚ
sp_hamming)r¨   r©   Úws      rd   Útest_multilabel_hamming_lossre  C  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ÐArf   c                  ó  — t          j        g d¢¦  «        } t          j        g d¢¦  «        }t          j        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   rF   r   rF   rF   z;pos_label=2 is not a valid label. It should be one of [0 1]rò   rX   r=   ©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   rF   rF   r   r=   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Í   rC   )
rK   r¤   ÚreÚescaperÄ   rØ   rÙ   r   r  r  )rc   rb   r÷   Úmsg1Úmsg2Úmsg3r˜   s          rd   Útest_jaccard_score_validationro  W  s‰  € ÝŒX�o�o�oÑ&Ô&€FÝŒX�o�o�oÑ&Ô&€FÝŒiÐUÑVÔV€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<Á<B ÂB ÃC8Ã8C<Ã?C<ÅE+Å+E/Å2E/ÆF2Æ2F6Æ9F6ÇG;Ç;G?È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Ô   rF   r   rÑ   rÒ   rÌ   rá   rÍ   rú   g«ªªªªªâ?r=   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.)rK   r¤   r   r¥   r¦   rJ   r4   r6   rÄ   rØ   rÙ   r  r   r]  )Úrecwarnr¨   r©   rc   rb   rm  rn  r˜   s           rd   Útest_multilabel_jaccard_scorerr    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)Úantrt  Úcatru  rt  ru  Úbirdrv  )ru  rt  ru  ru  rt  rv  rv  ru  )rt  rv  ru  rt  rv  ru  r   rF   r=   )rÌ   rÎ   rÍ   NrÓ   rÎ   r­   )r*   rT   Ú	transformr   r   Úzipr4   rK   r¤   r7   r]  )rq  rc   rb   ry   ÚlbrÚ   rÛ   Úmulti_jaccard_scoreÚbin_jaccard_scoreÚmulti_labels_listÚbin_labels_listr®   Úm_labelÚb_labels                 rd   Ú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 )NrF   r   rX   r­   rÁ   zOJaccard is ill-defined and being set to 0.0 due to no true or predicted samplesrò   r  r¿   )rF   r   rF   rF   r   )rF   r   rF   rF   rF   rÔ   rg  r£   )r   rÄ   r  r   rK   r¤   r4   r]  )rq  r˜   rc   rb   s       rd   Ú!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Á   )rK   r¤   rÄ   r  r   r   rÅ   )rc   rb   r˜   r¥  s       rd   Ú(test_jaccard_score_zero_division_warningr†    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   )rF   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„  r±   rÏ   r…  )	rK   r¤   r“   r”   rµ   r   r   rÄ   rÅ   )r‡   Úexpected_scorerc   rb   r¥  s        rd   Ú*test_jaccard_score_zero_division_set_valuer‰    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©rF   r   r   r   ©r   rF   r   r   r
  ©rF   r   rF   r   r­   )rÁ   r£   r¿   rÁ   r=   )rÁ   r¿   r¿   rÁ   )rÁ   rá   rF   rÁ   )rF   rF   rF   rF   ©r²   r®   )r   r  rF   r   rÌ   g      Ø?r£   g«ªªªªªÚ?rÍ   r³   r´   rÎ   r›  rÏ   ©rK   r¤   r"   r5   r   r4   r×   r®   ©rc   rb   r]   r¶   r·   r¸   Úf2rm   s           rd   Ú+test_precision_recall_f1_score_multilabel_1r’  $  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ÐTrf   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 )Nr‹  rŒ  r  ©r   r   r   rF   rå  r­   )rÁ   r¿   rÁ   rÁ   r=   )rÁ   r£   rÁ   rÁ   )rÁ   g…ëQ¸å?rÁ   rÁ   ©rF   r=   rF   r   rŽ  )r   çš™™™™™á?r   r   rÍ   ç      Ð?r³   r´   rÌ   g      À?ra  rÎ   r£   rn   r›  rÏ   g¥½Á&SÅ?r�  r�  s           rd   Ú+test_precision_recall_f1_score_multilabel_2r˜  g  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Ð>Ñ>Ô>ÀÈñô ð ð ð rf   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	¦  «         d}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 ‚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
¦  «         d}t          |d|z  ¦  «         |�J ‚t          t	          ||d	d| ¬¦  «        t          |	|
¬¦  «        ¦  «         t          ||d¬¦  «        \  }}}}t          |d¦  «         t          |d¦  «         t          |d¦  «         |�J ‚d }t          t	          ||d	d| ¬¦  «        |d	¦  «         d S )!NrŒ  r‹  r  rl  r”  r…  r¿   rÁ   r=   r£   r   rá   rF   r•  ©r²   r®   r‡   r–  rÌ   rC   ç      ø?gªªªªªªÚ?r›  rÍ   rq   r³   r´   rÎ   rÔ   gªªªªªª@rÏ   r­   rn   gZd;ßOÕ?)rK   r¤   r"   r5   r   r�  r4   r8   )r‡   Úzero_division_expectedrc   rb   r]   r¶   r·   r¸   Ú
expected_fr‘  rm   Úvalue_to_sumÚvalues_to_averageÚexpected_results                 rd   Ú7test_precision_recall_f1_score_with_an_empty_predictionr¡  ¨  s  € õ Œ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Ø€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Ø €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ÑÔÐØÐÝ˜˜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À]ð	
ñ 	
ô 	
ð 	Ø	ñô ð ð ð rf   r²   )rÌ   rÍ   rÎ   rÏ   c                 óX  — t          j        d¦  «        }t          j        |¦  «        }t          j        ¦   «         5  t          j        d¦  «         t          |||| |¬¦  «        \  }}}}t          ||| ||¬¦  «        }	d d d ¦  «         n# 1 swxY w Y   |�J ‚t          j        |¦  «        r!||||	fD ]}
t          j        |
¦  «        sJ ‚Œd S t          |¦  «        }t          ||¦  «         t          ||¦  «         t          ||¦  «         t          |	t          |¦  «        ¦  «         d S )N©rr   rC   r±   ©r®   r²   r‡   rš  )rK   r¦   rb  r“   r”   rµ   r"   r   r�  r   r4   )r²   r®   r‡   rc   rb   r]   r¶   r·   r¸   Úfbetar…   s              rd   Ú"test_precision_recall_f1_no_labelsr¦    s—  € õ ŒX�gÑÔ€FÝŒ]˜6Ñ"Ô"€Få	Ô	 Ñ	"Ô	"ð 
ð 
ÝÔ˜gÑ&Ô&Ð&å4ØØØØØ'ð
ñ 
ô 
‰
ˆˆ1ˆa�õ ØØØØØ'ð
ñ 
ô 
ˆð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð" ˆ9ˆ9ˆ9õ 
„x�ÑÔð Ø˜!˜Q Ð&ð 	$ð 	$ˆFÝ”8˜FÑ#Ô#Ð#Ð#Ð#Ð#Øˆå˜-Ñ(Ô(€MÝ˜˜=Ñ)Ô)Ð)Ý˜˜=Ñ)Ô)Ð)Ý˜˜=Ñ)Ô)Ð)å˜�u ]Ñ3Ô3Ñ4Ô4Ð4Ð4Ð4ó   ¼AB
Â
BÂB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   )	rK   r¦   rb  r"   rÄ   r  r   r4   r   )	r®   rc   rb   Úfuncr]   r¶   r·   r¸   r¥  s	            rd   Ú1test_precision_recall_f1_no_labels_check_warningsrª  3  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          j        ¦   «         5  t          j        d¦  «         t          ||d d| ¬¦  «        \  }}}}t          ||dd | ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j        | ¦  «        } t          || | | gd¦  «         t          || | | gd¦  «         t          || | | gd¦  «         t          |g d¢d¦  «         t          || | | gd¦  «         d S )Nr£  r±   r¿   r¤  rš  r=   r„  )
rK   r¦   rb  r“   r”   rµ   r"   r   r)  r5   )r‡   rc   rb   r]   r¶   r·   r¸   r¥  s           rd   Ú/test_precision_recall_f1_no_labels_average_noner¬  G  sx  € åŒX�gÑÔ€FÝŒ]˜6Ñ"Ô"€Fõ 
Ô	 Ñ	"Ô	"ð 
ð 
ÝÔ˜gÑ&Ô&Ð&å4ØØØØØ'ð
ñ 
ô 
‰
ˆˆ1ˆa�õ Ø�F ¨dÀ-ð
ñ 
ô 
ˆð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ ”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ÐVr§  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£  rF   r  r„  r=   rŽ  )	rK   r¦   rb  rÄ   r  r   r"   r5   r   )rc   rb   r]   r¶   r·   r¸   r¥  s          rd   Ú4test_precision_recall_f1_no_labels_average_none_warnr®  k  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            	      ór  — 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}t          | 
                    ¦   «         j        ¦  «        |k    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )N©NrÎ   rÌ   zŠPrecision is ill-defined and being set to 0.0 in labels with no predicted samples. Use `zero_division` parameter to control this behavior.rò   rš   ©rF   rF   r=   r­   z‚Recall is ill-defined and being set to 0.0 in labels with no true samples. Use `zero_division` parameter to control this behavior.zŠPrecision is ill-defined and being set to 0.0 in samples with no predicted labels. Use `zero_division` parameter to control this behavior.rF   r   rÏ   z‚Recall is ill-defined and being set to 0.0 in samples with no true labels. Use `zero_division` parameter to control this behavior.ú‚Precision is ill-defined and being set to 0.0 due to no predicted samples. Use `zero_division` parameter to control this behavior.rÍ   úzRecall is ill-defined and being set to 0.0 due to no true samples. Use `zero_division` parameter to control this behavior.rÂ   rX   Tr�   r‘   ú‰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  rK   r¤   r“   r”   rµ   r–   Úpopr’   )r·   rd  r®   r˜   r�   s        rd   Ú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Ò/Ð/Ð/Ð/ðð 	õ �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Ë)B5N,Î,N0Î3N0c           	      ó<  — t          j        ¦   «         5  t          j        d¦  «         dD ]0}t          g d¢g d¢|| ¬¦  «         t          g d¢g d¢|| ¬¦  «         Œ1t          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| ¬¦  «         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| ¬¦  «         t          |¦  «        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr±   r°  rš   r±  r…  rF   r   rÏ   rÍ   rÂ   rX   Tr�   r‘   )r“   r”   rµ   r"   rK   r¤   r|   )r‡   r®   r�   s      rd   Ú)test_prf_no_warnings_if_zero_division_setr¸  ï  sM  € å	Ô	 Ñ	"Ô	"ð 2
ð 2
ÝÔ˜gÑ&Ô&Ð&ð 3ð 	ð 	ˆGÝ+Ø�	�	˜9˜9˜9¨gÀ]ðñ ô ð õ ,Ø�	�	˜9˜9˜9¨gÀ]ðñ ô ð ð õ
 	(ÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ØØ'ð		
ñ 	
ô 	
ð 	
õ 	(ÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ØØ'ð		
ñ 	
ô 	
ð 	
õ 	(ÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ØØ'ð		
ñ 	
ô 	
ð 	
õ 	(ÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ØØ'ð		
ñ 	
ô 	
ð 	
õ 	(Ø�ˆF�R˜�H h¸mð	
ñ 	
ô 	
ð 	
õ 	(Ø�ˆH�q˜!�f h¸mð	
ñ 	
ô 	
ð 	
ða2
ð 2
ð 2
ñ 2
ô 2
ð 2
ð 2
ð 2
ð 2
ð 2
ð 2
øøøð 2
ð 2
ð 2
ð 2
õh 
Ô	 ¨Ð	-Ñ	-Ô	-ð  °ÝÔ˜hÑ'Ô'Ð'Ý'Ø�ˆF�Q˜�F H¸Mð	
ñ 	
ô 	
ð 	
õ �6‰{Œ{˜aÒÐÐÐÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s%   ”FF"Æ"F&Æ)F&ÇAHÈHÈHc           	      ó0  — t          j        ¦   «         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 d d ¦  «         n# 1 swxY w Y   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±   rF   r   rÍ   r…  Tr�   r‘   rˆ   r³  )
r“   r”   rµ   r$   rK   r¤   r–   rµ  r’   r|   ©r‡   r�   s     rd   Útest_recall_warningsr»  -	  sM  € å	Ô	 Ñ	"Ô	"ð 
ð 
ÝÔ˜gÑ&Ô&Ð&åÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ØØ'ð		
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ 
Ô	 ¨Ð	-Ñ	-Ô	-ð °ÝÔ˜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%   ”AA8Á8A<Á?A<ÂC&FÆFÆFc           	      ó0  — 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          j        ¦   «         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 d d ¦  «         d S # 1 swxY w Y   d S )NTr�   r‘   rF   r   rÍ   r…  rˆ   r²  r±   )
r“   r”   rµ   r#   rK   r¤   r–   rµ  r’   r|   rº  s     rd   Útest_precision_warningsr½  U	  sM  € å	Ô	 ¨Ð	-Ñ	-Ô	-ð °ÝÔ˜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Ô(Ñ)Ô)ð ."ò "ð "ð "ð "ð+ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ6 
Ô	 Ñ	"Ô	"ð 
ð 
ÝÔ˜gÑ&Ô&Ð&åÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ÝŒH�q˜!�f˜q !˜fÐ%Ñ&Ô&ØØ'ð		
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s%   –C&DÄDÄDÄ&AFÆFÆF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‘   r=   rÀ   rF   r   rÍ   r…  rˆ   r´  )r“   r”   rµ   r   r   r   rK   r¤   r|   r–   rµ  r’   )r‡   r�   r¥  s      rd   Útest_fscore_warningsr¿  }	  s6  € å	Ô	 ¨Ð	-Ñ	-Ô	-ð "(°ÝÔ˜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 &Ð)Ñ*Ô*ØØ+ð	ñ ô ð ð  Ò&Ð&å˜Ÿ
š
™œÔ,Ñ-Ô-ð 2-ò -ð -ð -ð -ñ -õ ˜6‘{”{ 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)rF   r=   rC   rC   )rF   r=   rC   rF   ri  r    rÑ   r¢   rA  rh  r=   rÀ   rò   )
rK   r¤   r#   r$   r   r   r   rÄ   rØ   rÙ   )
Ú	y_true_mcÚ	y_pred_mcÚmsg_mcÚ
y_true_indÚ
y_pred_indÚmsg_indrc   rb   r˜   r…   s
             rd   Ú'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                  óN  — d} d}d}d}d}d}| 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 )!Númultilabel-indicatorÚ
multiclassrX   Ú
continuouszmulticlass-multioutputzcontinuous-multioutputr   rF   )r=   rC   rF   r    )rÁ   r›  r¿   r=   rC   rÁ   r›  r¿   r£   re  gš™™™™™ñ?g      @)rþ  z@Classification metrics can't handle a mix of {0} and {1} targetsrò   z{0} is not supportedÚ
multilabelÚcsrrÂ   )rF   r=   )r   r=   rC   )r=   )r   r=   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.)rK   r¤   r   ÚKeyErrorrÄ   rØ   rÙ   r&   ÚformatÚ
startswithr6   Úsqueeze)ÚINDÚMCÚBINÚCNTÚMMCÚMCNÚEXAMPLESÚEXPECTEDÚtype1r¨   Útype2r©   rŽ  r÷   Úmerged_typer�   Úy1outÚy2outr˜   s                      rd   Útest__check_targetsrß  Ã	  sI  € ð !€CØ	€BØ
€CØ
€CØ
"€CØ
"€Cð 
�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Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ùõ /=¸RÀÑ.DÔ.DÑ+ˆK˜˜E 5¨!Ø (Ò*Ð*Ð*Ð*Ø×%Ò% 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   Å
EÅE2Å1E2ÆF.Æ.F2	Æ5F2	Ç0HÈH	ÈH	ÉI-É-I1	É4I1	Ì%M
Í
M	ÍM	Í<NÎNÎ!Nc                  óþ   — d} t          j        t          t          j        | ¦  «        ¬¦  «        5  t          t          j        g ¦  «        t          j        g ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NzIFound empty input array (e.g., `y_true` or `y_pred`) while a minimum of 1rò   )rÄ   rØ   rÙ   rj  rk  r&   rK   r¤   r  s    rd   Ú*test__check_targets_raises_on_empty_inputsrá  $
  s¨   € Ø
U€CÝ	Œ•z­¬°3©¬Ð	8Ñ	8Ô	8ð 3ð 3Ý•r”x ‘|”|¥R¤X¨b¡\¤\Ñ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3s   °5A2Á2A6Á9A6c                  óN   — ddg} ddg}t          | |¦  «        d         dk    sJ ‚d S )Nr   rF   rÂ   rÊ  )r&   rn  s     rd   ÚAtest__check_targets_multiclass_with_both_y_true_and_y_pred_binaryrã  *
  s:   € à�ˆV€FØ�ˆW€FÝ˜& &Ñ)Ô)¨!Ô,°Ò<Ð<Ð<Ð<Ð<Ð<rf   zy, target_typerX   rÊ  r¡   rA  rB  rÌ  c                 ó
  — |dv rFt          j        t          d¬¦  «        5  t          | | ¦  «         ddd¦  «         dS # 1 swxY w Y   dS t          | | ¦  «        \  }}}}}|dk    sJ ‚|j        dk    sJ ‚|j        dk    sJ ‚dS )z?Check correct behaviour when different target types are sparse.)rX   rÊ  z+Sparse input is only supported when targetsrò   NrÉ  rÍ  )rÄ   rØ   Ú	TypeErrorr&   rÏ  )rZ   Útarget_typeÚy_typer�   Ú
y_true_outÚ
y_pred_outs         rd   Ú!test__check_targets_sparse_inputsrê  1
  sÿ   € ð Ð.Ð.Ð.ÝŒ]ÝÐJð
ñ 
ô 
ð 	!ð 	!õ ˜1˜aÑ Ô Ð ð	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!õ 0>¸aÀÑ/CÔ/CÑ,ˆ��:˜z¨1àÐ/Ò/Ð/Ð/Ð/ØÔ  EÒ)Ð)Ð)Ð)ØÔ  EÒ)Ð)Ð)Ð)Ð)Ð)s    >¾AÁA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Â   rF   rF   rÂ   )g      !Àr£   r›  g333333Ó¿rï   )r   r=   r=   r   )rK   r¤   r   ©rc   Úpred_decisions     rd   Útest_hinge_loss_binaryrî  I
  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Ð7rf   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   rF   r=   rF   rC   r=   rF   r   r=   rC   r´   r³   ©Úout©rK   r¤   Úclipr×   r   )rí  rc   Údummy_lossesÚdummy_hinge_losss       rd   Útest_hinge_loss_multiclassr   S
  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@Ò@Ð@Ð@Ð@Ð@Ð@rf   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   rF   r=   r=   )gR¸…ëQô?gœÄ °rh¡?gÃõ(\�Âå¿gffffffö¿rö  rù  zDPlease include all labels in y_true or pass labels as third argumentrò   )rK   r¤   rÄ   rØ   rÙ   r   )rc   rí  Úerror_messages      rd   Ú:test_hinge_loss_multiclass_missing_labels_with_labels_noner  n
  så   € ÝŒX�l�l�lÑ#Ô#€FÝ”Hà(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(Ø(Ð(Ð(ð		
ñô €Mð 	Oð õ 
Œ•z¨Ð	7Ñ	7Ô	7ð *ð *Ý�6˜=Ñ)Ô)Ð)ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *ó   Á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)r=   rF   r   rF   r   rF   rF   )r   rF   r=   rF   r   r=   rF   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   rF   r=   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))rc   rí  ry   )rK   r¤   rÄ   rØ   rÙ   rj  rk  r   )rc   rí  r  ry   s       rd   Ú<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   rF   r=   rF   r=   )r   rF   r=   rC   rF   r   r=   rC   r´   rú  rà   rü  ©rí  rc   ry   rþ  rÿ  s        rd   Ú.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ÐOrf   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   r=   r=   r   r=   rš   rF   r   r=   rC   r´   rú  rà   )rK   r¤   rý  r×   r4   r   r
  s        rd   Ú@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ñô ð ð ð rf   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)rI  rJ  rK  rJ  ÚwhiterK  rð  r  rö  rù  rF   r   r=   rC   r´   r³   rú  rü  )rc   rí  rþ  rÿ  s       rd   Ú+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@Ò@Ð@Ð@Ð@Ð@Ð@rf   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¦  «         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¢} g d¢g d¢g d¢g}g d¢}d }t          j        t          t          j        |¦  «        ¬!¦  «        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          | |¦  «        }t          |d$¦  «         ddg} d%d&gddgg}t          j        ddgddgg¦  «        }d'}t          j        t          t          j        |¦  «        ¬!¦  «        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          j        t          t          j        |¦  «        ¬!¦  «        5  t          | |¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          j        |d d …df         ¦  «        ¦  «         }t          | |ddg¬"¦  «        }t          ||¦  «         g d)¢} g d*¢g d¢g d+¢g}	t          | |	g d,¢¬"¦  «        }t          |t          j        d¦  «         ¦  «         d S )-N©Únor  r  Úyesr  r  r£   rì   rp   ç{®Gáz„?ç®Gáz®ï?rÔ   r—  gü©ñÒMbP?g+‡ÙÎ÷ï?r  rF   rT  ©rë   rê   rì   ©rú   rë   rë   ©rú   rì   rï   Tr[  gèº•Ê€æ?r=   Fg.Lð—`’@rï   rê   rú   rî   rŠ   )rp   rì   rÁ   )rì   rp   rÁ   ©rì   rì   r¯   )r‹   r�   rŽ   zPy_true contains values {'b'} not belonging to the passed labels ['a', 'c', 'd'].rò   rà   ©ÚhamÚspamr  r  çCTáÏðæç?rë   r¯   z€y_true contains only one label (2). Please provide the list of all expected class labels explicitly through the labels argument.zBFound input variables with inconsistent numbers of samples: [3, 2]r  )rê   rì   rë   ©rì   rê   rë   rS  )rK   r¤   r   r×   r
   Úlogpmfr3   rÄ   rØ   rÙ   rj  rk  Úlog)
rc   Úy_probaÚlossÚ	loss_truery   Ú	error_strrö   Útrue_log_lossÚcalculated_log_lossÚy_score2s
             rd   Útest_log_lossr)  ñ
  sá  € à4Ð4Ð4€FÝŒhØ
ˆsˆ�c˜3�Z $¨ °°S¨z¸DÀ$¸<È%ÐQVÈÐXñô €Gõ �F˜GÑ$Ô$€DÝ”�Ô)­"¬(°6Ñ*:Ô*:¸eÒ*CÀWÈQÈQÈQÐPQÈTÄ]ÑSÔSÑTÔTÐT€IÝ�D˜)Ñ$Ô$Ð$ð ˆYˆY€FØˆˆ   °°°ÐA€GÝ�F˜G¨tÐ4Ñ4Ô4€DÝ�D˜)Ñ$Ô$Ð$ð ˆa�K€FØˆq�L€GÝ�F˜G¨uÐ5Ñ5Ô5€DÝ�D˜-Ñ(Ô(Ð(ð ˆYˆY€FØ�Sˆz˜C ˜:¨¨S zÐ2€GÝ	Œ•zÑ	"Ô	"ð "ð "Ý�˜Ñ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð ˆ_ˆ_€FØˆˆ   °°°ÐA€GØˆ_ˆ_€Fð	"ð õ 
Œ•z­¬°9Ñ)=Ô)=Ð	>Ñ	>Ô	>ð 1ð 1Ý�˜¨Ð0Ñ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð ,Ð+Ð+€FØ�Sˆz˜C ˜:¨¨S z°C¸°:Ð>€GÝ�F˜GÑ$Ô$€DÝ�D˜)Ñ$Ô$Ð$ð �ˆV€FØ�Sˆz˜C ˜:Ð&€GÝŒh˜˜c˜
 S¨# JÐ/Ñ0Ô0€Gð	Hð õ 
Œ•z­¬°9Ñ)=Ô)=Ð	>Ñ	>Ô	>ð "ð "Ý�˜Ñ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð �Sˆz˜C ˜:¨¨S zÐ2€GØT€IÝ	Œ•z­¬°9Ñ)=Ô)=Ð	>Ñ	>Ô	>ð "ð "Ý�˜Ñ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "õ
 ”W�RœV G¨A¨A¨A¨q¨D¤MÑ2Ô2Ñ3Ô3Ð3€MÝ" 6¨7¸A¸q¸6ÐBÑBÔBÐÝÐ'¨Ñ7Ô7Ð7ð ˆYˆY€FØ��   °/°/°/ÐB€HÝ�F˜H¨Y¨Y¨YÐ7Ñ7Ô7€DÝ�D�2œ6 #™;œ;˜,Ñ'Ô'Ð'Ð'Ð'sH   ÄD5Ä5D9Ä<D9ÆF!Æ!F%Æ(F%È3IÉIÉIÊJ2Ê2J6Ê9J6c                 ó²   — t          j        ddg| ¬¦  «        }t          j        ddg| ¬¦  «        }t          ||¦  «        }t          j        |¦  «        sJ ‚dS )z¬Check the behaviour internal eps that changes depending on the input dtype.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/24315
    r   rF   r  N)rK   r¤   r   Úisfinite)r^  rc   r"  r#  s       rd   Útest_log_loss_epsr,  =  s_   € õ ŒX�q˜!�f EÐ*Ñ*Ô*€FÝŒh˜˜1�v UÐ+Ñ+Ô+€Gå�F˜GÑ$Ô$€DÝŒ;�tÑÔÐÐÐÐÐrf   c                 óþ   — t          j        g d¢¦  «        }t          j        ddgddgddgddgg| ¬¦  «        }t          j        t          d	¬
¦  «        5  t          ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zHCheck that log_loss raises a warning when y_proba values don't sum to 1.r  rë   rê   rú   rï   rî   r¯   r  z$The y_prob values do not sum to one.rò   N)rK   r¤   rÄ   r  r  r   )r^  rc   r"  s      rd   Ú'test_log_loss_not_probabilities_warningr.  K  sÎ   € õ ŒX�l�l�lÑ#Ô#€FÝŒh˜˜c˜
 S¨# J°°c°
¸SÀ#¸JÐGÈuÐUÑUÔU€Gå	Œ•kÐ)OÐ	PÑ	PÔ	Pð "ð "Ý�˜Ñ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "r  zy_true, y_probarÑ   r¢   c                 óV   — t          | |¦  «        t          j        d¦  «        k    sJ ‚dS )z6Check that log_loss returns 0 for perfect predictions.r   N)r   rÄ   rÅ   ©rc   r"  s     rd   Ú!test_log_loss_perfect_predictionsr1  U  s/   € õ �F˜GÑ$Ô$­¬°aÑ(8Ô(8Ò8Ð8Ð8Ð8Ð8Ð8rf   c                  ón  — 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 ];\  }} || ¦  «         ||¦  «        }}t          ||¦  «        }	t          |	d¦  «         Œ<d S )	Nr  rï   rê   rú   rî   r   )Ú	DataFramer5  r  )
rK   r¤   r1   r3  r3  r5  rž  ÚImportErrorr   r3   )
Úy_trÚy_prÚtypesr3  r5  ÚTrueInputTypeÚPredInputTyperc   r"  r#  s
             rd   Útest_log_loss_pandas_inputr:  c  s  € åŒ8Ð2Ð2Ð2Ñ3Ô3€DÝŒ8�c˜3�Z # s ¨c°3¨Z¸#¸s¸ÐDÑEÔE€DÝ�]Ð+Ð,€EðØ,Ð,Ð,Ð,Ð,Ð,Ð,Ð,à�Š�f˜iÐ(Ñ)Ô)Ð)Ð)øÝð ð ð Øˆðøøøà(-ð )ð )Ñ$ˆ�}à'˜-¨Ñ-Ô-¨}¨}¸TÑ/BÔ/B�ˆÝ˜ Ñ(Ô(ˆÝ˜˜iÑ(Ô(Ð(Ð(ð	)ð )s   ÁA' Á'
A4Á3A4c                  óÔ   — t          j        d¦  «        } t          j        t          | ¬¦  «        5  t          g d¢g d¢g d¢g d¢gg d¢¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S ©	NzÞLabels passed were ['spam', 'eggs', 'ham']. But this function assumes labels are ordered lexicographically. Pass the ordered labels=['eggs', 'ham', 'spam'] and ensure that the columns of y_prob correspond to this ordering.rò   ©Úeggsr  r  rÑ   rA  r¢   )r  r>  r  rà   )rj  rk  rÄ   r  r  r   ©Úexpected_messages    rd   Útest_log_loss_warningsrA  u  sÔ   € Ý”yð	=ñô Ðõ 
Œ•kÐ)9Ð	:Ñ	:Ô	:ð 
ð 
ÝØ#Ð#Ð#ØˆYˆY˜	˜	˜	 9 9 9Ð-Ø*Ð*Ð*ð	
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
ó   ° AÁA!Á$A!c                  óö  — t          j        g d¢¦  «        } t          j        ddgddgddgddgg¦  «        }t          | |¦  «         d}t          j        t
          t          j        |¦  «        ¬	¦  «        5  t          | |¬
¦  «         ddd¦  «         n# 1 swxY w Y   d}t          j        t          t          j        |¦  «        ¬	¦  «        5  t          | ||¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z?Test `y_pred` deprecation in favor of `y_proba` for `log_loss`.r  rì   rp   r¯   rë   çffffffÖ?çÍÌÌÌÌÌä?úE`y_pred` was renamed to `y_proba` in version 1.9 and will be removed rò   ©rb   Nú@Cannot use both `y_pred` and `y_proba`. `y_pred` is deprecated, ©rb   r"  )
rK   r¤   r   rÄ   r  ÚFutureWarningrj  rk  rØ   rÙ   ©rc   r"  r˜   s      rd   Ú test_log_loss_y_pred_deprecationrL  …  sw  € åŒX�l�l�lÑ#Ô#€FÝŒh˜˜c˜
 S¨# J°°c°
¸TÀ4¸LÐIÑJÔJ€Gõ ˆV�WÑÔÐà
Q€CÝ	Œ•m­2¬9°S©>¬>Ð	:Ñ	:Ô	:ð )ð )Ý� Ð(Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð M€CÝ	Œ•z­¬°3©¬Ð	8Ñ	8Ô	8ð :ð :Ý� °Ð9Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð :ó$   Á6BÂBÂBÃC.Ã.C2Ã5C2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        d|z
  |f¦  «        }t          j        d| z
  | f¦  «        }t          t          | |¦  «        |¦  «         t          t          ||¦  «        |¦  «         t          t          | |d¬¦  «        |¦  «         t          t          | |d	¬¦  «        |¦  «         t          t          | |d
¬¦  «        d|z  ¦  «         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   rF   rF   r   rF   rF   ©rì   r¯   rp   rï   r¿   gffffffî?r=   rÁ   r¿   rF   Úauto)Úscale_by_halfTFrÂ   rî   g|®GázÄ?r   rñ  ÚfooÚbarrô   )rK   r¤   r   Únormr|   r4   r   Úcolumn_stack)rc   Úy_probÚ
true_scoreÚy_prob_reshapedÚy_true_reshapeds        rd   Útest_brier_score_loss_binaryr[  –  se  € åŒ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õ ”o q¨6¡z°6Ð&:Ñ;Ô;€OÝ”o q¨6¡z°6Ð&:Ñ;Ô;€OÝÕ(¨°ÑAÔAÀ:ÑNÔNÐNÝÕ(¨¸/ÑJÔJÈJÑWÔWÐWõ Ý˜ °vÐ>Ñ>Ô>À
ñô ð õ Ý˜ °tÐ<Ñ<Ô<¸jñô ð õ Ý˜ °uÐ=Ñ=Ô=¸qÀ:¹~ñô ð õ
 Õ(¨"¨°¨uÑ5Ô5°vÑ>Ô>Ð>ÝÕ(¨!¨¨s¨eÑ4Ô4°fÑ=Ô=Ð=ÝÕ(¨!¨¨s¨eÑ4Ô4°nÑEÔEÐEÝÕ(¨%¨°3°%À5ÐIÑIÔIÈ6ÑRÔRÐRÝÝ˜%˜ 3 %°5Ð9Ñ9Ô9Øñô ð ð ð rf   c            	      óV  — t          t          g d¢g d¢g d¢g d¢gg d¢¬¦  «        d¦  «         t          t          g d¢g d¢g d	¢g d
¢g¦  «        d¦  «         t          t          g d¢g d¢g d¢g d¢g¦  «        d¦  «         t          t          g d¢g d¢g d¢g d¢g¦  «        d¦  «         d S )Nr=  r‹  rŒ  )r>  r  r  Úyamsrà   rá   rT  r  r  r  gù—¬£tÚ?rš   )r¿   rÁ   rÁ   )rÁ   r¿   rÁ   )rÁ   rÁ   r¿   r   r=   )r4   r   rÆ   rf   rd   Ú test_brier_score_loss_multiclassr^  ½  s#  € åÝØ#Ð#Ð#Øˆ\ˆ\˜<˜<˜<¨¨¨Ð6Ø2Ð2Ð2ð	
ñ 	
ô 	
ð
 	ñô ð õ ÝØˆIˆI˜˜˜¨¨¨¸/¸/¸/ÐJñ	
ô 	
ð 	ñ	ô ð õ ÝØˆIˆI˜˜˜¨¨¨¸/¸/¸/ÐJñ	
ô 	
ð 	
ñ	ô ð õ ÝØˆIˆI˜˜˜¨¨¨¸/¸/¸/ÐJñ	
ô 	
ð 	
ñ	ô ð ð ð rf   c                  ó´  — t          j        g d¢¦  «        } t          j        g d¢¦  «        }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¢g d¢g d¢g¦  «        }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
¢¦  «        }t          j        d¦  «        }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g}d}t          j        t          t          j        |¦  «        ¬¦  «        5  t          | |¦  «         d d d ¦  «         n# 1 swxY w Y   g d¢} g d¢g d¢g d¢g}g d¢}d}t          j        t          t          j        |¦  «        ¬¦  «        5  t          | ||¬¦  «         d d d ¦  «         n# 1 swxY w Y   dg} ddgg}d}t          j        t          t          j        |¦  «        ¬¦  «        5  t          | |¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          | |ddg¬¦  «        d¦  «         d S )NrO  rP  rF   r¿   rT  r  r  r  )r   rF   r=   r   ©r¯   rú   rî   rë   zpThe type of the target inferred from y_true is multiclass but should be binary according to the shape of y_prob.rò   rš   r   z¦y_true and y_prob contain different number of classes: 3 vs 2. Please provide the true labels explicitly through the labels argument. Classes found in y_true: [0 1 2]r=  rÑ   rA  )r>  r  r  r]  zwThe number of classes in labels is different from that in y_prob. Classes found in labels: ['eggs' 'ham' 'spam' 'yams']rà   r>  rp   rì   zƒy_true contains only one label (eggs). Please provide the list of all expected class labels explicitly through the labels argument.r  r  )	rK   r¤   rÄ   rØ   rÙ   r   rj  rk  r4   )rc   rW  r  ry   s       rd   Ú$test_brier_score_loss_invalid_inputsra  à  sR  € åŒXÐ(Ð(Ð(Ñ)Ô)€FÝŒXÐ5Ð5Ð5Ñ6Ô6€FÝ	Œ•zÑ	"Ô	"ð -ð -å˜ ¨¨¨¤Ñ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -õ 
Œ•zÑ	"Ô	"ð /ð /å˜ ¨#¡Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /õ 
Œ•zÑ	"Ô	"ð /ð /å˜ ¨#¡Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /õ
 ŒX�i�i�iÑ Ô €FÝŒX���¨¨¨¸¸¸ÐIÑJÔJ€FÝ	Œ•zÑ	"Ô	"ð -ð -å˜ ¨¨¨¤Ñ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -õ 
Œ•zÑ	"Ô	"ð /ð /å˜ ¨#¡Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /õ 
Œ•zÑ	"Ô	"ð /ð /å˜ ¨#¡Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /õ
 ŒX�l�l�lÑ#Ô#€FÝŒXÐ*Ð*Ð*Ñ+Ô+€FÝ”Ið	Añô €Mõ 
Œ•z¨Ð	7Ñ	7Ô	7ð )ð )Ý˜ Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð ˆYˆY€FØ�!ˆf�q˜!�f˜q !˜fÐ%€Fð	ð õ 
Œ•z­¬°=Ñ)AÔ)AÐ	BÑ	BÔ	Bð )ð )Ý˜ Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )ð %Ð$Ð$€FØˆiˆi˜˜˜ I I IÐ.€FØ,Ð,Ð,€Fð	/ð õ
 
Œ•z­¬°=Ñ)AÔ)AÐ	BÑ	BÔ	Bð 8ð 8Ý˜ °Ð7Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð ˆX€FØ�Cˆjˆ\€Fð	ð õ
 
Œ•z­¬°=Ñ)AÔ)AÐ	BÑ	BÔ	Bð )ð )Ý˜ Ñ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )õ Õ(¨°ÀÈÀÐPÑPÔPÐRVÑWÔWÐWÐWÐWs´   ÁA+Á+A/Á2A/ÂB/Â/B3Â6B3ÃC3Ã3C7Ã:C7Å
E/Å/E3Å6E3ÆF3Æ3F7Æ:F7ÇG7Ç7G;Ç>G;ÉI:É:I>ÊI>ËK Ë K$Ë'K$Ì-MÍMÍMÎN+Î+N/Î2N/c                  óÔ   — t          j        d¦  «        } t          j        t          | ¬¦  «        5  t          g d¢g d¢g d¢g d¢gg d¢¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S r<  )rj  rk  rÄ   r  r  r   r?  s    rd   Útest_brier_score_loss_warningsrc  ,  sÚ   € Ý”yð	=ñô Ðõ 
Œ•kÐ)9Ð	:Ñ	:Ô	:ð 	
ð 	
ÝØ#Ð#Ð#à�	�	Ø�	�	Ø�	�	ðð
 +Ð*Ð*ð	
ñ 	
ô 	
ð 	
ð	
ð 	
ð 	
ñ 	
ô 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
øøøð 	
ð 	
ð 	
ð 	
ð 	
ð 	
rB  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    rd   Ú#test_balanced_accuracy_score_unseenre  ?  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   rF   )r$   rK   Úuniquer7   r   rÄ   rÅ   Ú	full_like)rc   rb   Úmacro_recallÚbalancedrg  Úchances         rd   Útest_balanced_accuracy_scorerm  E  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Ê   ))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.
    é*   rz  rÂ   T)r´  Úreplacer³  rô   N)	rK   rO   rP   Úchoicer   Úuniformr  Úanyr�  )r…   rÊ   r^   r[   rõ   rc   rb   r®  s           rd   Ú*test_classification_metric_pos_label_typesrv  Z  s§   € õ* Œ)×
Ò
 Ñ
#Ô
#€CØ˜w rœ{ˆy€IØ�ZŠZ˜ i¸ˆZÑ>Ô>€FØÕ!Ð!Ð!à—’ )�Ñ,Ô,ˆˆà—’‘”ˆØˆV�F˜F¨iÐ8Ñ8Ô8€FÝŒv•b”h˜vÑ&Ô&Ñ'Ô'Ð'Ð'Ð'Ð'Ð'rf   zy_true, y_pred, expected_scorec                 óZ   — t          | |d¬¦  «        t          j        |¦  «        k    sJ ‚dS )z•Check the behaviour of `zero_division` for f1-score.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/26965
    r¿   r­  N)r   rÄ   rÅ   )rc   rb   rˆ  s      rd   Ú2test_f1_for_small_binary_inputs_with_zero_divisionrx  {  s4   € õ �F˜F°#Ð6Ñ6Ô6½&¼-ÈÑ:WÔ:WÒWÐWÐWÐWÐWÐWrf   Úscoringr­  )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   )rB   rC   )Ú	max_depthrB   r=   r  )ry  Ún_jobsÚerror_scoreN)r   Úmake_classificationr,   rT   r)   )ry  rY   rZ   Ú
classifiers       rd   Ú:test_classification_metric_division_by_zero_nan_validationr€  �  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ÐUrf   c            	      óê  — g d¢} g d¢}t          j        ddgddgddgddgdd	gd
dgg¦  «        }t          j        ddgddgddgddgddgddgg¦  «        }t          | |¬¦  «        }t          | |d¬¦  «        }t          | |d¬¦  «        }d||z  z
  }|t	          j        |¦  «        k    sJ ‚t          j        g d¢¦  «        }|d d…                              ¦   «         |                     ¦   «         z  |d d …df<   |dd …                              ¦   «         |                     ¦   «         z  |d d …df<   t          | ||¬¦  «        }t          | ||d¬¦  «        }t          | ||d¬¦  «        }d||z  z
  }|t	          j        |¦  «        k    sJ ‚t          j        ddgddgddgddgddgddgg¦  «        }t          | |¦  «        }d|cxk     rdk     sn J ‚t          ||¦  «        }	|	t	          j        |¦  «        k    sJ ‚t          j        ddgddgddgddgddgddgg¦  «        }t          | |¦  «        }|dk     sJ ‚t          ||¦  «        }	|	t	          j        |¦  «        k    sJ ‚g d¢} t          j        ddgddgddgddgddgddgg¦  «        }t          | |¦  «        }|dk    sJ ‚t          ||¦  «        }	|	dk    sJ ‚g d¢} g d¢}t          j        ddgddgddgddgg¦  «        }t          | |¦  «        }|dk    sJ ‚t          ||¦  «        }	|	dk    sJ ‚g d¢}t          | ||¬¦  «        }
|
dk    sJ ‚g d¢} g d¢}t          j        g d ¢g d ¢g d!¢g d"¢g¦  «        }t          | |¦  «        }d|cxk     rdk     sn J ‚t          | ||¬¦  «        }d|cxk     rdk     sn J ‚t          j        g d#¢g d$¢g d"¢g d%¢g¦  «        }t          | |¦  «        }|dk     sJ ‚t          | ||¬¦  «        }|dk     sJ ‚d S )&Nro  r  r£   rp   rì   rî   rú   rD  rE  r  r  r0  F)rc   r"  r\  rF   )r=   rF   rC   r´   rC   rF   rC   r   ©rc   r"  rE  )rc   r"  rE  r\  r¯   rë   r¿   rÔ   r—  )r   rF   rF   rF   )r  r  r  r  )r=   r=   r=   r=   rR  )Úhighrƒ  ÚlowÚneutral)çffffffö?rú   r¯   rë   )r¯   rì   rì   rð   r  )rë   r£   rï   r  r  )rK   r¤   r(   r   rÄ   rÅ   rf  )rc   Úy_true_stringr"  Úy_proba_nullÚd2_scoreÚlog_likelihoodÚlog_likelihood_nullÚd2_score_truerE  Úd2_score_stringÚd2_score_with_sample_weights              rd   Útest_d2_log_loss_scorer�  ¨  s¯  € ØÐÐ€FØ;Ð;Ð;€MÝŒhà�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJØ�4ˆLØ�4ˆLð	
ñ	ô 	€Gõ ”8à�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJð	
ñ	ô 	€Lõ !¨¸Ð@Ñ@Ô@€HÝ V°WÈÐNÑNÔN€NÝ"¨&¸,ÐRWÐXÑXÔXÐØ˜Ð)<Ñ<Ñ<€MØ•v”} ]Ñ3Ô3Ò3Ð3Ð3Ð3õ ”HÐ/Ð/Ð/Ñ0Ô0€MØ& r¨ rÔ*×.Ò.Ñ0Ô0°=×3DÒ3DÑ3FÔ3FÑF€L����A�ÑØ& q r rÔ*×.Ò.Ñ0Ô0°=×3DÒ3DÑ3FÔ3FÑF€L����A�ÑÝ Ø˜w°mðñ ô €Hõ ØØØ#Øð	ñ ô €Nõ #ØØØ#Øð	ñ ô Ðð ˜Ð)<Ñ<Ñ<€MØ•v”} ]Ñ3Ô3Ò3Ð3Ð3Ð3õ Œhà�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJð	
ñ	ô 	€Gõ ! ¨Ñ1Ô1€HØ�ÐÐÒÐ˜CÒÐÐÐÐÐå'¨°wÑ?Ô?€OØ�fœm¨HÑ5Ô5Ò5Ð5Ð5Ð5õ Œhà�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJØ�4ˆLØ�#ˆJð	
ñ	ô 	€Gõ ! ¨Ñ1Ô1€HØ�aŠ<ˆ<ˆ<ˆ<å'¨°wÑ?Ô?€OØ�fœm¨HÑ5Ô5Ò5Ð5Ð5Ð5ð  ÐÐ€FÝŒhà�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJØ�#ˆJð	
ñ	ô 	€Gõ ! ¨Ñ1Ô1€HØ�qŠ=ˆ=ˆ=ˆ=Ý'¨°wÑ?Ô?€OØ˜aÒÐÐÐð ˆ\ˆ\€FØ/Ð/Ð/€MÝŒh˜˜t˜ t¨T l°T¸4°LÀ4ÈÀ,ÐOÑPÔP€GÝ  ¨Ñ1Ô1€HØ�qŠ=ˆ=ˆ=ˆ=Ý'¨°wÑ?Ô?€OØ˜aÒÐÐÐØ �L�L€MÝ"3Ø� }ð#ñ #ô #Ðð '¨!Ò+Ð+Ð+Ð+ð 0Ð/Ð/€FØ(Ð(Ð(€MåŒhàˆOˆOØˆOˆOØˆOˆOØˆOˆOð		
ñô €Gõ ! ¨Ñ1Ô1€HØ�ÐÐÒÐ˜CÒÐÐÐÐÐÝ  ¨ÀÐNÑNÔN€HØ�ÐÐÒÐ˜CÒÐÐÐÐÐåŒhàˆOˆOØˆOˆOØˆOˆOØˆOˆOð		
ñô €Gõ ! ¨Ñ1Ô1€HØ�aŠ<ˆ<ˆ<ˆ<Ý  ¨ÀÐNÑNÔN€HØ�aŠ<ˆ<ˆ<ˆ<ˆ<ˆ<rf   c                  ó  — g d¢} g d¢}g d¢}t          j        g d¢d¦  «        }t          | |||¬¦  «        }t          j        g d¢d¦  «        }t          | |||¬¦  «        }d||z  z
  }t          | |||¬¦  «        }t	          ||¦  «         d	S )
z¨Check that d2_log_loss_score works when not all labels are present in y_true

    non-regression test for https://github.com/scikit-learn/scikit-learn/issues/30713
    ©r=   r   r=   r   rš   )r†  rú   rê   rï   rÑ   ©r´   rF   )rE  ry   )rï   r   rê   rF   N)rK   Útiler   r(   r3   )	rc   ry   rE  r"  Úlog_loss_obsrˆ  Úlog_loss_nullÚexpected_d2_scorer‰  s	            rd   Ú%test_d2_log_loss_score_missing_labelsr—  >  sÉ   € ð
 ˆ\ˆ\€FØˆYˆY€FØ(Ð(Ð(€MÝŒg�i�i�i Ñ(Ô(€Gå˜F G¸=ÐQWÐXÑXÔX€Lõ ”7˜=˜=˜=¨&Ñ1Ô1€LÝØ�¨MÀ&ðñ ô €Mð ˜L¨=Ñ8Ñ8ÐÝ Ø� }¸Vðñ ô €Hõ �HÐ/Ñ0Ô0Ð0Ð0Ð0rf   c                  ó¬   — g d¢} t          j        g d¢d¦  «        }t          | |g d¢¬¦  «        }t          | |g d¢¬¦  «        }t          ||¦  «         dS )zGCheck that d2_log_loss_score doesn't depend on the order of the labels.r‘  rÑ   r’  rš   rà   r8  N)rK   r“  r(   r3   )rc   r"  r‰  Úd2_score_others       rd   Ú"test_d2_log_loss_score_label_orderrš  [  sf   € àˆ\ˆ\€FÝŒg�i�i�i Ñ(Ô(€Gå  ¨¸¸¸ÐCÑCÔC€HÝ& v¨w¸y¸y¸yÐIÑIÔI€Nå�H˜nÑ-Ô-Ð-Ð-Ð-rf   c                  óú  — g d¢} ddgddgddgg}d}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g}g d¢}d
}t          j        t          |¬¦  «        5  t          | ||¬¦  «         d	d	d	¦  «         n# 1 swxY w Y   g d¢} g d¢g d¢g}d}t          j        t          |¬¦  «        5  t          | |¦  «         d	d	d	¦  «         n# 1 swxY w Y   dg} ddgg}d}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g}d}t          j        t          |¬¦  «        5  t          | |¦  «         d	d	d	¦  «         n# 1 swxY w Y   g d¢} dg}ddgddgddgg}d}t          j        t          |¬¦  «        5  t          | ||¬¦  «         d	d	d	¦  «         d	S # 1 swxY w Y   d	S )zPTest that d2_log_loss_score raises the appropriate errors on
    invalid inputs.rš   rë   r¯   r£   rî   rú   z#contain different number of classesrò   Nz(number of classes in labels is differentrà   )r£   r£   r£   )rú   rï   rì   rQ  rF   zscore is not well-definedrÒ   úy_true contains only one labelz.The labels array needs to contain at least two)rÄ   rØ   rÙ   r(   r  r   )rc   r"  Úerrry   s       rd   Útest_d2_log_loss_score_raisesrž  f  sã  € ð ˆYˆY€FØ�Sˆz˜C ˜:¨¨S zÐ2€GØ
/€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð +ð +Ý˜& 'Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð
 ˆYˆY€FØ�Sˆz˜C ˜:¨¨S zÐ2€GØˆYˆY€FØ
4€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð :ð :Ý˜& '°&Ð9Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð ˆYˆY€FØˆˆ   Ð0€GØ
+€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð +ð +Ý˜& 'Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð ˆS€FØ�Sˆzˆl€GØ
%€CÝ	ŒÕ,°CÐ	8Ñ	8Ô	8ð +ð +Ý˜& 'Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð ˆYˆY€FØ�Sˆz˜C ˜:¨¨S zÐ2€GØ
*€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð +ð +Ý˜& 'Ñ*Ô*Ð*ð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð
 ˆYˆY€FØˆS€FØ�Sˆz˜C ˜:¨¨S zÐ2€GØ
:€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð :ð :Ý˜& '°&Ð9Ñ9Ô9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :ð :ð :sk   ­A
Á
AÁAÂB$Â$B(Â+B(ÃC5Ã5C9Ã<C9Ä%EÅEÅ	EÅ9FÆFÆFÇG0Ç0G4Ç7G4c                  óö  — t          j        g d¢¦  «        } t          j        ddgddgddgddgg¦  «        }t          | |¦  «         d}t          j        t
          t          j        |¦  «        ¬	¦  «        5  t          | |¬
¦  «         ddd¦  «         n# 1 swxY w Y   d}t          j        t          t          j        |¦  «        ¬	¦  «        5  t          | ||¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zHTest `y_pred` deprecation in favor of `y_proba` for `d2_log_loss_score`.r  rì   rp   r¯   rë   rD  rE  rF  rò   rG  NrH  rI  )
rK   r¤   r(   rÄ   r  rJ  rj  rk  rØ   rÙ   rK  s      rd   Ú)test_d2_log_loss_score_y_pred_deprecationr   ˜  s‹  € åŒX�l�l�lÑ#Ô#€FÝŒh˜˜c˜
 S¨# J°°c°
¸TÀ4¸LÐIÑJÔJ€Gõ �f˜gÑ&Ô&Ð&à
Q€CÝ	Œ•m­2¬9°S©>¬>Ð	:Ñ	:Ô	:ð 2ð 2Ý˜&¨Ð1Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2ð M€CÝ	Œ•z­¬°3©¬Ð	8Ñ	8Ô	8ð Cð CÝ˜&¨¸'ÐBÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð Cð CrM  c                  ó   — g d¢} g d¢}g d¢}g d¢}g d¢}t          ||¬¦  «        }t          ||¬¦  «        }t          ||¬¦  «        }d||z  z
  }t          j        |¦  «        |k    sJ ‚g d¢}t          ||¬¦  «        }|dk    sJ ‚t          ||d	¬
¦  «        }|dk    sJ ‚g d¢}t          ||| ¬¦  «        }|dk    sJ ‚t          ||| d	¬¦  «        }|dk    sJ ‚g d¢} g d¢}g d¢}g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g
}t          ||| ¬¦  «        }|dk    sJ ‚t          ||| ¬¦  «        }|dk    sJ ‚g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢g
}t          ||| ¬¦  «        }|dk    sJ ‚t          ||| ¬¦  «        }|dk    sJ ‚dS )zeTest that d2_brier_score gives expected outcomes in both the binary and
    multiclass settings.
    )r=   r=   rC   rF   rF   rF   )r   rF   rF   r   r   rF   )r  r  r  r  r  r  )rï   r£   rú   rê   rp   r¯   )r£   r£   r£   r£   r£   r£   r0  rF   r   r  )rc   r"  rõ   )rú   rú   rú   rú   rú   rú   r‚  )rc   r"  rE  rõ   )
r=   rF   rC   rF   rF   r=   rF   r´   rF   r´   )
rC   rC   r=   r=   r=   rF   rF   rF   rF   r   )
Úddr¢  Úccr£  r£  Úbbr¤  r¤  r¤  Úaa)rë   rî   r—  r  )rì   rë   rë   r£   )rì   rë   r£   rë   )rë   r£   rë   rì   )r£   rë   rë   rì   r£   N)r'   r   rÄ   rÅ   )	rE  rc   r‡  r"  Úy_proba_refr‰  Úbrier_score_modelÚbrier_score_refÚd2_score_expecteds	            rd   Útest_d2_brier_scorerª  ©  sñ  € ð
 'Ð&Ð&€MØÐÐ€FØ;Ð;Ð;€Mð -Ð,Ð,€GØ0Ð0Ð0€KÝ V°WÐ=Ñ=Ô=€HÝ(°ÀÐHÑHÔHÐÝ&¨f¸kÐJÑJÔJ€OØÐ-°Ñ?Ñ?ÐÝŒ=˜Ñ"Ô"Ð&7Ò7Ð7Ð7Ð7ð -Ð,Ð,€GÝ V°WÐ=Ñ=Ô=€HØ�qŠ=ˆ=ˆ=ˆ=Ý ]¸GÈuÐUÑUÔU€HØ�qŠ=ˆ=ˆ=ˆ=ð
 -Ð,Ð,€GÝØ˜w°mðñ ô €Hð �qŠ=ˆ=ˆ=ˆ=ÝØØØ#Øð	ñ ô €Hð �qŠ=ˆ=ˆ=ˆ=ð 3Ð2Ð2€MØ+Ð+Ð+€FØPÐPÐP€Mð 	ÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐð€Gõ Ø˜w°mðñ ô €Hð �qŠ=ˆ=ˆ=ˆ=ÝØØØ#ðñ ô €Hð
 �qŠ=ˆ=ˆ=ˆ=ð
 	ÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐØÐÐð€Gõ Ø˜w°mðñ ô €Hð �cŠ>ˆ>ˆ>ˆ>ÝØØØ#ðñ ô €Hð
 �cŠ>ˆ>ˆ>ˆ>ˆ>ˆ>rf   c                  ó:  — g d¢} g d¢}g d¢g d¢g d¢g d¢g}t          | ||¬¦  «        }|dk    sJ ‚g d¢}t          | ||¬¦  «        }|t          j        |¦  «        k    sJ ‚g d¢g d¢g d¢g d¢g}t          | ||¬¦  «        }t          j        |¦  «        d	k    sJ ‚d
S )zGTest that d2_brier_score gives expected outcomes when labels are passed)r   r=   r   r=   rš   )r£   r   r£   )rc   r"  ry   r   rè   r¢   rÑ   éýÿÿÿN)r'   rÄ   rÅ   )rc   ry   r"  r‰  Únew_d2_scoreÚneg_d2_scores         rd   Útest_d2_brier_score_with_labelsr¯    sò   € ð
 ˆ\ˆ\€FØˆYˆY€FàˆˆØˆˆØˆˆØˆˆð	€Gõ  V°WÀVÐLÑLÔL€HØ�qŠ=ˆ=ˆ=ˆ=ð ˆYˆY€FÝ!¨¸ÈÐPÑPÔP€LØ�6œ=¨Ñ2Ô2Ò2Ð2Ð2Ð2ð 	ˆ	ˆ	Øˆ	ˆ	Øˆ	ˆ	Øˆ	ˆ	ð	€Gõ "¨¸ÈÐPÑPÔP€LÝŒ=˜Ñ&Ô&¨"Ò,Ð,Ð,Ð,Ð,Ð,rf   z!y_true, y_pred, labels, error_msg)rF   r=   rF   rC   r`  z7inferred from y_true is multiclass but should be binary)r  r  r  r  zpos_label is not specified)r   rF   r   r   rF   rF   r   z.variables with inconsistent numbers of samples)r   rF   r   rF   )gÍÌÌÌÌÌü?rú   rî   rë   z%y_prob contains values greater than 1)gš™™™™™é¿rú   rî   rë   z"y_prob contains values less than 0rÒ   rœ  r�  )r=   rC   rC   r=   )rï   rï   rë   rë   )rî   rì   rï   rë   z(Multioutput target data is not supportedræ   )r£   rï   rë   z"not belonging to the passed labelsr„  z*labels array needs to contain at least twoc                 óâ   — t          j        | ¦  «        } t          j        |¦  «        }t          j        t          |¬¦  «        5  t          | ||¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zMTest that d2_brier_score raises the appropriate errors
    on invalid inputs.rò   rà   N)rK   ÚasarrayrÄ   rØ   rÙ   r'   )rc   rb   ry   Ú	error_msgs       rd   Útest_d2_brier_score_raisesr³  ,  s±   € õ| ŒZ˜ÑÔ€FÝŒZ˜ÑÔ€FÝ	Œ•z¨Ð	3Ñ	3Ô	3ð 6ð 6Ý�v˜v¨fÐ5Ñ5Ô5Ð5ð6ð 6ð 6ñ 6ô 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6øøøð 6ð 6ð 6ð 6ð 6ð 6s   ÁA$Á$A(Á+A(c                  óæ   — t          j        dg¦  «        } t          j        dg¦  «        }d}t          j        t          |¬¦  «        5  t          | |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zQTest that d2_brier_score emits a warning when there are less than
    two samplesrF   r¯   z+not well-defined with less than two samplesrò   N)rK   r¤   rÄ   r  r   r'   )rc   rb   Úwarning_messages      rd   Ú4test_d2_brier_score_warning_on_less_than_two_samplesr¶  p  s±   € õ ŒX�q�c‰]Œ]€FÝŒX�s�e‰_Œ_€FØC€OÝ	ŒÕ,°OÐ	DÑ	DÔ	Dð 'ð 'Ý�v˜vÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's   ÁA&Á&A*Á-A*z(array_namespace, device_name, dtype_namec                 óÜ  — t          | ||¦  «        \  }}|                     g d¢|¬¦  «        }|                     g d¢|¬¦  «        }|                     g d¢|¬¦  «        }t          d¬¦  «        5  t          |||¬¦  «        }t	          |¦  «        d         t	          |¦  «        d         k    sJ ‚t          |¦  «        t          |¦  «        k    sJ ‚	 ddd¦  «         dS # 1 swxY w Y   dS )	zœTest that `confusion_matrix` works for all array types when `labels` are passed
    such that the inner boolean `need_index_conversion` evaluates to `True`.rS  r-   )r´   r³   rÐ   T)Úarray_api_dispatchrà   r   N)r2   r±  r   r   r/   Úarray_api_device)	Úarray_namespaceÚdevice_nameÚ
dtype_nameÚxpr.   rc   rb   ry   r®  s	            rd   Útest_confusion_matrix_array_apir¾  z  sQ  € õ & o°{ÀJÑOÔO�J€Bˆà�ZŠZ˜	˜	˜	¨&ˆZÑ1Ô1€FØ�ZŠZ˜	˜	˜	¨&ˆZÑ1Ô1€FØ�ZŠZ˜	˜	˜	¨&ˆZÑ1Ô1€Få	¨4Ð	0Ñ	0Ô	0ð Dð DÝ! &¨&¸Ð@Ñ@Ô@ˆÝ˜VÑ$Ô$ QÔ'­=¸Ñ+@Ô+@ÀÔ+CÒCÐCÐCÐCÝ Ñ'Ô'Õ+;¸FÑ+CÔ+CÒCÐCÐCÐCÐCðDð Dð Dñ Dô Dð Dð Dð Dð Dð Dð Dð Døøøð Dð Dð Dð Dð Dð Ds   Á0A#C!Ã!C%Ã(C%)NF)Òrj  r“   Ú	functoolsr   Ú	itertoolsr   r   r   ÚnumpyrK   rÄ   Úscipyr   r   Úscipy.spatial.distancer	   rc  Úscipy.statsr
   Úsklearnr   r   Úsklearn.baser   Úsklearn.calibrationr   Ú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&   r'   r(   Úsklearn.model_selectionr)   Úsklearn.preprocessingr*   r+   Úsklearn.treer,   Úsklearn.utils._array_apir.   r¹  r/   r0   Úsklearn.utils._mockingr1   Úsklearn.utils._testingr2   r3   r4   r5   r6   r7   Úsklearn.utils.extmathr8   Úsklearn.utils.fixesr9   r:   Úsklearn.utils.validationr;   re   r†   ÚmarkÚparametrizer}  r™   rž   rª   r½   r•   rÇ   rÞ   rä   rø   r¤   rþ   r   r  r&  r,  r=  rO  rU  rc  rj  rm  rt  rx  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@  rB  rD  rG  rN  rQ  rT  rY  r[  r]  r_  re  ro  rr  r€  r‚  r†  r‰  r’  r˜  r¡  r¦  rª  r¬  r®  r¶  r¸  r»  r½  r¿  rÇ  rß  rá  rã  Ú
csr_matrixrê  rî  r   r  r  r  r  r  r)  r)  r(  Úfloat16r,  r.  r1  r:  rA  rL  r[  r^  ra  rc  re  rm  rv  rx  Úthread_unsafer€  r�  r—  rš  rž  r   rª  r¯  r³  r¶  r¾  rÆ   rf   rd   ú<module>rÚ     s(  ðØ 	€	€	€	Ø €€€Ø Ð Ð Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2à Ð Ð Ð Ø €€€Ø  Ð  Ð  Ð  Ð  Ð  Ð  Ð  Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø !Ð !Ð !Ð !Ð !Ð !à !Ð !Ð !Ð !Ð !Ð !Ð !Ð !Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð.ð ð ð ð ð ð ð ð ð ð
 4Ð 3Ð 3Ð 3Ð 3Ð 3Ø @Ð @Ð @Ð @Ð @Ð @Ð @Ð @Ø /Ð /Ð /Ð /Ð /Ð /ðð ð ð ð ð ðð ð ð ð ð ð ð ð 1Ð 0Ð 0Ð 0Ð 0Ð 0ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð .Ð -Ð -Ð -Ð -Ð -Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7ñ+(ð +(ð +(ð +(ðd>Dð >Dð >DðB „×Ò˜¨6°1°a¸¼Ð*@ÑAÔAðð ñ BÔAðð& „×ÒØ   T˜{¨a°¨V°U¨O¸i¸i¸iÈÐ=OÐPñô ð)ð )ñô ð)ð(7ð 7ð 7ðð ð ðD „×ÒÐPÑQÔQðð ñ RÔQðð$ „×ÒÐPÑQÔQð*Jð *Jñ RÔQð*JðZ „×ÒÐPÑQÔQðMð Mñ RÔQð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 „×Ò˜¨.Ñ9Ô9Ø„×Ò˜¨.Ñ9Ô9ð%Sð %Sñ :Ô9ñ :Ô9ð%SðPTð Tð Tð< „×ÒØ+ðð ð ñô ð%ð %ñô ð%ð;ð ;ð ;ð&)ð )ð )ð „×ÒØð
 #˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6Ø"˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6ðð ð Nð	
ð #˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6Ø"˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6ðð ð
Bð		
ð #˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6Ø"˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6ðð ð Nð	
ð #˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6Ø"˜"œ(Ð#5Ð#5Ð#5Ñ6Ô6ðð ð Hð	
ð;$ñ'ô 'ðP*ð *ñQ'ô 'ðP*ð „×ÒØð #˜"œ( ? ? ?Ñ3Ô3Ø"˜"œ( ? ? ?Ñ3Ô3ðð ð
<ð		
ðñô ð*ð *ñô ð*ð"ð "ð "ð2;ð ;ð ;ð0 „×ÒØà	�ˆØ	�ˆØ˜SÐ!Ð!Ø˜EÐ"Ð"Ø˜CÐ Ð Ø˜CÐ Ð ðñ
ô 
ð

ð 

ñ
ô 
ð

ð „×ÒØ$à˜SÐ	!Ð	! 3Ð'Ø” Ð	$Ð	$ b¤fÐ-Ø˜SÐ	!Ð	! 3Ð'Ø” ¤Ð	'Ð	'¨¬Ð0Ø	Œ�”Ððñ	ô 	ðDð Dñ	ô 	ðDð$ „×ÒØ$à˜SÐ	!Ð	! 3Ð'Ø” Ð	$Ð	$ cÐ*Ø” Ð	$Ð	$ cÐ*Ø” ¤Ð	'Ð	'¨¬Ð0Ø	Œ�”Ððñ	ô 	ðDð Dñ	ô 	ðDð$ð ð ð> €Ð0Ð1Ñ1Ô1Ø„×ÒØð
 ˆˆq‰�A�3˜‘7Ñ	˜Q˜C "™H q¨! f¨dÐ3à
ˆˆr‰�A�3˜‘8˜T 4Ð(à
ˆˆq‰�A�3˜‘7Ñ	˜Q˜C !™G q c¨A¡gÑ-°°1¨v°tÐ<ð ˆˆq‰�A�3˜‘7Ñ	˜Q˜C !™G q c¨A¡gÑ-°°1¨v°xÐ@ðñô ð" „×ÒÐ/°#°r´v°Ñ?Ô?ðAð Añ @Ô?ñ#ô ñ 2Ô1ð&Að(1ð 1ð 1ð.1ð 1ð 1ð „×Ò˜¨1¨a°´¨.Ñ9Ô9Ø„×ÒÐ)¨a¨S°1°#¨J¨<Ñ8Ô8Ø„×ÒØàØˆ� !Ð$Ñ$Ô$ØØð	ñô ð'ð 'ñô ñ 9Ô8ñ :Ô9ð'ð „×ÒÐ)¨a¨S°1°#¨J¨<Ñ8Ô8Ø„×ÒØàØˆ� !Ð$Ñ$Ô$ØØð	ñô ðð ñô ñ 9Ô8ððð ð ð$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ðð ð ð6 „×Ò˜Ð"AÐ"AÐ"AÑBÔBð0ð 0ñ CÔBð0ð"%ð %ð %ð4%ð %ð %ð$%ð %ð %ð(%ð %ð %ð6 %ð  %ð  %ðF%ð %ð %ð,%ð %ð %ð.Xð Xð XðIð Ið Ið „×ÒÐPÑQÔQð%ð %ñ RÔQð%ð<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ð „×ÒÐPÑQÔQð?Uð ?Uñ RÔQð?UðD „×ÒÐPÑQÔQð=ð =ñ RÔQð=ð@ „×ÒÐPÑQÔQØ„×ÒØ+Ø�&˜& 2¤6¨2¬6Ð"2Ð3ñô ð[ð [ñ	ô ñ RÔQð
[ð| „×Ò˜ ! Ñ%Ô%Ø„×Ò˜Ð$MÐ$MÐ$MÑNÔNØ„×Ò˜¨1¨a°´¨.Ñ9Ô9ð"5ð "5ñ :Ô9ñ OÔNñ &Ô%ð"5ðJ „×Ò˜Ð$MÐ$MÐ$MÑNÔNð"ð "ñ OÔNð"ð& „×Ò˜¨1¨a°´¨.Ñ9Ô9ð Wð  Wñ :Ô9ð WðF3ð 3ð 3ð8e0ð e0ð e0ðP „×Ò˜¨1¨a°´¨.Ñ9Ô9ð: ð : ñ :Ô9ð: ðz „×Ò˜¨6°1°a¸¼Ð*@ÑAÔAð$ð $ñ BÔAð$ðN „×Ò˜¨6°1°a¸¼Ð*@ÑAÔAð$
ð $
ñ BÔAð$
ðN „×Ò˜¨6°1°a¸¼Ð*@ÑAÔAð#(ð #(ñ BÔAð#(ðL'ð 'ð 'ð>^ð ^ð ^ðB3ð 3ð 3ð=ð =ð =ð „×ÒØà	ˆÔ	˜Q˜C !  q c¨A¨3Ð/Ñ	0Ô	0°(Ð;Ø	ˆÔ	˜Q˜C !  q c¨A¨3Ð/Ñ	0Ô	0°,Ð?Ø	ˆÔ	˜I˜I˜I y y y°)°)°)Ð<Ñ	=Ô	=¸|ÐLðñô ð*ð *ñô ð*ð 8ð 8ð 8ðAð Að Að6*ð *ð *ð"Nð Nð Nð8Pð Pð Pð4ð ð ð@Að Að Að8I(ð I(ð I(ðX „×Ò˜ 2¤:¨r¬z¸2¼:Ð"FÑGÔGð
ð 
ñ HÔGð
ð „×Ò˜ 2¤:¨r¬z¸2¼:Ð"FÑGÔGð"ð "ñ HÔGð"ð „×ÒØà	ˆˆ�I�I�IÐØ	ˆˆ�a˜�V˜a ˜V a¨ VÐ,Ð-Ø	ˆˆ�Y�Y�Y 	 	 	¨9¨9¨9Ð5Ð6ðñô ð9ð 9ñô ð9ð)ð )ð )ð$
ð 
ð 
ð :ð :ð :ð"$ð $ð $ðN ð  ð  ðFIXð IXð IXðX
ð 
ð 
ð&6ð 6ð 6ð „×ÒØà	Ð	Ð	Ð3Ð3Ð3Ð4Ø	Ð	Ð	Ð3Ð3Ð3Ð4Ø	Ð	Ð	Ð3Ð3Ð3Ð4ðñô ð
:ð 
:ñô ð
:ð „×ÒØàØØˆ� #Ð&Ñ&Ô&Ø'ØØØðñô ð „×ÒØÐCÐCÐCñô ð(ð (ñô ñô ð(ð$ „×ÒØ$à	ˆŒ�1�a�&Ñ	Ô	˜8˜2œ8 Q¨ FÑ+Ô+¨SÐ1Ø	ˆŒ�1�a�&Ñ	Ô	˜8˜2œ8 Q¨ FÑ+Ô+¨SÐ1Ø	ˆŒ�1�a�&Ñ	Ô	˜8˜2œ8 Q¨ FÑ+Ô+¨SÐ1Ø	ˆŒ�1�a�&Ñ	Ô	˜8˜2œ8 Q¨ FÑ+Ô+¨SÐ1ð	ñô ðXð Xñô ðXð „ÔØ„×ÒØàˆ�H¨B¬FÐ3Ñ3Ô3Øˆ�K a°r´vÐ>Ñ>Ô>Øˆ�O°2´6Ð:Ñ:Ô:Øˆ�L°´Ð7Ñ7Ô7ð	ñô ðVð Vñô ñ ÔðVðSð Sð Sðl1ð 1ð 1ð:.ð .ð .ð.:ð .:ð .:ðdCð Cð Cð"`ð `ð `ðF-ð -ð -ð@ „×ÒØ'ð ˆLˆLØ Ð Ð ØØEð		
ð 'Ð&Ð&Ø Ð Ð ØØ(ð		
ð "Ð!Ð!Ø Ð Ð ØØ<ð		
ð ˆLˆLØ Ð Ð ØØ3ð		
ð ˆLˆLØ!Ð!Ð!ØØ0ð		
ð ˆIˆIØ�3ˆZ˜#˜s˜ c¨3 ZÐ0ØØ,ð		
ð ˆ\ˆ\˜<˜<˜<Ð(Ø!Ð!Ð!Ð#7Ð#7Ð#7Ð8ØÙ6ð		
ð ‰IˆIØ‰_ˆ_˜o™o˜o¨©¨Ð?Ø�ˆFÙ0ð		
ð ‰IˆIØ‰_ˆ_˜o™o˜o¨©¨Ð?ØˆCÙ8ð		
ðc7ñ:ô :ñv6ð 6ñw:ô :ðv6ñ'ð 'ð 'ð „×ÒÙ.Ø-Ð-Ñ/Ô/ñô ñDð Dñ	ô ðDð Dð Drf   