§
    ¨éUg÷E ã                   ó¾  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZm Z  d d	l!m"Z" d d
l#m$Z$ d dl%m&Z& d dl'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z- d dl.m/Z/ d dl0m1Z1 d dl2m3Z3m4Z4m5Z5 eeegZ6dêd„Z7d„ Z8d„ Z9d„ Z:d„ Z;ej<         =                    dddg¦  «        d„ ¦   «         Z>d„ Z?d„ Z@d„ ZAd„ ZBd„ ZCd„ ZDd„ ZEd „ ZFd!„ ZGd"„ ZHd#„ ZIej<         =                    d$ ejJ        g d%¢¦  «        g d&¢f ejJ        g d%¢¦  «        dfg d'¢g d(¢fg d'¢dfg¦  «        d)„ ¦   «         ZKej<         =                    d$ ejJ        g d*¢¦  «        g d&¢f ejJ        g d+¢¦  «        g d,¢fg¦  «        d-„ ¦   «         ZLej<         =                    d$ ejJ        g d.¢¦  «        dfg d/¢dfg d.¢g d&¢fg d/¢g d(¢fg¦  «        d0„ ¦   «         ZMej<         =                    d1g d2¢¦  «        d3„ ¦   «         ZNd4„ ZOej<         =                    d5d6 ejJ        g d.¢¦  «        g d7¢fd6 ejJ        g d/¢¦  «        g d8¢fd9 ejJ        g d*¢¦  «        dfd: ejJ        g d/¢¦  «        g d;¢fd< ejJ        g d.¢¦  «        d d=gfd< ejJ        g d/¢¦  «        d>d?gfd@ ejJ        g d.¢¦  «        g dA¢fd@ ejJ        g d/¢¦  «        g dB¢fdC ejJ        g dD¢¦  «        g d(¢fdC ejJ        g dB¢¦  «        g d(¢fdC ejJ        g dA¢¦  «        g d&¢fg¦  «        ej<         =                    dEdFdGg¦  «        dH„ ¦   «         ¦   «         ZPej<         =                    dIdJdKdFdLœfdMdKdGdLœfdNdFg dOœfdPdFdQdRœfdSi fg¦  «        dT„ ¦   «         ZQdU„ ZRej<         =                    dVe6¦  «        dW„ ¦   «         ZSej<         =                    dVe6¦  «        dX„ ¦   «         ZT e-eU¬Y¦  «        ej<         =                    dVeeg¦  «        ej<         =                    dZd[d\g¦  «        d]„ ¦   «         ¦   «         ¦   «         ZVej<         =                    dVe6¦  «        d^„ ¦   «         ZWej<         =                    dddg¦  «        d_„ ¦   «         ZXd`„ ZYej<         =                    dddg¦  «        da„ ¦   «         ZZdb„ Z[dc„ Z\dd„ Z]de„ Z^df„ Z_dg„ Z`ej<         =                    dhg di¢g dj¢d gd gfg di¢g dk¢d gd gfg di¢g dl¢d gd gfg di¢g dm¢d gd gfg dn¢g dj¢dQgd gfg dn¢g dk¢dQgd gfg dn¢g dl¢dQgd gfg dn¢g dm¢dQgd gfg do¢g dj¢dpgd gfg do¢g dk¢d gd gfg do¢g dl¢d gd gfg do¢g dm¢d gd gfg dq¢g dj¢g dr¢g do¢fg dq¢g dk¢g dr¢g do¢fg dq¢g dl¢g dr¢g do¢fg dq¢g dm¢g dr¢g do¢fg ds¢g dj¢g dt¢g du¢fg ds¢g dk¢g dt¢g du¢fg ds¢g dl¢g dt¢g du¢fg ds¢g dm¢g dt¢g du¢fg¦  «        dv„ ¦   «         Zaej<         =                    dhd=d gdQdQgd=gd gfd d=gdQdQgd=gd gfg di¢g dw¢dQgd gfg dn¢g dw¢dQgd gfg do¢g dw¢d gd gfg dq¢g dw¢d=gd gfg ds¢g dw¢d=gd gfg dt¢g dw¢d=gd gfg¦  «        dx„ ¦   «         Zbdy„ Zcej<         =                    dzg d{¢¦  «        d|„ ¦   «         Zdej<         =                    d}g d~¢g d¢g d€¢g d�¢g d‚¢g¦  «        dƒ„ ¦   «         Zeej<         =                    d„d d=gg dj¢d…fg do¢d dQgd…fg d†¢g dj¢d‡fg dˆ¢g dj¢d‡fg d‰¢g dŠ¢d‹fg¦  «        dŒ„ ¦   «         Zfd�„ ZgdŽ„ Zhd�„ Zid�„ Zjd‘„ Zkd’„ Zld“„ Zm	 dëd–„Znej<         =                    d—ehelekeif¦  «        ej<         =                    d˜eemf¦  «        d™„ ¦   «         ¦   «         Zodš„ Zpej<         =                    d›dœ¦  «        ej<         =                    d�dž¦  «        ej<         =                    dŸ eqd=¦  «        ¦  «        d „ ¦   «         ¦   «         ¦   «         Zrd¡„ Zsd¢„ Ztd£„ Zuej<         =                    d¤g ds¢g dw¢fg ds¢g dw¢gfg ds¢gg dw¢fg¦  «        d¥„ ¦   «         Zvd¦„ Zwej<         =                    d§e1¦  «        d¨„ ¦   «         Zxd©„ Zydª„ Zzd«„ Z{d¬„ Z|d­„ Z}d®„ Z~d¯„ Zd°„ Z€ej<         =                    d±ddg¦  «        d²„ ¦   «         Z�d³„ Z‚d´„ Zƒdµ„ Z„d¶„ Z…ej<         =                    d·g dA¢d=d¸fg dA¢d¹dQfg dA¢dºd»fg¦  «        d¼„ ¦   «         Z†ej<         =                    d½ ejJ        g d¾¢¦  «        d=d=f ejJ        g d¿¢¦  «        d=dQf ejJ        g d¿¢¦  «        d¹d=f ejJ        g dÀ¢¦  «        d=d=f ejJ        g dÁ¢¦  «        d=dQf ejJ        g dÁ¢¦  «        d¹d=fg¦  «        dÂ„ ¦   «         Z‡ej<         =                    dÃ ejJ        g dÄ¢¦  «        d»g dA¢f ejJ        g dÅ¢¦  «        dQg dA¢f ejJ        g dÆ¢¦  «        dQg dA¢f ejJ        g dÇ¢¦  «        d»g dÈ¢fg¦  «        ej<         =                    dÉddg¦  «        dÊ„ ¦   «         ¦   «         ZˆdË„ Z‰ej<         =                    d·g dA¢d=d¸fg dA¢d¹dQfg dA¢dºd=fg¦  «        dÌ„ ¦   «         ZŠej<         =                    dÍg dA¢dÎfg dA¢d”fg¦  «        dÏ„ ¦   «         Z‹ej<         =                    dÐg dÑ¢g dÒ¢g dÓ¢g dÔ¢g dÕ¢gddÖfg dA¢g dÒ¢g dÓ¢g dÔ¢g dÕ¢gdd×fg dØ¢g dÒ¢g dÓ¢g dÔ¢g dÕ¢gg d/¢dÙfg dØ¢g dÒ¢g dÓ¢g dÔ¢g dÕ¢gg d;¢dÚfg dÛ¢g dÒ¢g dÓ¢g dÔ¢g dÕ¢gg dA¢dÜfg dÛ¢g dÒ¢g dÓ¢g dÔ¢g dÕ¢gg dÝ¢dÞfd d=gg dß¢g dà¢gddáfg¦  «        dâ„ ¦   «         ZŒej<         =                    d§e1¦  «        dã„ ¦   «         Z�ej<         =                    däeeeeg¦  «        ej<         =                    dåg dæ¢¦  «        dç„ ¦   «         ¦   «         ZŽdè„ Z�dé„ Z�dS )ìé    N)Ústats)ÚdatasetsÚsvm)Úmake_multilabel_classification)ÚUndefinedMetricWarning)ÚLogisticRegression)Úaccuracy_scoreÚaucÚaverage_precision_scoreÚcoverage_errorÚ	dcg_scoreÚ	det_curveÚ%label_ranking_average_precision_scoreÚlabel_ranking_lossÚ
ndcg_scoreÚprecision_recall_curveÚroc_auc_scoreÚ	roc_curveÚtop_k_accuracy_score)Ú_dcg_sample_scoresÚ_ndcg_sample_scores)Útrain_test_split)Úlabel_binarize)Ú_sparse_random_matrix)Ú_convert_containerÚassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚignore_warnings)Úsoftmax)ÚCSR_CONTAINERS)Úcheck_arrayÚcheck_consistent_lengthÚcheck_random_stateFc                 óü  — | €t          j        ¦   «         } | j        }| j        }|r||dk              ||dk              }}|j        \  }}t          j        |¦  «        }t          d¦  «        }|                     |¦  «         ||         ||         }}t          |dz  ¦  «        }t
          j
                             d¦  «        }t
          j        ||                     |d|z  ¦  «        f         }t          j        ddd¬¦  «        }	|	                     |d|…         |d|…         ¦  «                             ||d…         ¦  «        }
|r|
dd…d	f         }
|	                     ||d…         ¦  «        }||d…         }|||
fS )
z¼Make some classification predictions on a toy dataset using a SVC

    If binary is True restrict to a binary classification problem instead of a
    multiclass classification problem
    Né   é%   r   éÈ   ÚlinearT)ÚkernelÚprobabilityÚrandom_stateé   )r   Ú	load_irisÚdataÚtargetÚshapeÚnpÚaranger%   ÚshuffleÚintÚrandomÚRandomStateÚc_Úrandnr   ÚSVCÚfitÚpredict_probaÚpredict)ÚdatasetÚbinaryÚXÚyÚ	n_samplesÚ
n_featuresÚpÚrngÚhalfÚclfÚy_scoreÚy_predÚy_trues                úa/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/metrics/tests/test_ranking.pyÚmake_predictionrM   9   sy  € ð €åÔ$Ñ&Ô&ˆàŒ€AØŒ€Aàð "à��Q’Œx˜˜1˜qš5œˆ1ˆàœGÑ€IˆzÝ
Œ	�)ÑÔ€Aå
˜RÑ
 Ô
 €CØ‡K‚K��N„N€NØˆQŒ4��1”€q€AÝˆy˜1‰}ÑÔ€Dõ Œ)×
Ò
 Ñ
"Ô
"€CÝ
Œˆa�—’˜9 c¨JÑ&6Ñ7Ô7Ð7Ô8€Aõ Œ'˜¨tÀ!Ð
DÑ
DÔ
D€CØ�gŠg�a˜˜˜”h  % 4 %¤Ñ)Ô)×7Ò7¸¸$¸%¸%¼ÑAÔA€Gàð  ð ˜!˜!˜!˜Q˜$”-ˆà�[Š[˜˜4˜5˜5œÑ"Ô"€FØˆtˆuˆuŒX€FØ�6˜7Ð"Ð"ó    c                 óN  — t          j        | ¦  «        d         }|| |k             }|| |k             }|                     dd¦  «        |                     dd¦  «        z
  }t          j        |dk    ¦  «        }|t	          t          |¦  «        t          |¦  «        z  ¦  «        z  S )zKAlternative implementation to check for correctness of
    `roc_auc_score`.r.   éÿÿÿÿr   )r3   ÚuniqueÚreshapeÚsumÚfloatÚlen)rK   rI   Ú	pos_labelÚposÚnegÚdiff_matrixÚ	n_corrects          rL   Ú_aucr[   i   s•   € õ ”	˜&Ñ!Ô! !Ô$€Ið �&˜IÒ%Ô
&€CØ
�&˜IÒ%Ô
&€CØ—+’+˜a Ñ$Ô$ s§{¢{°2°qÑ'9Ô'9Ñ9€KÝ”�{ Q’Ñ'Ô'€Ià•u�S ™XœX­¨C©¬Ñ0Ñ1Ô1Ñ1Ð1rN   c                 ó�  — t          j        | ¦  «        d         }t          j        | |k    ¦  «        }t          j        |¦  «        ddd…         }||         }| |         } d}t	          t          |¦  «        ¦  «        D ]D}| |         |k    r6d}t	          d|dz   ¦  «        D ]}| |         |k    r|dz  }Œ||dz   z  }||z  }ŒE||z  S )a>  Alternative implementation to check for correctness of
    `average_precision_score`.

    Note that this implementation fails on some edge cases.
    For example, for constant predictions e.g. [0.5, 0.5, 0.5],
    y_true = [1, 0, 0] returns an average precision of 0.33...
    but y_true = [0, 0, 1] returns 1.0.
    r.   NrP   r   ç      ð?)r3   rQ   rS   ÚargsortÚrangerU   )	rK   rI   rV   Ún_posÚorderÚscoreÚiÚprecÚjs	            rL   Ú_average_precisionrf   x   så   € õ ”	˜&Ñ!Ô! !Ô$€IÝŒF�6˜YÒ&Ñ'Ô'€EÝŒJ�wÑÔ   " Ô%€EØ�eŒn€GØ�EŒ]€Fà€EÝ•3�w‘<”<Ñ Ô ð 	ð 	ˆØ�!Œ9˜	Ò!Ð!ð ˆDÝ˜1˜a !™e‘_”_ð  ð  �Ø˜!”9 	Ò)Ð)Ø˜C‘K�DøØ�A˜‘G‰OˆDØ�T‰MˆEøà�5‰=ÐrN   c                 ó"  — t          | |¦  «        \  }}}t          t          |¦  «        ¦  «        }t          t          |¦  «        ¦  «        }d}t          dt	          |¦  «        ¦  «        D ]"}|||         ||         ||dz
           z
  z  z  }Œ#|S )ao  A second alternative implementation of average precision that closely
    follows the Wikipedia article's definition (see References). This should
    give identical results as `average_precision_score` for all inputs.

    References
    ----------
    .. [1] `Wikipedia entry for the Average precision
       <https://en.wikipedia.org/wiki/Average_precision>`_
    r   r.   )r   ÚlistÚreversedr_   rU   )rK   rI   Ú	precisionÚrecallÚ	thresholdÚaverage_precisionrc   s          rL   Ú_average_precision_slowrn   –   s™   € õ $:¸&À'Ñ#JÔ#JÑ €Iˆv�yÝ•X˜iÑ(Ô(Ñ)Ô)€IÝ•(˜6Ñ"Ô"Ñ#Ô#€FØÐÝ�1•c˜)‘n”nÑ%Ô%ð Hð HˆØ˜Y qœ\¨V°A¬Y¸ÀÀAÁ¼Ñ-FÑGÑGÐÐØÐrN   c                 ó˜   — d„ } || ||¦  «        \  }}t          ||¦  «        }d}|}d||z
  z  ||z   z  }	||z
  }
dd||	z
  |
|	z
  z  z   z  S )zcAlternative implementation to check for correctness of `roc_auc_score`
    with `max_fpr` set.
    c                 óX  — t          | |¦  «        \  }}}|||k             }t          j        ||¦  «        }|||k             }t          j        ||k    ¦  «        }|dz
  }	||	         ||         g}
||	         ||         g}t          j        |t          j        ||
|¦  «        ¦  «        }||fS )Nr.   )r   r3   ÚappendÚargmaxÚinterp)rK   Ú	y_predictÚmax_fprÚfprÚtprÚ_Únew_fprÚnew_tprÚidx_outÚidx_inÚx_interpÚy_interps               rL   Ú_partial_rocz,_partial_roc_auc_score.<locals>._partial_roc®   s®   € Ý ¨	Ñ2Ô2‰ˆˆS�!Ø�c˜W’nÔ%ˆÝ”)˜G WÑ-Ô-ˆØ�c˜W’nÔ%ˆÝ”)˜C 'šMÑ*Ô*ˆØ˜1‘ˆØ˜”K  W¤Ð.ˆØ˜”K  W¤Ð.ˆÝ”)˜G¥R¤Y¨w¸À(Ñ%KÔ%KÑLÔLˆØ˜Ð!Ð!rN   r   ç      à?r.   )r
   )rK   rt   ru   r   ry   rz   Úpartial_aucÚfpr1Úfpr2Úmin_areaÚmax_areas              rL   Ú_partial_roc_auc_scorer†   ©   s…   € ð

"ð 
"ð 
"ð $�| F¨I°wÑ?Ô?Ñ€GˆWÝ�g˜wÑ'Ô'€Kð €DØ€DØ�d˜T‘kÑ" d¨T¡kÑ2€HØ�d‰{€HØ�!�{ XÑ-°(¸XÑ2EÑFÑFÑGÐGrN   ÚdropTc                 óB  — t          d¬¦  «        \  }}}t          ||¦  «        }t          ||| ¬¦  «        \  }}}t          ||¦  «        }t	          ||d¬¦  «         t          |t          ||¦  «        ¦  «         |j        |j        k    sJ ‚|j        |j        k    sJ ‚d S )NT©r@   ©Údrop_intermediater'   ©Údecimal)rM   r[   r   r
   r   r   r   r2   )	r‡   rK   rx   rI   Úexpected_aucrv   rw   Ú
thresholdsÚroc_aucs	            rL   Útest_roc_curver‘   Å   s²   € õ )°Ð5Ñ5Ô5Ñ€FˆAˆwÝ˜ Ñ(Ô(€Lå$ V¨WÈÐMÑMÔMÑ€CˆˆjÝ�#�s‰mŒm€GÝ˜g |¸QÐ?Ñ?Ô?Ð?Ý˜¥¨v°wÑ!?Ô!?Ñ@Ô@Ð@ØŒ9˜œ	Ò!Ð!Ð!Ð!ØŒ9˜
Ô(Ò(Ð(Ð(Ð(Ð(Ð(rN   c                  ó\  — t           j                             d¦  «        } t          j        dgdz  dgdz  z   ¦  «        }|                      dd¬¦  «        }t          ||d¬¦  «        \  }}}|d         dk    sJ ‚|d	         dk    sJ ‚|j        |j        k    sJ ‚|j        |j        k    sJ ‚d S )
Nr   é2   r.   é   éd   ©ÚsizeTrŠ   rP   )r3   r7   r8   ÚarrayÚrandintr   r2   )rF   rK   rJ   rv   rw   Úthrs         rL   Útest_roc_curve_end_pointsr›   Ó   sº   € õ Œ)×
Ò
 Ñ
"Ô
"€CÝŒX�q�c˜B‘h !  r¡Ñ)Ñ*Ô*€FØ�[Š[˜ ˆ[Ñ%Ô%€FÝ˜f fÀÐEÑEÔE�M€CˆˆcØˆqŒ6�QŠ;ˆ;ˆ;ˆ;ØˆrŒ7�aŠ<ˆ<ˆ<ˆ<ØŒ9˜œ	Ò!Ð!Ð!Ð!ØŒ9˜œ	Ò!Ð!Ð!Ð!Ð!Ð!rN   c                  ód  — t          d¬¦  «        \  } }}t          | |¦  «        \  }}}g }|D ]L}t          j        ||k    | z  ¦  «        }t          j        | ¦  «        }	|                     d|z  |	z  ¦  «         ŒMt          ||d¬¦  «         |j        |j        k    sJ ‚|j        |j        k    sJ ‚d S )NTr‰   r]   r'   rŒ   )rM   r   r3   rS   rq   r   r2   )
rK   rx   rI   rv   rw   r�   Útpr_correctÚtÚtprE   s
             rL   Útest_roc_returns_consistencyr    à   sÓ   € õ )°Ð5Ñ5Ô5Ñ€FˆAˆwÝ$ V¨WÑ5Ô5Ñ€Cˆˆjð €KØð )ð )ˆÝŒV�W ’\ VÑ+Ñ,Ô,ˆÝŒF�6‰NŒNˆØ×Ò˜3 ™8 a™<Ñ(Ô(Ð(Ð(õ ˜c ;¸Ð:Ñ:Ô:Ð:ØŒ9˜œ	Ò!Ð!Ð!Ð!ØŒ9˜
Ô(Ò(Ð(Ð(Ð(Ð(Ð(rN   c                  ó²   — t          d¬¦  «        \  } }}t          j        t          ¦  «        5  t	          | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NFr‰   )rM   ÚpytestÚraisesÚ
ValueErrorr   )rK   rx   rI   s      rL   Útest_roc_curve_multir¥   ó   s�   € å(°Ð6Ñ6Ô6Ñ€FˆAˆwå	Œ•zÑ	"Ô	"ð #ð #Ý�&˜'Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s   ®AÁAÁAc                  óè   — t          d¬¦  «        \  } }}t          | |dz
  ¦  «        \  }}}t          ||¦  «        }t          |dd¬¦  «         |j        |j        k    sJ ‚|j        |j        k    sJ ‚d S )NTr‰   r€   çÍÌÌÌÌÌì?r'   rŒ   )rM   r   r
   r   r2   )rK   rx   rI   rv   rw   r�   r�   s          rL   Útest_roc_curve_confidencer¨   û   s†   € å(°Ð5Ñ5Ô5Ñ€FˆAˆwå$ V¨W°s©]Ñ;Ô;Ñ€CˆˆjÝ�#�s‰mŒm€GÝ˜g t°QÐ7Ñ7Ô7Ð7ØŒ9˜œ	Ò!Ð!Ð!Ð!ØŒ9˜
Ô(Ò(Ð(Ð(Ð(Ð(Ð(rN   c                  ó®  — t          d¬¦  «        \  } }}t          j        | j        ¦  «        }t	          | |¦  «        \  }}}t          ||¦  «        }t          |dd¬¦  «         |j        |j        k    sJ ‚|j        |j        k    sJ ‚t          j        | j        ¦  «        }t	          | |¦  «        \  }}}t          ||¦  «        }t          |dd¬¦  «         |j        |j        k    sJ ‚|j        |j        k    sJ ‚t	          | |¦  «        \  }}}t          ||¦  «        }t          |dd¬¦  «         |j        |j        k    sJ ‚|j        |j        k    sJ ‚d S )NTr‰   r€   r'   rŒ   gö(\�Âõè?)rM   r3   Úonesr2   r   r
   r   Úzeros)rK   ÚpredrI   Útrivial_predrv   rw   r�   r�   s           rL   Útest_roc_curve_hardr®     sp  € å+°4Ð8Ñ8Ô8Ñ€FˆD�'õ ”7˜6œ<Ñ(Ô(€LÝ$ V¨\Ñ:Ô:Ñ€CˆˆjÝ�#�s‰mŒm€GÝ˜g t°QÐ7Ñ7Ô7Ð7ØŒ9˜œ	Ò!Ð!Ð!Ð!ØŒ9˜
Ô(Ò(Ð(Ð(Ð(õ ”8˜FœLÑ)Ô)€LÝ$ V¨\Ñ:Ô:Ñ€CˆˆjÝ�#�s‰mŒm€GÝ˜g t°QÐ7Ñ7Ô7Ð7ØŒ9˜œ	Ò!Ð!Ð!Ð!ØŒ9˜
Ô(Ò(Ð(Ð(Ð(õ % V¨TÑ2Ô2Ñ€CˆˆjÝ�#�s‰mŒm€GÝ˜g t°QÐ7Ñ7Ô7Ð7ØŒ9˜œ	Ò!Ð!Ð!Ð!ØŒ9˜
Ô(Ò(Ð(Ð(Ð(Ð(Ð(rN   c                  óÆ  — g d¢} g d¢}d}t          j        t          |¬¦  «        5  t          | |¦  «        \  }}}d d d ¦  «         n# 1 swxY w Y   t	          |t          j        t          |¦  «        t
          j        ¦  «        ¦  «         |j	        |j	        k    sJ ‚|j	        |j	        k    sJ ‚d}t          j        t          |¬¦  «        5  t          d„ | D ¦   «         |¦  «        \  }}}d d d ¦  «         n# 1 swxY w Y   t	          |t          j        t          |¦  «        t
          j        ¦  «        ¦  «         |j	        |j	        k    sJ ‚|j	        |j	        k    sJ ‚d S )N)
r.   r.   r.   r.   r.   r.   r.   r.   r.   r.   )
r   r.   r   r.   r   r.   r   r.   r   r.   úINo negative samples in y_true, false positive value should be meaningless©ÚmatchúHNo positive samples in y_true, true positive value should be meaninglessc                 ó   — g | ]}d |z
  ‘ŒS )r.   © )Ú.0Úxs     rL   ú
<listcomp>z,test_roc_curve_one_label.<locals>.<listcomp>6  s   € Ð)@Ð)@Ð)@°A¨!¨a©%Ð)@Ð)@Ð)@rN   )
r¢   Úwarnsr   r   r   r3   ÚfullrU   Únanr2   )rK   rJ   Úexpected_messagerv   rw   r�   s         rL   Útest_roc_curve_one_labelr½   "  sþ  € Ø+Ð+Ð+€FØ+Ð+Ð+€Fð 	Tð õ 
ŒÕ,Ð4DÐ	EÑ	EÔ	Eð 9ð 9Ý(¨°Ñ8Ô8ÑˆˆS�*ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9õ �s�BœG¥C¨
¡O¤OµR´VÑ<Ô<Ñ=Ô=Ð=ØŒ9˜œ	Ò!Ð!Ð!Ð!ØŒ9˜
Ô(Ò(Ð(Ð(Ð(ð 	Sð õ 
ŒÕ,Ð4DÐ	EÑ	EÔ	Eð Jð JÝ(Ð)@Ð)@¸Ð)@Ñ)@Ô)@À&ÑIÔIÑˆˆS�*ðJð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jõ �s�BœG¥C¨
¡O¤OµR´VÑ<Ô<Ñ=Ô=Ð=ØŒ9˜œ	Ò!Ð!Ð!Ð!ØŒ9˜
Ô(Ò(Ð(Ð(Ð(Ð(Ð(s#   ¦AÁAÁAÃC8Ã8C<Ã?C<c                  óÒ  — ddg} ddg}t          | |¦  «        \  }}}t          | |¦  «        }t          |g d¢¦  «         t          |g d¢¦  «         t          |d¦  «         ddg} ddg}t          | |¦  «        \  }}}t          | |¦  «        }t          |g d¢¦  «         t          |g d¢¦  «         t          |d¦  «         ddg} ddg}t          | |¦  «        \  }}}t          | |¦  «        }t          |ddg¦  «         t          |ddg¦  «         t          |d¦  «         ddg} ddg}t          | |¦  «        \  }}}t          | |¦  «        }t          |g d¢¦  «         t          |g d¢¦  «         t          |d¦  «         ddg} ddg}t          | |¦  «        \  }}}t          | |¦  «        }t          |ddg¦  «         t          |ddg¦  «         t          |d¦  «         ddg} dd	g}d
}t	          j        t          |¬¦  «        5  t          | |¦  «        \  }}}d d d ¦  «         n# 1 swxY w Y   t	          j        t          ¦  «        5  t          | |¦  «         d d d ¦  «         n# 1 swxY w Y   t          |g d¢¦  «         t          |t          j
        t          j
        t          j
        g¦  «         ddg} dd	g}d}t	          j        t          |¬¦  «        5  t          | |¦  «        \  }}}d d d ¦  «         n# 1 swxY w Y   t	          j        t          ¦  «        5  t          | |¦  «         d d d ¦  «         n# 1 swxY w Y   t          |t          j
        t          j
        t          j
        g¦  «         t          |g d¢¦  «         t          j        ddgddgg¦  «        } t          j        ddgddgg¦  «        }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          t          | |d¬¦  «        d¦  «         t          t          | |d¬¦  «        d¦  «         t          j        ddgddgg¦  «        } t          j        ddgddgg¦  «        }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          t          | |d¬¦  «        d¦  «         t          t          | |d¬¦  «        d¦  «         t          j        ddgddgg¦  «        } t          j        ddgddgg¦  «        }t          t          | |d¬¦  «        d¦  «         t          t          | |d¬¦  «        d¦  «         t          t          | |d¬¦  «        d¦  «         t          t          | |d¬¦  «        d¦  «         t          j        ddgddgg¦  «        } t          j        ddgddgg¦  «        }t          t          | |d¬¦  «        d¦  «         t          t          | |d¬¦  «        d¦  «         t          t          | |d¬¦  «        d¦  «         t          t          | |d¬¦  «        d¦  «         d S )Nr   r.   ©r   r   r.   ©r   r.   r.   r]   ç        r€   ç      Ð?ç      è?r³   r±   ©rÁ   r€   r]   r°   Úmacro©ÚaverageÚweightedÚsamplesÚmicro)r   r   r   r   r¢   r¹   r   r£   r¤   r3   r»   r˜   )rK   rI   rw   rv   rx   r�   r¼   s          rL   Útest_roc_curve_toydatarË   =  sü  € à�ˆV€FØ�!ˆf€GÝ˜F GÑ,Ô,�K€CˆˆaÝ˜F GÑ,Ô,€GÝ˜c 9 9 9Ñ-Ô-Ð-Ý˜c 9 9 9Ñ-Ô-Ð-Ý˜ Ñ%Ô%Ð%à�ˆV€FØ�!ˆf€GÝ˜F GÑ,Ô,�K€CˆˆaÝ˜F GÑ,Ô,€GÝ˜c 9 9 9Ñ-Ô-Ð-Ý˜c 9 9 9Ñ-Ô-Ð-Ý˜ Ñ%Ô%Ð%à�ˆV€FØ�!ˆf€GÝ˜F GÑ,Ô,�K€CˆˆaÝ˜F GÑ,Ô,€GÝ˜c A q 6Ñ*Ô*Ð*Ý˜c A q 6Ñ*Ô*Ð*Ý˜ Ñ%Ô%Ð%à�ˆV€FØ�!ˆf€GÝ˜F GÑ,Ô,�K€CˆˆaÝ˜F GÑ,Ô,€GÝ˜c 9 9 9Ñ-Ô-Ð-Ý˜c 9 9 9Ñ-Ô-Ð-Ý˜ Ñ%Ô%Ð%à�ˆV€FØ�Cˆj€GÝ˜F GÑ,Ô,�K€CˆˆaÝ˜F GÑ,Ô,€GÝ˜c A q 6Ñ*Ô*Ð*Ý˜c A q 6Ñ*Ô*Ð*Ý˜ Ñ%Ô%Ð%à�ˆV€FØ�Tˆl€Gð 	Sð õ 
ŒÕ,Ð4DÐ	EÑ	EÔ	Eð 1ð 1Ý ¨Ñ0Ô0‰ˆˆS�!ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1õ 
Œ•zÑ	"Ô	"ð 'ð 'Ý�f˜gÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'å˜c ? ? ?Ñ3Ô3Ð3Ý˜c¥B¤F­B¬FµB´FÐ#;Ñ<Ô<Ð<à�ˆV€FØ�Tˆl€Gð 	Tð õ 
ŒÕ,Ð4DÐ	EÑ	EÔ	Eð 1ð 1Ý ¨Ñ0Ô0‰ˆˆS�!ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1õ 
Œ•zÑ	"Ô	"ð 'ð 'Ý�f˜gÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'å˜c¥B¤F­B¬FµB´FÐ#;Ñ<Ô<Ð<Ý˜c ? ? ?Ñ3Ô3Ð3õ ŒX˜˜1�v  1˜vÐ&Ñ'Ô'€FÝŒh˜˜A˜  A Ð'Ñ(Ô(€GÝ	Œ•zÑ	"Ô	"ð 8ð 8Ý�f˜g¨wÐ7Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8å	Œ•zÑ	"Ô	"ð ;ð ;Ý�f˜g¨zÐ:Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;å� f¨g¸yÐIÑIÔIÈ3ÑOÔOÐOÝ� f¨g¸wÐGÑGÔGÈÑMÔMÐMåŒX˜˜1�v  1˜vÐ&Ñ'Ô'€FÝŒh˜˜A˜  A Ð'Ñ(Ô(€GÝ	Œ•zÑ	"Ô	"ð 8ð 8Ý�f˜g¨wÐ7Ñ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8å	Œ•zÑ	"Ô	"ð ;ð ;Ý�f˜g¨zÐ:Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;å� f¨g¸yÐIÑIÔIÈ3ÑOÔOÐOÝ� f¨g¸wÐGÑGÔGÈÑMÔMÐMåŒX˜˜1�v  1˜vÐ&Ñ'Ô'€FÝŒh˜˜A˜  A Ð'Ñ(Ô(€GÝ� f¨g¸wÐGÑGÔGÈÑKÔKÐKÝ� f¨g¸zÐJÑJÔJÈAÑNÔNÐNÝ� f¨g¸yÐIÑIÔIÈ1ÑMÔMÐMÝ� f¨g¸wÐGÑGÔGÈÑKÔKÐKåŒX˜˜1�v  1˜vÐ&Ñ'Ô'€FÝŒh˜˜c˜
 S¨# JÐ/Ñ0Ô0€GÝ� f¨g¸wÐGÑGÔGÈÑMÔMÐMÝ� f¨g¸zÐJÑJÔJÈCÑPÔPÐPÝ� f¨g¸yÐIÑIÔIÈ3ÑOÔOÐOÝ� f¨g¸wÐGÑGÔGÈÑMÔMÐMÐMÐMs�   ÈH'È'H+È.H+ÉI(É(I,É/I,ËK<Ë<L ÌL Ì L=Ì=MÍMÏO7Ï7O;Ï>O;ÐP:Ð:P>ÑP>ÓS1Ó1S5Ó8S5ÔT4Ô4T8Ô;T8c            	      óú   — g d¢} g d¢}t          | |d¬¦  «        \  }}}t          |t          j        dddg¦  «         g d¢} g d	¢}t          | |d¬¦  «        \  }}}t          |t          j        dd
dddg¦  «         d S )N©r   r   r   r   r.   r.   ©rÁ   çš™™™™™É?r€   ç333333ã?çffffffæ?r]   TrŠ   r]   rÑ   rÁ   ©r   r   r   r   r   r   r   r.   r.   r.   r.   r.   r.   ©rÁ   çš™™™™™¹?rÐ   rÐ   rÑ   çš™™™™™é?r§   rÐ   rÑ   rÕ   r§   r§   r]   r§   rÐ   )r   r   r3   Úinf)rK   rI   rw   rv   r�   s        rL   Ú test_roc_curve_drop_intermediater×   ¥  s¦   € àÐÐ€FØ,Ð,Ð,€GÝ$ V¨WÈÐMÑMÔMÑ€CˆˆjÝ˜j­2¬6°3¸¸SÐ*AÑBÔBÐBð 5Ð4Ð4€FØOÐOÐO€GÝ$ V¨WÈÐMÑMÔMÑ€CˆˆjÝ˜j­2¬6°3¸¸SÀ#ÀsÐ*KÑLÔLÐLÐLÐLrN   c                  ó,  — g d¢} g d¢}t          j        dd¦  «        }t          | ||¬¦  «        \  }}}t          j        |¦  «        dk                          ¦   «         dk    sJ ‚t          j        |¦  «        dk                          ¦   «         dk    sJ ‚d S )N©r   r   r.   r.   r.   )rÔ   rÑ   ç333333Ó?çš™™™™™Ù?r€   rÏ   é   ©Úsample_weightr   )r3   Úrepeatr   ÚdiffrS   )rK   rI   rÞ   rv   rw   rx   s         rL   Ú!test_roc_curve_fpr_tpr_increasingrá   ³  s�   € ð ˆ_ˆ_€FØ'Ð'Ð'€GÝ”I˜c 1Ñ%Ô%€MÝ˜F G¸=ÐIÑIÔI�K€CˆˆaÝŒG�C‰LŒL˜1Ò×!Ò!Ñ#Ô# qÒ(Ð(Ð(Ð(ÝŒG�C‰LŒL˜1Ò×!Ò!Ñ#Ô# qÒ(Ð(Ð(Ð(Ð(Ð(rN   c                  ó‚  — ddg} ddg}t          t          | |¦  «        d¦  «         ddg} ddg}t          t          | |¦  «        d¦  «         g d¢} g d¢}t          t          | |¦  «        d¦  «         ddg} ddg}t          t          | |¦  «        d¦  «         g d¢} g d¢}t          t          | |¦  «        d¦  «         d S )Nr   r.   r€   ©r.   r   r   rÀ   ©r   r€   r.   )r   r
   )r·   rB   s     rL   Útest_aucrå   ¿  sÚ   € à	
ˆAˆ€AØ	
ˆAˆ€AÝ�c ! Q™iœi¨Ñ-Ô-Ð-Ø	
ˆAˆ€AØ	
ˆAˆ€AÝ�c ! Q™iœi¨Ñ-Ô-Ð-Øˆ	ˆ	€AØˆ	ˆ	€AÝ�c ! Q™iœi¨Ñ-Ô-Ð-Ø	
ˆAˆ€AØ	
ˆAˆ€AÝ�c ! Q™iœi¨Ñ+Ô+Ð+Øˆˆ€AØˆˆ€AÝ�c ! Q™iœi¨Ñ-Ô-Ð-Ð-Ð-rN   c                  ó   — t          j        t          ¦  «        5  t          g d¢ddg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          dgdg¦  «         d d d ¦  «         n# 1 swxY w Y   g d¢} g d¢}d                     t          j        | ¦  «        ¦  «        }t          j        t          t          j        |¦  «        ¬¦  «        5  t          | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NrÄ   rÔ   rÏ   rÁ   )r'   r.   r”   é   )rÜ   é   é   é   z+x is neither increasing nor decreasing : {}r±   )	r¢   r£   r¤   r
   Úformatr3   r˜   ÚreÚescape)r·   rB   Úerror_messages      rL   Útest_auc_errorsrï   Ò  sº  € å	Œ•zÑ	"Ô	"ð )ð )ÝˆOˆOˆO˜c 3˜ZÑ(Ô(Ð(ð)ð )ð )ñ )ô )ð )ð )ð )ð )ð )ð )øøøð )ð )ð )ð )õ 
Œ•zÑ	"Ô	"ð ð ÝˆSˆE�C�5ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð 	ˆˆ€AØˆˆ€AØA×HÒHÍÌÐRSÉÌÑUÔU€MÝ	Œ•z­¬°=Ñ)AÔ)AÐ	BÑ	BÔ	Bð ð ÝˆAˆq‰	Œ	ˆ	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s1   š;»?Á?ÁA>Á>BÂBÃ%DÄDÄ
Dzy_true, labels)r   r.   r   r'   ©r   r.   r'   )ÚaÚbrñ   Úc)rñ   rò   ró   c           	      óÔ  — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          g d¢g d¢¦  «        }t          g d¢g d¢¦  «        }||z   d	z  }t          g d
¢g d¢¦  «        }t          g d¢g d¢¦  «        }||z   d	z  }t          ddgddg¦  «        }	t          ddgddg¦  «        }
|	|
z   d	z  }||z   |z   dz  }t          t          | ||d¬¦  «        |¦  «         |||g}g d¢}t          j        ||¬¦  «        }t          t          | ||dd¬¦  «        |¦  «         d}t          j        t          |¬¦  «        5  t          | ||dd ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N©rÔ   rÕ   rÔ   ©rÚ   rÛ   rÚ   ©çffffffÖ?r€   ç333333Ã?©r   rÏ   rÕ   ©r.   r   r.   )rÔ   rÚ   rø   ©r   r.   r   )rÕ   rÛ   r€   r'   ©r.   r.   r   )rÔ   rø   r   r¿   )rÔ   rù   rÕ   r.   r   rÛ   rÏ   rÚ   rÕ   r”   Úovo©ÚlabelsÚmulti_class)rÃ   rÃ   r€   )ÚweightsrÈ   ©r   r  rÇ   z6average=None is not implemented for multi_class='ovo'.r±   )r3   r˜   r   r   rÇ   r¢   r£   ÚNotImplementedError)rK   r   Úy_scoresÚscore_01Úscore_10Úaverage_score_01Úscore_02Úscore_20Úaverage_score_02Úscore_12Úscore_21Úaverage_score_12Úovo_unweighted_scoreÚpair_scoresÚ
prevalenceÚovo_weighted_scorerî   s                    rL   Ú#test_multiclass_ovo_roc_auc_toydatar  ã  sQ  € õ ŒxØ	ˆˆ˜/˜/˜/Ð+<Ð+<Ð+<¸m¸m¸mÐLñô €Hõ ˜Y˜Y˜YÐ(8Ð(8Ð(8Ñ9Ô9€Hå˜Y˜Y˜Y¨¨¨Ñ8Ô8€HØ  8Ñ+¨qÑ0Ðõ ˜Y˜Y˜Y¨¨¨Ñ7Ô7€HÝ˜Y˜Y˜YÐ(8Ð(8Ð(8Ñ9Ô9€HØ  8Ñ+¨qÑ0Ðõ ˜a ˜V c¨3 ZÑ0Ô0€HÝ˜a ˜V c¨3 ZÑ0Ô0€HØ  8Ñ+¨qÑ0Ðð -Ð/?Ñ?ÐBRÑRÐVWÑWÐÝÝ�f˜h¨vÀ5ÐIÑIÔIØñô ð ð $Ð%5Ð7GÐH€KØ#Ð#Ð#€JÝœ K¸ÐDÑDÔDÐÝÝØ�H V¸È
ð	
ñ 	
ô 	
ð 	ñ	ô ð ð M€MÝ	ŒÕ*°-Ð	@Ñ	@Ô	@ð Xð XÝ�f˜h¨vÀ5ÐRVÐWÑWÔWÐWðXð Xð Xñ Xô Xð Xð Xð Xð Xð Xð Xð Xøøøð Xð Xð Xð Xð Xð Xs   Ä;EÅE!Å$E!)r   r'   r   r'   )rñ   Údrñ   r  )rñ   rò   r  c           	      ó,  — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          g d¢g d¢¦  «        }t          g d¢g d¢¦  «        }||z   d	z  }t          t          | ||d
¬¦  «        |¦  «         t          t          | ||d
d¬¦  «        |¦  «         d S )N)rÏ   rÁ   rÕ   )rÐ   rÁ   rÛ   )çš™™™™™á?rÁ   çÍÌÌÌÌÌÜ?)rÛ   rÁ   rÐ   )r.   r   r.   r   )rÏ   rÐ   r  rÛ   )r   r.   r   r.   )rÕ   rÛ   r  rÐ   r'   rþ   rÿ   rÈ   r  ©r3   r˜   r   r   )rK   r   r  r  r  Ú	ovo_scores         rL   Ú*test_multiclass_ovo_roc_auc_toydata_binaryr    sá   € õ ŒxØ	ˆˆ˜/˜/˜/Ð+<Ð+<Ð+<¸o¸o¸oÐNñô €Hõ ˜\˜\˜\Ð+@Ð+@Ð+@ÑAÔA€Hå˜\˜\˜\Ð+@Ð+@Ð+@ÑAÔA€HØ˜HÑ$¨Ñ)€IåÝ�f˜h¨vÀ5ÐIÑIÔIÈ9ñô ð õ
 ÝØ�H V¸È
ð	
ñ 	
ô 	
ð 	ñ	ô ð ð ð rN   )r   r.   r'   r'   )rñ   rò   ró   ró   c           	      óö  — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          g d¢|d d …df         ¦  «        }t          g d¢|d d …df         ¦  «        }t          g d	¢|d d …d
f         ¦  «        }t          t          | |d|d ¬¦  «        |||g¦  «         ||z   |z   dz  }t          t          | |d|¬¦  «        |¦  «         |dz  |dz  z   |dz  z   }t          t          | |d|d¬¦  «        |¦  «         d S )N©r]   rÁ   rÁ   )rÔ   r€   rÛ   )rÔ   rÔ   rÕ   )rÚ   rÚ   rÛ   ©r.   r   r   r   r   )r   r.   r   r   r.   ©r   r   r.   r.   r'   Úovr)r  r   rÇ   g      @)r  r   rÂ   r€   rÈ   r  )rK   r   r  Úout_0Úout_1Úout_2Úresult_unweightedÚresult_weighteds           rL   Ú#test_multiclass_ovr_roc_auc_toydatar%  B  s]  € õ ŒxØ	ˆˆ˜/˜/˜/¨?¨?¨?¸O¸O¸OÐLñô €Hõ
 ˜,˜,˜,¨°°°°A°¬Ñ7Ô7€EÝ˜,˜,˜,¨°°°°A°¬Ñ7Ô7€EÝ˜,˜,˜,¨°°°°A°¬Ñ7Ô7€EÝÝ�f˜h°EÀ&ÐRVÐWÑWÔWØ	��uÐñô ð ð  ™¨Ñ.°#Ñ5ÐÝÝ�f˜h°EÀ&ÐIÑIÔIØñô ð ð ˜d‘l U¨T¡\Ñ1°E¸C±KÑ?€OÝÝØ�H¨%¸È
ð	
ñ 	
ô 	
ð 	ñ	ô ð ð ð rN   zmulti_class, average))r  rÅ   )r  rÊ   )rþ   rÅ   c                 ób  — t          j        g d¢¦  «        }g d¢g d¢g d¢g d¢g}t          t          ||| |¬¦  «        d¦  «         g d¢g d¢g d¢g d¢g}t          ||| |¬¦  «        dk     sJ ‚dt          j        d	¦  «        z  }t          ||| |¬¦  «        t          j        d
¦  «        k    sJ ‚d S )N)r”   r.   r'   r   )rÁ   rÁ   rÁ   r]   )rÁ   r]   rÁ   rÁ   )rÁ   rÁ   r]   rÁ   )rÃ   çš™™™™™©?r'  rù   ©r  rÇ   r]   rÂ   )rç   rç   r€   )r3   r˜   r   r   rª   r¢   Úapprox)r  rÇ   rK   Ú	y_perfectÚy_imperfectÚy_chances         rL   Ú0test_perfect_imperfect_chance_multiclass_roc_aucr-  m  s#  € õ ŒX�l�l�lÑ#Ô#€Fð 	ÐÐØÐÐØÐÐØ Ð Ð ð	€Iõ Ý�f˜i°[È'ÐRÑRÔRØñô ð ð 	ÐÐØÐÐØÐÐØÐÐð	€Kõ 	�f˜k°{ÈGÐTÑTÔTØ
ò	ð 	ð 	ð 	ð
 •b”g˜f‘o”oÑ%€HÝØ� k¸7ðñ ô å	Œ�sÑ	Ô	òð ð ð ð ð rN   c                 ó¤  ‡	— | Š	t           j                             g d¢d‰	¬¦  «        }t          j        ˆ	fd„|D ¦   «         ¦  «        }t          |g d¢¬¦  «        }t          |                     ¦   «         |                     ¦   «         ¦  «        \  }}}t          ||¦  «        }t          ||dd¬	¦  «        }|t          j        |¦  «        k    sJ ‚d S )
N)ç       @r]   r€   éè  )r—   r-   c                 óx   •— g | ]6}t           j                             d |‰¬¦  «                             ¦   «         ‘Œ7S )r.   )ÚnrE   r-   )r   ÚmultinomialÚrvsrr   )r¶   Úy_pred_iÚseeds     €rL   r¸   z3test_micro_averaged_ovr_roc_auc.<locals>.<listcomp>Ÿ  sM   ø€ ð 	
ð 	
ð 	
àõ Ô×!Ò! A¨ÀÐ!ÑEÔE×LÒLÑNÔNð	
ð 	
ð 	
rN   rð   )Úclassesr  rÊ   r(  )r   Ú	dirichletr4  r3   Úasarrayr   r   Úravelr
   r   r¢   r)  )
Úglobal_random_seedrJ   rK   Úy_onehotrv   rw   rx   Úroc_auc_by_handÚroc_auc_autor6  s
            @rL   Útest_micro_averaged_ovr_roc_aucr?  —  sä   ø€ Ø€Dõ
 Œ_× Ò    °tÈ$Ð ÑOÔO€FÝŒZð	
ð 	
ð 	
ð 	
à"ð	
ñ 	
ô 	
ñô €Fõ ˜f¨i¨i¨iÐ8Ñ8Ô8€HÝ˜HŸNšNÑ,Ô,¨f¯lªl©n¬nÑ=Ô=�K€CˆˆaÝ˜#˜s‘m”m€OÝ  ¨¸UÈGÐTÑTÔT€LØ�fœm¨LÑ9Ô9Ò9Ð9Ð9Ð9Ð9Ð9rN   zmsg, y_true, labelsz!Parameter 'labels' must be unique©r   r'   r   )rñ   rñ   rò   zKNumber of classes in y_true not equal to the number of columns in 'y_score'z"Parameter 'labels' must be ordered)rñ   ró   rò   zMNumber of given labels, 2, not equal to the number of columns in 'y_score', 3r.   rñ   rò   zMNumber of given labels, 4, not equal to the number of columns in 'y_score', 3)r   r.   r'   r”   )rñ   rò   ró   r  z2'y_true' contains labels not in parameter 'labels')rñ   rò   ró   Úer  rþ   r  c                 óÔ   — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          j        t          | ¬¦  «        5  t          ||||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrõ   rö   r÷   rú   r±   rÿ   )r3   r˜   r¢   r£   r¤   r   )ÚmsgrK   r   r  r  s        rL   Ú*test_roc_auc_score_multiclass_labels_errorrD  «  sÛ   € õR ŒxØ	ˆˆ˜/˜/˜/Ð+<Ð+<Ð+<¸m¸m¸mÐLñô €Hõ 
Œ•z¨Ð	-Ñ	-Ô	-ð Pð PÝ�f˜h¨vÀ;ÐOÑOÔOÐOðPð Pð Pñ Pô Pð Pð Pð Pð Pð Pð Pð Pøøøð Pð Pð Pð Pð Pð Ps   ¼AÁA!Á$A!zmsg, kwargszLaverage must be one of \('macro', 'weighted', None\) for multiclass problemsrÉ   )rÇ   r  zUaverage must be one of \('micro', 'macro', 'weighted', None\) for multiclass problemszksample_weight is not supported for multiclass one-vs-one ROC AUC, 'sample_weight' must be None in this case)r  rÞ   z|Partial AUC computation not available in multiclass setting, 'max_fpr' must be set to `None`, received `max_fpr=0.5` insteadr€   )r  ru   z'multi_class must be in \('ovo', 'ovr'\)c                 ó"  — t          d¦  «        }|                     dd¦  «        }t          |¦  «        }|                     ddd¬¦  «        }t	          j        t          | ¬¦  «        5  t          ||fi |¤Ž d d d ¦  «         d S # 1 swxY w Y   d S )Né”  é   r”   r   r–   r±   )r%   Úrandr!   r™   r¢   r£   r¤   r   )rC  ÚkwargsrF   rI   Úy_probrK   s         rL   Ú#test_roc_auc_score_multiclass_errorrK  ü  sØ   € õN ˜SÑ
!Ô
!€CØ�hŠh�r˜1‰oŒo€GÝ�WÑÔ€FØ�[Š[˜˜A Bˆ[Ñ'Ô'€FÝ	Œ•z¨Ð	-Ñ	-Ô	-ð 0ð 0Ý�f˜fÐ/Ð/¨Ð/Ð/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0ð 0ð 0s   Á(BÂBÂBc                  ó&  — t          d¦  «        } |                      d¦  «        }t          j        dd¬¦  «        }d}t	          j        t          |¬¦  «        5  t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        dd¬¦  «        }t	          j        t          |¬¦  «        5  t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        ddd¬¦  «        }t	          j        t          |¬¦  «        5  t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d¬	¦  «        5  t          d¦  «        } |                      d¦  «        }t          j        dd¬¦  «        }t	          j        t          |¬¦  «        5  t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        dd¬¦  «        }t	          j        t          |¬¦  «        5  t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          j	        ddd¬¦  «        }t	          j        t          |¬¦  «        5  t          ||¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )
NrF  é
   r6   ©ÚdtypezROC AUC score is not definedr±   rP   T)Úrecord)r%   rH  r3   r«   r¢   r£   r¤   r   rª   rº   ÚwarningsÚcatch_warnings)rF   rJ   rK   Úerr_msgs       rL   Útest_auc_score_non_binary_classrT  +  s  € õ ˜SÑ
!Ô
!€CØ�XŠX�b‰\Œ\€FåŒX�b Ð&Ñ&Ô&€FØ,€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð &ð &Ý�f˜fÑ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &åŒW�R˜uÐ%Ñ%Ô%€FÝ	Œ•z¨Ð	1Ñ	1Ô	1ð &ð &Ý�f˜fÑ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &åŒW�R˜ 5Ð)Ñ)Ô)€FÝ	Œ•z¨Ð	1Ñ	1Ô	1ð &ð &Ý�f˜fÑ%Ô%Ð%ð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &õ 
Ô	 ¨Ð	-Ñ	-Ô	-ð *ð *Ý  Ñ%Ô%ˆØ—’˜"‘”ˆå”˜" EÐ*Ñ*Ô*ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	*ð 	*Ý˜& &Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*å”˜ 5Ð)Ñ)Ô)ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	*ð 	*Ý˜& &Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*å”˜˜R uÐ-Ñ-Ô-ˆÝŒ]�:¨WÐ5Ñ5Ô5ð 	*ð 	*Ý˜& &Ñ)Ô)Ð)ð	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð *ð *sµ   ÁA5Á5A9Á<A9Â1CÃCÃCÄD(Ä(D,Ä/D,ÅAJÆF;Æ/JÆ;F?	Æ?JÇF?	Ç4JÇ7HÈJÈH	ÈJÈH	È5JÉI.É"JÉ.I2	É2JÉ5I2	É6JÊJ
ÊJ
Ú
curve_funcc                 ó  — t          d¦  «        }|                     ddd¬¦  «        }|                     d¦  «        }d}t          j        t
          |¬¦  «        5   | ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrF  r   r”   rM  r–   z"multiclass format is not supportedr±   )r%   r™   rH  r¢   r£   r¤   )rU  rF   rK   rJ   rC  s        rL   Ú&test_binary_clf_curve_multiclass_errorrW  K  sÅ   € å
˜SÑ
!Ô
!€CØ�[Š[˜˜A Bˆ[Ñ'Ô'€FØ�XŠX�b‰\Œ\€FØ
.€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð #ð #Øˆ
�6˜6Ñ"Ô"Ð"ð#ð #ð #ñ #ô #ð #ð #ð #ð #ð #ð #ð #øøøð #ð #ð #ð #ð #ð #s   ÁA4Á4A8Á;A8c                 ó  — d}t          j        t          |¬¦  «        5   | t          j        ddgd¬¦  «        ddg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          |¬¦  «        5   | t          j        ddgt
          ¬¦  «        ddg¦  «         d d d ¦  «         n# 1 swxY w Y   g d	¢} | g d
¢|¦  «        } | g d¢|¦  «        }t          ||¦  «        D ]%\  }}t          j                             ||¦  «         Œ&d S )Nz‘y_true takes value in {'a', 'b'} and pos_label is not specified: either make y_true take value in {0, 1} or {-1, 1} or pass pos_label explicitly.r±   rñ   rò   z<U1rN  rÁ   r]   )rÁ   r]   rÏ   gáz®GáÚ?)r   r.   r.   r   )rÁ   r]   r]   rÁ   )	r¢   r£   r¤   r3   r˜   ÚobjectÚzipÚtestingr   )rU  rC  rJ   Ú	int_curveÚfloat_curveÚint_curve_partÚfloat_curve_parts          rL   Ú(test_binary_clf_curve_implicit_pos_labelr`  U  sÛ  € ð
	ð õ 
Œ•z¨Ð	-Ñ	-Ô	-ð Bð BØˆ
•2”8˜S #˜J¨eÐ4Ñ4Ô4°s¸C°jÑAÔAÐAðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bõ 
Œ•z¨Ð	-Ñ	-Ô	-ð Cð CØˆ
•2”8˜S #˜J­fÐ5Ñ5Ô5¸¸S°zÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð
 #Ð"Ð"€FØ�
˜<˜<˜<¨Ñ0Ô0€IØ�*Ð1Ð1Ð1°6Ñ:Ô:€KÝ,/°	¸;Ñ,GÔ,Gð Eð EÑ(ˆÐ(Ý
Œ
×"Ò" >Ð3CÑDÔDÐDÐDðEð Es#   ž%AÁAÁAÁ5*B+Â+B/Â2B/)ÚcategoryÚlabels_typerh   r˜   c                 ó²   — t          ddg|¦  «        }d}t          j        t          |¬¦  «        5   | |ddg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nó   aó   bz“y_true takes value in {b'a', b'b'} and pos_label is not specified: either make y_true take value in {0, 1} or {-1, 1} or pass pos_label explicitly.r±   rÁ   r]   )r   r¢   r£   r¤   )rU  rb  r   rC  s       rL   Ú.test_binary_clf_curve_implicit_bytes_pos_labelrf  o  s²   € õ    t ¨kÑ:Ô:€Fð	0ð õ
 
Œ•z¨Ð	-Ñ	-Ô	-ð 'ð 'Øˆ
�6˜C ˜:Ñ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'ð 'ð 's   °AÁAÁAc                 óÒ   — g d¢}g d¢}g d¢} | |||¬¦  «        } | |d d…         |d d…         |d d…         ¬¦  «        }t          ||¦  «        D ]\  }}t          ||¦  «         Œd S )NrÙ   )rÔ   rÏ   rÚ   rÛ   r€   )r.   r.   r.   r€   r   rÝ   rP   )rZ  r   )rU  rK   rI   rÞ   Úresult_1Úresult_2Úarr_1Úarr_2s           rL   Ú(test_binary_clf_curve_zero_sample_weightrl    s£   € àˆ_ˆ_€FØ'Ð'Ð'€GØ%Ð%Ð%€Màˆz˜& '¸ÐGÑGÔG€HØˆz˜&  " œ+ w¨s°¨s¤|À=ÐQTÐRTÐQTÔCUÐVÑVÔV€Hå˜H hÑ/Ô/ð &ð &‰ˆˆuÝ˜˜uÑ%Ô%Ð%Ð%ð&ð &rN   c                 ó  — t          d¬¦  «        \  }}}t          ||| ¦  «         t          |dd …         |dd …         | ¬¦  «        \  }}}|d         dk    sJ ‚|d         |dd …                              ¦   «         k    sJ ‚d|t	          j        |dk    ¦  «        <   |                     ¦   «         }t          ||| ¦  «         t          ||¦  «         g d¢}g d	¢}	t          ||	| ¬¦  «        \  }}}| r7t          |g d
¢¦  «         t          |g d¢¦  «         t          |g d¢¦  «         n6t          |g d¢¦  «         t          |g d¢¦  «         t          |g d	¢¦  «         |j	        |j	        k    sJ ‚|j	        |j	        dz   k    sJ ‚d S )NTr‰   r.   rŠ   r   r]   rP   ©r.   r   r   r.   )r.   r'   r”   rç   )r€   çÚÁQUUÕ?r]   r]   )r]   r€   r€   rÁ   )r.   r'   rç   )r€   ro  r€   r]   r]   )r]   r€   r€   r€   rÁ   )
rM   Ú_test_precision_recall_curver   Úmeanr3   ÚwhereÚcopyr   r   r—   )
r‡   rK   rx   rI   rE   Úrrž   Úy_true_copyr   Úpredict_probass
             rL   Útest_precision_recall_curverw  Œ  sÈ  € å(°Ð5Ñ5Ô5Ñ€FˆAˆwÝ  ¨°$Ñ7Ô7Ð7õ % V¨A¨B¨B¤Z°¸¸¸´ÐPTÐUÑUÔU�G€A€qˆ!ØˆQŒ4�3Š;ˆ;ˆ;ˆ;ØˆQŒ4�6˜!˜"˜"”:—?’?Ñ$Ô$Ò$Ð$Ð$Ð$ð %'€F�2Œ8�F˜a’KÑ Ô Ñ!Ø—+’+‘-”-€KÝ  ¨°$Ñ7Ô7Ð7Ý�{ FÑ+Ô+Ð+àˆ\ˆ\€FØ!�\�\€NÝ$ V¨^ÈtÐTÑTÔT�G€A€qˆ!Øð )Ý˜Ð6Ð6Ð6Ñ7Ô7Ð7Ý˜Ð/Ð/Ð/Ñ0Ô0Ð0Ý˜˜9˜9˜9Ñ%Ô%Ð%Ð%å˜Ð;Ð;Ð;Ñ<Ô<Ð<Ý˜Ð4Ð4Ð4Ñ5Ô5Ð5Ý˜˜<˜<˜<Ñ(Ô(Ð(ØŒ6�Q”VÒÐÐÐØŒ6�Q”V˜a‘ZÒÐÐÐÐÐrN   c                 óÜ  — t          | ||¬¦  «        \  }}}t          | |¦  «        }t          |dd¦  «         t          |t          | |¦  «        ¦  «         t	          t          | |¦  «        |d¬¦  «         |j        |j        k    sJ ‚|j        |j        dz   k    sJ ‚t          | t          j        |¦  «        |¬¦  «        \  }}}|j        |j        k    sJ ‚|j        |j        dz   k    sJ ‚d S )NrŠ   g°rh‘í|ë?r”   r'   rŒ   r.   )	r   rn   r   r   r   rf   r—   r3   Ú
zeros_like)rK   rI   r‡   rE   rt  r�   Úprecision_recall_aucs          rL   rp  rp  ¬  s"  € å-¨f°gÐQUÐVÑVÔVÑ€A€qˆ*Ý2°6¸7ÑCÔCÐÝÐ2°E¸1Ñ=Ô=Ð=ÝØÕ5°f¸gÑFÔFñô ð õ Ý˜6 7Ñ+Ô+Ð-AÈ1ðñ ô ð ð Œ6�Q”VÒÐÐÐØŒ6�Z”_ qÑ(Ò(Ð(Ð(Ð(å-Ø•”˜gÑ&Ô&¸$ðñ ô Ñ€A€qˆ*ð Œ6�Q”VÒÐÐÐØŒ6�Z”_ qÑ(Ò(Ð(Ð(Ð(Ð(Ð(rN   c           	      ó(  — t          j        d¬¦  «        5  ddg}ddg}t          ||| ¬¦  «        \  }}}t          ||¦  «        }t	          |g d¢¦  «         t	          |g d¢¦  «         t          |d¦  «         ddg}ddg}t          ||| ¬¦  «        \  }}}t          ||¦  «        }t	          |g d	¢¦  «         t	          |g d
¢¦  «         t          |d¦  «         ddg}ddg}t          ||| ¬¦  «        \  }}}t          ||¦  «        }t	          |ddg¦  «         t	          |ddg¦  «         t          |d¦  «         ddg}ddg}t          ||| ¬¦  «        \  }}}t          ||¦  «        }t	          |g d¢¦  «         t	          |g d¢¦  «         t          |d¦  «         ddg}ddg}t          ||| ¬¦  «        \  }}}t          ||¦  «        }t	          |ddg¦  «         t	          |ddg¦  «         t          |d¦  «         ddg}ddg}t          j        t          d¬¦  «        5  t          ||| ¬¦  «        \  }}}d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          ||¦  «        }d d d ¦  «         n# 1 swxY w Y   t          |g d¢¦  «         t          |g d¢¦  «         t          |d¦  «         ddg}ddg}t          ||| ¬¦  «        \  }}}t          t          ||¦  «        d¦  «         t	          |g d¢¦  «         t	          |g d¢¦  «         t          j
        ddgddgg¦  «        }t          j
        ddgddgg¦  «        }t          j        t          d¬¦  «        5  t          t          ||d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          t          ||d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          j
        ddgddgg¦  «        }t          j
        ddgddgg¦  «        }t          j        t          d¬¦  «        5  t          t          ||d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          t          ||d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          j
        ddgddgg¦  «        }t          j
        ddgddgg¦  «        }t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          j
        ddgddgg¦  «        }t          j
        ddgddgg¦  «        }t          j        t          d¬¦  «        5  t          t          ||d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          t          ||d¬¦  «        d¦  «         t          j        t          d¬¦  «        5  t          t          ||d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          t          ||d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j
        ddgddgg¦  «        }t          j
        ddgddgg¦  «        }t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          j
        ddgddgg¦  «        }t          j
        ddgddgg¦  «        }t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         t          t          ||d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        d¬¦  «        5  t          j
        ddgddgg¦  «        }t          j
        ddgddgg¦  «        }t          j        t          d¬¦  «        5  t          t          ||d¬¦  «        d¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NÚraise)Úallr   r.   rŠ   )r€   r.   r.   rý   r]   )r€   rÁ   r]   r  r€   rÁ   rÂ   rÃ   z!No positive class found in y_truer±   r¿   )r]   r]   r]   )r.   r€   rÁ   rÅ   rÆ   rÈ   rÉ   rÊ   Úignore)r3   Úerrstater   r   r   r   r¢   r¹   ÚUserWarningr   r˜   )r‡   rK   rI   rE   rt  rx   Úauc_prcs          rL   Ú#test_precision_recall_curve_toydatar‚  Â  s«  € å	Œ˜Ð	!Ñ	!Ô	!ð V
ð V
à�Q�ˆØ�a�&ˆÝ(¨°ÈDÐQÑQÔQ‰ˆˆ1ˆaÝ)¨&°'Ñ:Ô:ˆÝ! ! [ [ [Ñ1Ô1Ð1Ý! ! Y Y YÑ/Ô/Ð/Ý˜G SÑ)Ô)Ð)à�Q�ˆØ�a�&ˆÝ(¨°ÈDÐQÑQÔQ‰ˆˆ1ˆaÝ)¨&°'Ñ:Ô:ˆÝ! ! _ _ _Ñ5Ô5Ð5Ý! ! _ _ _Ñ5Ô5Ð5õ 	˜G SÑ)Ô)Ð)à�Q�ˆØ�a�&ˆÝ(¨°ÈDÐQÑQÔQ‰ˆˆ1ˆaÝ)¨&°'Ñ:Ô:ˆÝ! ! c¨1 XÑ.Ô.Ð.Ý! ! c¨1 XÑ.Ô.Ð.Ý˜G SÑ)Ô)Ð)à�Q�ˆØ�a�&ˆÝ(¨°ÈDÐQÑQÔQ‰ˆˆ1ˆaÝ)¨&°'Ñ:Ô:ˆÝ! ! [ [ [Ñ1Ô1Ð1Ý! ! Y Y YÑ/Ô/Ð/Ý˜G SÑ)Ô)Ð)à�Q�ˆØ˜�*ˆÝ(¨°ÈDÐQÑQÔQ‰ˆˆ1ˆaÝ)¨&°'Ñ:Ô:ˆÝ! ! c¨1 XÑ.Ô.Ð.Ý! ! a¨ XÑ.Ô.Ð.Ý˜G SÑ)Ô)Ð)à�Q�ˆØ˜�,ˆÝŒ\�+Ð-PÐQÑQÔQð 	Vð 	VÝ,¨V°WÐPTÐUÑUÔU‰GˆAˆq�!ð	Vð 	Vð 	Vñ 	Vô 	Vð 	Vð 	Vð 	Vð 	Vð 	Vð 	Vøøøð 	Vð 	Vð 	Vð 	VåŒ\�+Ð-PÐQÑQÔQð 	?ð 	?Ý-¨f°gÑ>Ô>ˆGð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?å˜˜9˜9˜9Ñ%Ô%Ð%Ý˜˜9˜9˜9Ñ%Ô%Ð%Ý˜ Ñ#Ô#Ð#à�Q�ˆØ˜�,ˆÝ(¨°ÈDÐQÑQÔQ‰ˆˆ1ˆaÝÕ3°F¸GÑDÔDÀcÑJÔJÐJÝ! ! _ _ _Ñ5Ô5Ð5Ý! ! ] ] ]Ñ3Ô3Ð3õ ”˜A˜q˜6 A q 6Ð*Ñ+Ô+ˆÝ”(˜Q ˜F Q¨ FÐ+Ñ,Ô,ˆÝŒ\�+Ð-PÐQÑQÔQð 	ð 	ÝÝ'¨°ÀÐIÑIÔIÈ3ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ\�+Ð-PÐQÑQÔQð 	ð 	ÝÝ'¨°ÀÐLÑLÔLÈcñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ 	Ý# F¨G¸YÐGÑGÔGÈñ	
ô 	
ð 	
õ 	Õ/°¸ÈÐQÑQÔQÐSVÑWÔWÐWå”˜A˜q˜6 A q 6Ð*Ñ+Ô+ˆÝ”(˜Q ˜F Q¨ FÐ+Ñ,Ô,ˆÝŒ\�+Ð-PÐQÑQÔQð 	ð 	ÝÝ'¨°ÀÐIÑIÔIÈ3ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ\�+Ð-PÐQÑQÔQð 	ð 	ÝÝ'¨°ÀÐLÑLÔLÈcñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ 	Ý# F¨G¸YÐGÑGÔGÈñ	
ô 	
ð 	
õ 	Õ/°¸ÈÐQÑQÔQÐSVÑWÔWÐWå”˜A˜q˜6 A q 6Ð*Ñ+Ô+ˆÝ”(˜Q ˜F Q¨ FÐ+Ñ,Ô,ˆÝÝ# F¨G¸WÐEÑEÔEÀsñ	
ô 	
ð 	
õ 	Ý# F¨G¸ZÐHÑHÔHÈ#ñ	
ô 	
ð 	
õ 	Ý# F¨G¸YÐGÑGÔGÈñ	
ô 	
ð 	
õ 	Ý# F¨G¸WÐEÑEÔEÀsñ	
ô 	
ð 	
õ ”˜A˜q˜6 A q 6Ð*Ñ+Ô+ˆÝ”(˜Q ˜F Q¨ FÐ+Ñ,Ô,ˆÝŒ\�+Ð-PÐQÑQÔQð 	ð 	ÝÝ'¨°ÀÐIÑIÔIÈ3ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ 	Ý# F¨G¸ZÐHÑHÔHÈ#ñ	
ô 	
ð 	
õ Œ\�+Ð-PÐQÑQÔQð 	ð 	ÝÝ'¨°ÀÐKÑKÔKÈSñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ Œ\�+Ð-PÐQÑQÔQð 	ð 	ÝÝ'¨°ÀÐIÑIÔIÈ3ñô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ
 ”˜A˜q˜6 A q 6Ð*Ñ+Ô+ˆÝ”(˜Q ˜F Q¨ FÐ+Ñ,Ô,ˆÝÕ/°¸ÈÐQÑQÔQÐSVÑWÔWÐWÝÝ# F¨G¸ZÐHÑHÔHÈ#ñ	
ô 	
ð 	
õ 	Ý# F¨G¸YÐGÑGÔGÈñ	
ô 	
ð 	
õ 	Õ/°¸ÈÐQÑQÔQÐSVÑWÔWÐWå”˜A˜q˜6 A q 6Ð*Ñ+Ô+ˆÝ”(˜S #˜J¨¨c¨
Ð3Ñ4Ô4ˆÝÝ# F¨G¸WÐEÑEÔEÀsñ	
ô 	
ð 	
õ 	Ý# F¨G¸ZÐHÑHÔHÈ#ñ	
ô 	
ð 	
õ 	Ý# F¨G¸YÐGÑGÔGÈñ	
ô 	
ð 	
õ 	Ý# F¨G¸WÐEÑEÔEÀsñ	
ô 	
ð 	
ðiV
ð V
ð V
ñ V
ô V
ð V
ð V
ð V
ð V
ð V
ð V
øøøð V
ð V
ð V
ð V
õp 
Œ˜Ð	"Ñ	"Ô	"ð ð å”˜A˜q˜6 A q 6Ð*Ñ+Ô+ˆÝ”(˜Q ˜F Q¨ FÐ+Ñ,Ô,ˆÝŒ\�+Ð-PÐQÑQÔQð 	ð 	ÝÝ'¨°ÀÐLÑLÔLÈañô ð ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð	ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s‘  –HcÈ$IÈ;cÉI	ÉcÉI	ÉcÉ-J
É>cÊ
J	ÊcÊJ	ÊC&cÍ8!N%ÎcÎ%N)	Î)cÎ,N)	Î-cÏ!O8Ï,cÏ8O<	Ï<cÏ?O<	Ð BcÒ!R?Ò3cÒ?S	ÓcÓS	ÓcÓ%!TÔcÔT	ÔcÔT	ÔEcÙ !ZÚcÚZ	ÚcÚZ	Ú>cÛ!\ Û4cÜ \	ÜcÜ\	ÜcÜ&!]ÝcÝ]	ÝcÝ]	ÝE+cãcãcã2Afå!e/å#få/e3	å3få6e3	å7fæfæfc                  ó†  — g d¢} g d¢}t          | |d¬¦  «        \  }}}t          |g d¢¦  «         g d¢} g d¢}t          | |d¬¦  «        \  }}}t          |g d¢¦  «         g d	¢} g d
¢}t          | |d¬¦  «        \  }}}t          |ddg¦  «         g d¢} g d
¢}t          | |d¬¦  «        \  }}}t          |g d
¢¦  «         dS )z9Check the behaviour of the `drop_intermediate` parameter.rÍ   rÎ   TrŠ   )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.   N)r   r   )rK   rI   rj   rk   r�   s        rL   Ú-test_precision_recall_curve_drop_intermediater†  f  sH  € àÐÐ€FØ,Ð,Ð,€GÝ$:Ø�¨4ð%ñ %ô %Ñ!€Iˆv�zõ �J   Ñ0Ô0Ð0ð 5Ð4Ð4€FØOÐOÐO€GÝ$:Ø�¨4ð%ñ %ô %Ñ!€Iˆv�zõ �JÐ >Ð >Ð >Ñ?Ô?Ð?ð ˆ\ˆ\€FØ"Ð"Ð"€GÝ$:Ø�¨4ð%ñ %ô %Ñ!€Iˆv�zõ �J  c 
Ñ+Ô+Ð+ð ˆ\ˆ\€FØ"Ð"Ð"€GÝ$:Ø�¨4ð%ñ %ô %Ñ!€Iˆv�zõ �JÐ 4Ð 4Ð 4Ñ5Ô5Ð5Ð5Ð5rN   c                  ó    — t          j        dt          ¬¦  «        } d| d d d…<   t          j        d¦  «        }t	          | |¦  «        dk    sJ ‚d S )Nr•   rN  r.   rç   rÂ   )r3   r«   r6   rª   r   ©rK   rI   s     rL   Ú&test_average_precision_constant_valuesr‰  ˆ  sW   € õ
 ŒX�c¥Ð%Ñ%Ô%€FØ€Fˆ3ˆ3ˆQˆ3�KåŒg�c‰lŒl€Gõ # 6¨7Ñ3Ô3°tÒ;Ð;Ð;Ð;Ð;Ð;rN   c                  óî   — t          j        ddg¦  «        } t          j        ddg¦  «        }d}t          j        t          |¬¦  «        5  t          | |d¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r.   z>pos_label=2 is not a valid label. It should be one of \[0, 1\]r±   r'   ©rV   ©r3   r˜   r¢   r£   r¤   r   ©rK   rJ   rS  s      rL   Ú4test_average_precision_score_binary_pos_label_errorsrŽ  –  s»   € åŒX�q˜!�fÑÔ€FÝŒX�q˜!�fÑÔ€FØO€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð =ð =Ý ¨¸!Ð<Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð =ð =s   Á
A*Á*A.Á1A.c                  ó  — t          j        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g¦  «        }d}t          j        t          |¬¦  «        5  t          | |d¬	¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nr.   r   r§   rÔ   rÕ   rÏ   znParameter pos_label is fixed to 1 for multilabel-indicator y_true. Do not set pos_label or set pos_label to 1.r±   r‹  rŒ  r�  s      rL   Ú8test_average_precision_score_multilabel_pos_label_errorsr�  Ÿ  sî   € õ ŒX˜˜1�v  1˜v¨¨1 v°°1¨vÐ6Ñ7Ô7€FÝŒX˜˜S�z C¨ :°°S¨z¸CÀ¸:ÐFÑGÔG€Fð	6ð õ 
Œ•z¨Ð	1Ñ	1Ô	1ð =ð =Ý ¨¸!Ð<Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð =ð =s   ÁA>Á>BÂBc            	      ó  — t          j        g d¢¦  «        } 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 )
N)r   r.   r'   r   r.   r'   )r€   rÏ   rÔ   )rÛ   r€   rÚ   )rÔ   rÏ   rÐ   )rÏ   rÚ   r€   zdParameter pos_label is fixed to 1 for multiclass y_true. Do not set pos_label or set pos_label to 1.r±   r”   r‹  rŒ  r�  s      rL   Ú8test_average_precision_score_multiclass_pos_label_errorsr’  ¬  sò   € åŒXÐ(Ð(Ð(Ñ)Ô)€FÝŒXàˆOˆOØˆOˆOØˆOˆOØˆOˆOØˆOˆOØˆOˆOð	
ñ	ô 	€Fð	6ð õ 
Œ•z¨Ð	1Ñ	1Ô	1ð =ð =Ý ¨¸!Ð<Ñ<Ô<Ð<ð=ð =ð =ñ =ô =ð =ð =ð =ð =ð =ð =ð =øøøð =ð =ð =ð =ð =ð =s   ÁA:Á:A>ÂA>c                  ó²  — t          d¬¦  «        \  } }}t          | |¦  «        }t          | d|z  ¦  «        }t          | d|z  ¦  «        }t          | |dz
  ¦  «        }||k    sJ ‚||k    sJ ‚||k    sJ ‚t          | |¦  «        }t          | d|z  ¦  «        }t          | d|z  ¦  «        }	t          | |dz
  ¦  «        }
||k    sJ ‚||	k    sJ ‚||
k    sJ ‚d S )NTr‰   r•   g�íµ ÷Æ°>rM  )rM   r   r   )rK   rx   rI   r�   Úroc_auc_scaled_upÚroc_auc_scaled_downÚroc_auc_shiftedÚpr_aucÚpr_auc_scaled_upÚpr_auc_scaled_downÚpr_auc_shifteds              rL   Útest_score_scale_invariancer›  Á  s  € õ )°Ð5Ñ5Ô5Ñ€FˆAˆwå˜F GÑ,Ô,€GÝ% f¨c°G©mÑ<Ô<ÐÝ'¨°°w±Ñ?Ô?ÐÝ# F¨G°b©LÑ9Ô9€OØÐ'Ò'Ð'Ð'Ð'ØÐ)Ò)Ð)Ð)Ð)Ø�oÒ%Ð%Ð%Ð%å$ V¨WÑ5Ô5€FÝ.¨v°s¸W±}ÑEÔEÐÝ0°¸À¹ÑHÔHÐÝ,¨V°W¸r±\ÑBÔB€NØÐ%Ò%Ð%Ð%Ð%ØÐ'Ò'Ð'Ð'Ð'Ø�^Ò#Ð#Ð#Ð#Ð#Ð#rN   z(y_true,y_score,expected_fpr,expected_fnrr¿   rä   )r   rÂ   r€   )r€   rÃ   r.   ©rÂ   r€   rÃ   rü   rÀ   rÁ   rã   )r.   r.   r€   rû   rý   )r   r€   r€   c                 ón   — t          | |¦  «        \  }}}t          ||¦  «         t          ||¦  «         d S ©N©r   r   ©rK   rI   Úexpected_fprÚexpected_fnrrv   Úfnrrx   s          rL   Útest_det_curve_toydatar¤  Ú  s?   € õ6 ˜F GÑ,Ô,�K€Cˆˆaå�C˜Ñ&Ô&Ð&Ý�C˜Ñ&Ô&Ð&Ð&Ð&rN   ©rÂ   r€   r€   c                 ón   — t          | |¦  «        \  }}}t          ||¦  «         t          ||¦  «         d S rž  rŸ  r   s          rL   Útest_det_curve_tie_handlingr§  û  s?   € õ ˜F GÑ,Ô,�K€Cˆˆaå�C˜Ñ&Ô&Ð&Ý�C˜Ñ&Ô&Ð&Ð&Ð&rN   c                  ón   — t          t          g d¢g d¢¦  «        t          g d¢g d¢¦  «        ¦  «         d S )Nr¿   rä   rÍ   )r   r   r€   r€   r.   r.   )r   r   rµ   rN   rL   Útest_det_curve_sanity_checkr©    sN   € åÝ�)�)�)˜[˜[˜[Ñ)Ô)ÝÐ$Ð$Ð$Ð&<Ð&<Ð&<Ñ=Ô=ñô ð ð ð rN   rI   )r   rÂ   r€   rÃ   r.   c                 óÀ   — t          g d¢t          j        d| ¦  «        ¬¦  «        \  }}}t          |dg¦  «         t          |dg¦  «         t          || g¦  «         d S )N)r   r.   r   r.   r   r.   rè   rˆ  r.   r   )r   r3   rº   r   )rI   rv   r£  rl   s       rL   Útest_det_curve_constant_scoresr«    sr   € å#Ø!Ð!Ð!­2¬7°1°gÑ+>Ô+>ðñ ô Ñ€Cˆˆiõ �C˜!˜ÑÔÐÝ�C˜!˜ÑÔÐÝ�I ˜yÑ)Ô)Ð)Ð)Ð)rN   rK   )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.   c                 ót   — t          | | ¬¦  «        \  }}}t          |dg¦  «         t          |dg¦  «         d S )Nrˆ  r   rŸ  )rK   rv   r£  rx   s       rL   Útest_det_curve_perfect_scoresr­  "  sF   € õ  6°6Ð:Ñ:Ô:�K€Cˆˆaå�C˜!˜ÑÔÐÝ�C˜!˜ÑÔÐÐÐrN   zy_true, y_pred, err_msgzinconsistent numbers of samples©r   r   r   z Only one class present in y_true©r.   r.   r.   )Úcancerr°  ú
not cancer)rÏ   rÚ   rÕ   zpos_label is not specifiedc                 óŽ   — t          j        t          |¬¦  «        5  t          | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr±   )r¢   r£   r¤   r   r�  s      rL   Útest_det_curve_bad_inputr³  3  s�   € õ  
Œ•z¨Ð	1Ñ	1Ô	1ð "ð "Ý�&˜&Ñ!Ô!Ð!ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "ó   œ:º>Á>c                  ó’  — dgdz  dgdz  z   } t          j        g d¢¦  «        }d|z
  }t          | |d¬¦  «        \  }}}t          | |d¬¦  «        \  }}}|d         t          j        d	¦  «        k    sJ ‚|d         t          j        d
¦  «        k    sJ ‚t          ||d d d…         ¦  «         t          ||d d d…         ¦  «         d S )Nr°  r”   r±  ré   )
rÔ   rÛ   rÐ   rÏ   rÚ   rÛ   r€   rÐ   rÑ   r§   r.   r‹  r   rÛ   rÏ   rP   )r3   r˜   r   r¢   r)  r   )	rK   Úy_pred_pos_not_cancerÚy_pred_pos_cancerÚfpr_pos_cancerÚfnr_pos_cancerÚth_pos_cancerÚfpr_pos_not_cancerÚfnr_pos_not_cancerÚth_pos_not_cancers	            rL   Útest_det_curve_pos_labelr¾  G  s  € ØˆZ˜!‰^˜|˜n¨qÑ0Ñ0€FÝœHÐ%WÐ%WÐ%WÑXÔXÐØÐ1Ñ1Ðå4=ØØØð5ñ 5ô 5Ñ1€N�N Mõ
 AJØØØðAñ Aô AÑ=ÐÐ*Ð,=ð ˜Ô�vœ}¨SÑ1Ô1Ò1Ð1Ð1Ð1Ø˜QÔ¥6¤=°Ñ#5Ô#5Ò5Ð5Ð5Ð5õ �NÐ$6°t°t¸°tÔ$<Ñ=Ô=Ð=Ý�NÐ$6°t°t¸°tÔ$<Ñ=Ô=Ð=Ð=Ð=rN   c                 óÆ  — t           | ddggddgg¦  «        d¦  «         t           | ddggddgg¦  «        d¦  «         t           | ddggddgg¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d	¢gg d¢g¦  «        d¦  «         t           | g d
¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d	¢gg d¢g¦  «        d¦  «         t           | g d
¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d	¢gg d¢g¦  «        d¦  «         t           | g d
¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | ddggddgg¦  «        d¦  «         t           | ddggddgg¦  «        d¦  «         t           | ddggddgg¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d	¢gg d¢g¦  «        d¦  «         t           | g d
¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         t           | g d¢gg d¢g¦  «        d¦  «         d S )Nr   r.   rÂ   rÃ   r€   r¿   rœ  rü   rÀ   rã   gUUUUUUÕ?rû   gªªªªªªê?rý   gªªªªªªâ?©rÃ   r€   rÂ   r¯  ©r€   rÃ   rÂ   r¥  )r€   r€   r€   çUUUUUUå?)r.   r.   r.   r   )r€   r€   r€   r€   )r   ©Ú
lrap_scores    rL   Úcheck_lrap_toyrÅ  a  s/  € å˜
˜
 Q¨ F 8¨t°T¨l¨^Ñ<Ô<¸aÑ@Ô@Ð@Ý˜
˜
 Q¨ F 8¨t°T¨l¨^Ñ<Ô<¸eÑDÔDÐDÝ˜
˜
 Q¨ F 8¨t°T¨l¨^Ñ<Ô<¸aÑ@Ô@Ð@å˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀaÑHÔHÐHÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀeÑLÔLÐLÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀaÑHÔHÐHÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀeÑLÔLÐLÝØˆ
�I�I�I�;Ð!2Ð!2Ð!2Ð 3Ñ4Ô4Ð6Iñô ð õ Øˆ
�I�I�I�;Ð!2Ð!2Ð!2Ð 3Ñ4Ô4Ð6Iñô ð õ ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀeÑLÔLÐLÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀeÑLÔLÐLÝØˆ
�I�I�I�;Ð!2Ð!2Ð!2Ð 3Ñ4Ô4Ð6Iñô ð õ ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀaÑHÔHÐHÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀoÑVÔVÐVÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀaÑHÔHÐHÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀaÑHÔHÐHå˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀeÑLÔLÐLÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀaÑHÔHÐHÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀoÑVÔVÐVÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀeÑLÔLÐLÝØˆ
�I�I�I�;Ð!2Ð!2Ð!2Ð 3Ñ4Ô4Ð6Iñô ð õ ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀaÑHÔHÐHÝ˜
˜
 I I I ;Ð1BÐ1BÐ1BÐ0CÑDÔDÀaÑHÔHÐHõ ˜
˜
 Q¨ F 8¨s°C¨j¨\Ñ:Ô:¸CÑ@Ô@Ð@Ý˜
˜
 Q¨ F 8¨s°C¨j¨\Ñ:Ô:¸CÑ@Ô@Ð@Ý˜
˜
 Q¨ F 8¨s°C¨j¨\Ñ:Ô:¸AÑ>Ô>Ð>å˜
˜
 I I I ;Ð1AÐ1AÐ1AÐ0BÑCÔCÀSÑIÔIÐIÝ˜
˜
 I I I ;Ð1AÐ1AÐ1AÐ0BÑCÔCÀSÑIÔIÐIÝ˜
˜
 I I I ;Ð1AÐ1AÐ1AÐ0BÑCÔCÀQÑGÔGÐGÝ˜
˜
 I I I ;Ð1AÐ1AÐ1AÐ0BÑCÔCÀUÑKÔKÐKÝØˆ
�I�I�I�;Ð!1Ð!1Ð!1Ð 2Ñ3Ô3Ð5Hñô ð õ Øˆ
�I�I�I�;Ð!1Ð!1Ð!1Ð 2Ñ3Ô3Ð5Hñô ð õ ˜
˜
 I I I ;Ð1AÐ1AÐ1AÐ0BÑCÔCÀQÑGÔGÐGå˜
˜
 I I I ;°°°Ð0AÑBÔBÀEÑJÔJÐJå˜
˜
 L L L >Ð4HÐ4HÐ4HÐ3IÑJÔJÈEÑRÔRÐRÐRÐRrN   c           	      óÞ  — t          d¦  «        }t          dd¦  «        D ]¢}|                     d|f¬¦  «        }t          j        |¦  «        }t          j        d|f¦  «        } | ||¦  «        dk    sJ ‚ | ||¦  «        dk    sJ ‚t          j        d|f¦  «        } | ||¦  «        dk    sJ ‚ | ||¦  «        dk    sJ ‚Œ£t           | dgdgdgdggdgdgdgdgg¦  «        d¦  «         d S )Nr   r'   rÜ   r.   r–   r]   r€   )r%   r_   Úuniformr3   ry  r«   rª   r   )rÄ  r-   Ún_labelsrI   Úy_score_tiesrK   s         rL   Ú!check_zero_or_all_relevant_labelsrÊ  œ  sA  € Ý% aÑ(Ô(€Lå˜!˜Q‘K”Kð 7ð 7ˆØ×&Ò&¨Q°¨MÐ&Ñ:Ô:ˆÝ”} WÑ-Ô-ˆõ ”˜1˜h˜-Ñ(Ô(ˆØˆz˜& 'Ñ*Ô*¨cÒ1Ð1Ð1Ð1Øˆz˜& ,Ñ/Ô/°3Ò6Ð6Ð6Ð6õ ”˜!˜X˜Ñ'Ô'ˆØˆz˜& 'Ñ*Ô*¨cÒ1Ð1Ð1Ð1Øˆz˜& ,Ñ/Ô/°3Ò6Ð6Ð6Ð6Ð6õ Øˆ
�Q�C˜!˜˜q˜c A 3Ð'¨3¨%°#°¸¸À¸uÐ)EÑFÔFÈñô ð ð ð rN   c                 óö  — t          j        t          ¦  «        5   | g d¢g d¢¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   | g d¢g d¢g d¢g d¢g¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   | g d¢g d¢g d¢g d¢g¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   | ddgddggddg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   | ddgddggddgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   | ddgddggdgdgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   | ddggddgddgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   | dgdggddgddgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5   | ddgddggdgdgg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nrü   )rÂ   rÚ   rÏ   rð   )rÂ   rÃ   rÁ   )rÑ   rÚ   rÁ   )rÕ   rÏ   rÁ   r   r.   )r¢   r£   r¤   rÃ  s    rL   Úcheck_lrap_error_raisedrÌ  ³  s  € å	Œ•zÑ	"Ô	"ð 0ð 0Øˆ
�9�9�9Ð.Ð.Ð.Ñ/Ô/Ð/ð0ð 0ð 0ñ 0ô 0ð 0ð 0ð 0ð 0ð 0ð 0øøøð 0ð 0ð 0ð 0å	Œ•zÑ	"Ô	"ð Uð UØˆ
�9�9�9Ð0Ð0Ð0°/°/°/À?À?À?ÐSÑTÔTÐTðUð Uð Uñ Uô Uð Uð Uð Uð Uð Uð Uøøøð Uð Uð Uð Uå	Œ•zÑ	"Ô	"ð 
ð 
Øˆ
ØˆOˆOÐ/Ð/Ð/°°°À/À/À/ÐRñ	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
õ 
Œ•zÑ	"Ô	"ð -ð -Øˆ
�Q˜�F˜Q ˜FÐ# a¨ VÑ,Ô,Ð,ð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -å	Œ•zÑ	"Ô	"ð /ð /Øˆ
�Q˜�F˜Q ˜FÐ# q¨! f XÑ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /å	Œ•zÑ	"Ô	"ð 1ð 1Øˆ
�Q˜�F˜Q ˜FÐ# q c¨A¨3 ZÑ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1å	Œ•zÑ	"Ô	"ð /ð /Øˆ
�Q˜�F�8˜q !˜f q¨! fÐ-Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /å	Œ•zÑ	"Ô	"ð 1ð 1Øˆ
�Q�C˜!˜�:  A ¨¨A¨Ð/Ñ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1å	Œ•zÑ	"Ô	"ð 1ð 1Øˆ
�Q˜�F˜Q ˜FÐ# q c¨A¨3 ZÑ0Ô0Ð0ð1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1sœ   š7·;¾;ÁA?Á?BÂBÂ#CÃCÃCÃ+DÄDÄDÄ0EÅEÅEÅ6FÆFÆ FÆ=GÇG#Ç&G#ÈH&È&H*È-H*É
I.É.I2É5I2c           	      ó&  — t          dd¦  «        D ]}t          j        d|f¦  «        }t          d|¦  «        D ]V}t          ||z
  ¦  «        D ]A}t          j        d|f¦  «        }d|d|||z   …f<   t	           | ||¦  «        ||z  ¦  «         ŒBŒWŒ€d S )Nr'   rM  r.   r   )r_   r3   rª   r«   r   )rÄ  rÈ  rI   Ú
n_relevantrW   rK   s         rL   Úcheck_lrap_only_tiesrÏ  Í  sÓ   € õ ˜!˜R‘L”Lð 	Xð 	XˆÝ”'˜1˜h˜-Ñ(Ô(ˆõ    8Ñ,Ô,ð 	Xð 	XˆJå˜X¨
Ñ2Ñ3Ô3ð Xð X�Ýœ 1 h -Ñ0Ô0�Ø45��q˜#  jÑ 0Ð0Ð0Ñ1Ý# J J¨v°wÑ$?Ô$?ÀÈhÑAVÑWÔWÐWÐWðXð	Xð		Xð 	XrN   c                 ó.  ‡‡— t          dd¦  «        D �] }|t          j        |¦  «                             d|f¦  «        dz   z
  }t          j        d|f¦  «        }d|d<   d|d<   t           | ||¦  «        d|z  dz   dz  ¦  «         t          d|¦  «        D ]zŠt          |‰z
  ¦  «        D ]eŠt          j        d|f¦  «        }d|d‰‰‰z   …f<   t           | ||¦  «        t          ˆˆfd„t          ‰¦  «        D ¦   «         ¦  «        ¦  «         ŒfŒ{�Œd S )Nr'   rM  r.   )r   r   )r   rP   r   c              3   ó:   •K  — | ]}|d z   ‰|z   d z   ‰z  z  V — ŒdS )r.   Nrµ   )r¶   rt  rÎ  rW   s     €€rL   ú	<genexpr>z>check_lrap_without_tie_and_increasing_score.<locals>.<genexpr>ð  sM   øè è € ð ð àð ˜Q™ C¨!¡G¨a¡K°:Ñ#=Ñ>ðð ð ð ð ð rN   )r_   r3   r4   rR   r«   r   rS   )rÄ  rÈ  rI   rK   rÎ  rW   s       @@rL   Ú+check_lrap_without_tie_and_increasing_scorerÓ  Ü  sv  øø€ õ ˜!˜R‘L”Lð ñ ˆØ�bœi¨Ñ1Ô1×9Ò9¸1¸h¸-ÑHÔHÈ1ÑLÑMˆõ ”˜1˜h˜-Ñ(Ô(ˆØˆˆt‰Øˆˆu‰Ý˜J˜J v¨wÑ7Ô7¸!¸h¹,ÈÑ:JÈaÑ9OÑPÔPÐPõ    8Ñ,Ô,ð 	ð 	ˆJå˜X¨
Ñ2Ñ3Ô3ð 	ð 	�Ýœ 1 h -Ñ0Ô0�Ø45��q˜#  jÑ 0Ð0Ð0Ñ1Ý#Ø�J˜v wÑ/Ô/Ýð ð ð ð ð å!& zÑ!2Ô!2ðñ ô ñ ô ñô ð ð ð	ñ	ðð rN   c                 óÈ  ‡‡— t          | |¦  «         t          | ¦  «        } t          |¦  «        }| j        \  }}t          j        |f¦  «        }t          |¦  «        D ]ð}t          j        ||         d¬¦  «        \  }}|j        }||z
  Št          j        ‰|dz   ¬¦  «         	                    ¦   «         }	|	‰         Š| |          
                    ¦   «         d         }
|
j        dk    s|
j        |k    rd||<   Œœd||<   |
D ]7Št          ˆˆfd„|
D ¦   «         ¦  «        }||xx         |‰‰         z  z  cc<   Œ8||xx         |
j        z  cc<   Œñ|                     ¦   «         S )z8Simple implementation of label ranking average precisionT)Úreturn_inverser.   )Ú	minlengthr   rÁ   c              3   ó<   •K  — | ]}‰|         ‰‰         k    V — Œd S rž  rµ   )r¶   rt  ÚlabelÚranks     €€rL   rÒ  z_my_lrap.<locals>.<genexpr>  s0   øè è € Ð JÐ J¸A  a¤¨D°¬KÒ!7Ð JÐ JÐ JÐ JÐ JÐ JrN   )r$   r#   r2   r3   Úemptyr_   rQ   r—   ÚbincountÚcumsumÚnonzerorS   rq  )rK   rI   rC   rÈ  rb   rc   Úunique_rankÚinv_rankÚn_ranksÚ	corr_rankÚrelevantÚn_ranked_aboverØ  rÙ  s               @@rL   Ú_my_lraprä  ÷  s‹  øø€ å˜F GÑ,Ô,Ð,Ý˜Ñ Ô €FÝ˜'Ñ"Ô"€GØ œ,Ñ€IˆxÝŒH�i�\Ñ"Ô"€EÝ�9ÑÔð "ð "ˆõ !#¤	¨'°!¬*ÀTÐ JÑ JÔ JÑˆ�XØÔ"ˆØ˜Ñ!ˆõ ”K °¸!±Ð<Ñ<Ô<×CÒCÑEÔEˆ	Ø˜Œˆà˜!”9×$Ò$Ñ&Ô& qÔ)ˆØŒ=˜AÒÐ ¤°(Ò!:Ð!:ØˆE�!‰HØàˆˆa‰Øð 	5ð 	5ˆEõ !Ð JÐ JÐ JÐ JÐ JÀÐ JÑ JÔ JÑJÔJˆNð �!ˆHˆHŒH˜¨¨e¬Ñ4Ñ4ˆHˆH‰HˆHàˆaˆˆŒ�H”MÑ!ˆˆ‰ˆà�:Š:‰<Œ<ÐrN   rÜ   rG  c                 óÚ  — t          dd|||¬¦  «        \  }}t          |j        d         |j        d         |¬¦  «        }t          |d¦  «        r|                     ¦   «         }t          ||¦  «        }t          ||¦  «        }t          ||¦  «         t          |¦  «        }| 	                    ||f¬¦  «        }t          ||¦  «        }t          ||¦  «        }t          ||¦  «         d S )Nr.   F)rD   Úallow_unlabeledr-   Ú	n_classesrC   r   )Ún_componentsrD   r-   Útoarrayr–   )
r   r   r2   Úhasattrré  r   rä  r   r%   rÇ  )	rÄ  rç  rC   r-   rx   rK   rI   Ú
score_lrapÚscore_my_lraps	            rL   Ú%check_alternative_lrap_implementationrí    s  € õ /ØØØ!ØØðñ ô �I€A€võ $Ø”\ !”_Ø”< ”?Ø!ðñ ô €Gõ ˆw˜	Ñ"Ô"ð $Ø—/’/Ñ#Ô#ˆÝ6°v¸wÑGÔG€JÝ˜V WÑ-Ô-€MÝ˜
 MÑ2Ô2Ð2õ & lÑ3Ô3€LØ×"Ò"¨°IÐ(>Ð"Ñ?Ô?€GÝ6°v¸wÑGÔG€JÝ˜V WÑ-Ô-€MÝ˜
 MÑ2Ô2Ð2Ð2Ð2rN   ÚcheckÚfuncc                 ó   —  | |¦  «         d S rž  rµ   )rî  rï  s     rL   Útest_label_ranking_avprñ  =  s   € ð 
€Eˆ$�K„K€K€K€KrN   c                  ó.   — t          t          ¦  «         d S rž  )rÌ  r   rµ   rN   rL   Útest_lrap_error_raisedró  K  s   € ÝÕAÑBÔBÐBÐBÐBrN   rC   )r.   r'   rê   rG  rç  )r'   rÜ   rM  r-   c                 ó4   — t          t          || |¦  «         d S rž  )rí  r   )rC   rç  r-   s      rL   Ú$test_alternative_lrap_implementationrõ  O  s)   € õ *Ý-¨y¸)À\ñô ð ð ð rN   c                  ót  — t          j        g d¢g d¢g d¢gt          ¬¦  «        } t          j        g d¢g d¢g d¢g¦  «        }t          j        g d¢¦  «        }t          j        g d	¢¦  «        }t          t	          | ||¬
¦  «        t          j        ||z  ¦  «        t          j        |¦  «        z  ¦  «         d S )Nr  rn  r„  rN  )rÚ   rÛ   rÏ   rÔ   )rÔ   rÏ   rÚ   rÛ   ©rÛ   rÚ   rÏ   rÔ   )r€   rÃ   r]   )r]   r]   rÁ   rÝ   )r3   r˜   Úboolr   r   rS   )rK   rI   Úsamplewise_lrapsrÞ   s       rL   Ú&test_lrap_sample_weighting_zero_labelsrú  X  sß   € õ ŒX�|�|�| \ \ \°<°<°<Ð@ÍÐMÑMÔM€FÝŒhØ	Ð	Ð	Ð3Ð3Ð3Ð5IÐ5IÐ5IÐJñô €Gõ ”xÐ 0Ð 0Ð 0Ñ1Ô1ÐÝ”H˜_˜_˜_Ñ-Ô-€MåÝ-Ø�G¨=ð	
ñ 	
ô 	
õ 	Œˆ}Ð/Ñ/Ñ0Ô0µ2´6¸-Ñ3HÔ3HÑHñ	ô ð ð ð rN   c            	      óú  — t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d	¢gg d¢g¦  «        d¦  «         t          t          g d
¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d	¢gg d¢g¦  «        d¦  «         t          t          g d
¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d	¢gg d¢g¦  «        d¦  «         t          t          g d
¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d	¢g d¢gg d¢g d¢g¦  «        d¦  «         t          t          g d	¢g d¢g d
¢gg d¢g d¢g d¢g¦  «        d¦  «         t          t          g d	¢g d¢g d
¢gg d¢g d¢g d¢g¦  «        d¦  «         d S )Nr   r.   rÂ   rÃ   r'   r®  rœ  r¿   rü   rÀ   rã   r”   rû   rý   r¯  rÀ  rÁ  ©rÔ   g      $@éýÿÿÿ©r   r.   r”   r/  ©rÔ   rM  rý  r@  g«ªªªªª@©r”   r.   r”   ©r   r   rµ   rN   rL   Útest_coverage_errorr  m  st  € å�¨¨A¨ x°4¸°,°Ñ@Ô@À!ÑDÔDÐDÝ�¨¨A¨ x°4¸°,°Ñ@Ô@À!ÑDÔDÐDÝ�¨¨A¨ x°4¸°,°Ñ@Ô@À!ÑDÔDÐDÝ�¨¨A¨ x°4¸°,°Ñ@Ô@À!ÑDÔDÐDå�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLå�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLå�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLÝ�¨	¨	¨	 {Ð5FÐ5FÐ5FÐ4GÑHÔHÈ!ÑLÔLÐLõ Ý˜	˜	˜	 9 9 9Ð-°°°ÀÀÀÐ/KÑLÔLØñô ð õ
 ÝØˆYˆY˜	˜	˜	 9 9 9Ð-°°°¸y¸y¸yÈ)È)È)Ð/Tñ	
ô 	
ð 	ñ	ô ð õ ÝØˆYˆY˜	˜	˜	 9 9 9Ð-°°°¸y¸y¸yÈ)È)È)Ð/Tñ	
ô 	
ð 	ñ	ô ð ð ð rN   c                  óf  — t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d	¢gg d¢g¦  «        d¦  «         t          t          g d
¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         d S )Nr   r€   r.   r'   r®  r¥  r¿   rü   rÀ   rã   r”   rû   rý   r¯  r  rµ   rN   rL   Útest_coverage_tie_handlingr  ¤  sð  € Ý�¨¨A¨ x°3¸°*°Ñ>Ô>ÀÑBÔBÐBÝ�¨¨A¨ x°3¸°*°Ñ>Ô>ÀÑBÔBÐBÝ�¨¨A¨ x°3¸°*°Ñ>Ô>ÀÑBÔBÐBÝ�¨¨A¨ x°3¸°*°Ñ>Ô>ÀÑBÔBÐBå�¨	¨	¨	 {Ð5EÐ5EÐ5EÐ4FÑGÔGÈÑKÔKÐKÝ�¨	¨	¨	 {Ð5EÐ5EÐ5EÐ4FÑGÔGÈÑKÔKÐKÝ�¨	¨	¨	 {Ð5EÐ5EÐ5EÐ4FÑGÔGÈÑKÔKÐKÝ�¨	¨	¨	 {Ð5EÐ5EÐ5EÐ4FÑGÔGÈÑKÔKÐKÝ�¨	¨	¨	 {Ð5EÐ5EÐ5EÐ4FÑGÔGÈÑKÔKÐKÝ�¨	¨	¨	 {Ð5EÐ5EÐ5EÐ4FÑGÔGÈÑKÔKÐKÝ�¨	¨	¨	 {Ð5EÐ5EÐ5EÐ4FÑGÔGÈÑKÔKÐKÝ�¨	¨	¨	 {Ð5EÐ5EÐ5EÐ4FÑGÔGÈÑKÔKÐKÐKÐKrN   zy_true, y_scorec                 óŽ   — t          j        t          d¬¦  «        5  t          | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz'Expected 2D array, got 1D array insteadr±   )r¢   r£   r¤   r   rˆ  s     rL   Útest_coverage_1d_error_messager  ´  sŽ   € õ 
Œ•zÐ)SÐ	TÑ	TÔ	Tð (ð (Ý�v˜wÑ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (r´  c            	      óš  — t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d	¢gg d¢g¦  «        d¦  «         t          t          g d
¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢g d¢gg d¢g d¢g¦  «        d¦  «         t          t          g d¢g d¢g d	¢gg d¢g d¢g d¢g¦  «        d¦  «         t          t          g d¢g d¢g d	¢gg d¢g d¢g d¢g¦  «        d¦  «         d S )Nr   r.   rÂ   rÃ   r¿   rœ  rü   r€   rÀ   rã   r]   rû   rý   r®  rÁ  r¯  r¥  rü  rþ  rÿ  r@  r   ©r   r   rµ   rN   rL   Útest_label_ranking_lossr	  Ã  s†  € ÝÕ*¨Q°¨F¨8°t¸T°l°^ÑDÔDÀaÑHÔHÐHÝÕ*¨Q°¨F¨8°t¸T°l°^ÑDÔDÀaÑHÔHÐHåÕ*¨I¨I¨I¨;Ð9JÐ9JÐ9JÐ8KÑLÔLÈaÑPÔPÐPÝÕ*¨I¨I¨I¨;Ð9JÐ9JÐ9JÐ8KÑLÔLÈeÑTÔTÐTÝÕ*¨I¨I¨I¨;Ð9JÐ9JÐ9JÐ8KÑLÔLÈaÑPÔPÐPÝÕ*¨I¨I¨I¨;Ð9JÐ9JÐ9JÐ8KÑLÔLÈeÑTÔTÐTÝÕ*¨I¨I¨I¨;Ð9JÐ9JÐ9JÐ8KÑLÔLÈeÑTÔTÐTÝÕ*¨I¨I¨I¨;Ð9JÐ9JÐ9JÐ8KÑLÔLÈeÑTÔTÐTõ Õ*¨Q°¨F¨8°t¸T°l°^ÑDÔDÀaÑHÔHÐHÝÕ*¨Q°¨F¨8°t¸T°l°^ÑDÔDÀaÑHÔHÐHÝÕ*¨Q°¨F¨8°s¸C°j°\ÑBÔBÀAÑFÔFÐFÝÕ*¨Q°¨F¨8°s¸C°j°\ÑBÔBÀAÑFÔFÐFåÕ*¨I¨I¨I¨;Ð9JÐ9JÐ9JÐ8KÑLÔLÈaÑPÔPÐPÝÕ*¨I¨I¨I¨;Ð9JÐ9JÐ9JÐ8KÑLÔLÈaÑPÔPÐPÝÕ*¨I¨I¨I¨;Ð9IÐ9IÐ9IÐ8JÑKÔKÈQÑOÔOÐOÝÕ*¨I¨I¨I¨;Ð9IÐ9IÐ9IÐ8JÑKÔKÈQÑOÔOÐOõ Ý˜I˜I˜I y y yÐ1°O°O°OÀYÀYÀYÐ3OÑPÔPØñô ð õ
 ÝØˆYˆY˜	˜	˜	 9 9 9Ð-°°°¸y¸y¸yÈ)È)È)Ð/Tñ	
ô 	
ð 	"ñ	ô ð õ ÝØˆYˆY˜	˜	˜	 9 9 9Ð-°°°¸y¸y¸yÈ)È)È)Ð/Tñ	
ô 	
ð 	"ñ	ô ð ð ð rN   Úcsr_containerc                 ó�   — t          t           | t          j        g d¢g d¢g¦  «        ¦  «        g d¢g d¢g¦  «        d¦  «         d S )Nrü   rý   rÿ  r   r€   )r   r   r3   r˜   )r
  s    rL   Útest_label_ranking_loss_sparser  î  sc   € åÝØˆM�"œ( I I I¨y¨y¨yÐ#9Ñ:Ô:Ñ;Ô;¸m¸m¸mÈYÈYÈYÐ=Wñ	
ô 	
ð 	ñ	ô ð ð ð rN   c                  ó„  — t          j        t          ¦  «        5  t          ddgddggddg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          ddgddggddgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          ddgddggdgdgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          ddggddgddgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          dgdggddgddgg¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          ¦  «        5  t          ddgddggdgdgg¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r.   )r¢   r£   r¤   r   rµ   rN   rL   Ú$test_ranking_appropriate_input_shaper  ø  sE  € å	Œ•zÑ	"Ô	"ð 5ð 5Ý˜Q ˜F Q¨ FÐ+¨a°¨VÑ4Ô4Ð4ð5ð 5ð 5ñ 5ô 5ð 5ð 5ð 5ð 5ð 5ð 5øøøð 5ð 5ð 5ð 5å	Œ•zÑ	"Ô	"ð 7ð 7Ý˜Q ˜F Q¨ FÐ+¨q°!¨f¨XÑ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7å	Œ•zÑ	"Ô	"ð 9ð 9Ý˜Q ˜F Q¨ FÐ+¨q¨c°A°3¨ZÑ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9å	Œ•zÑ	"Ô	"ð 7ð 7Ý˜Q ˜F˜8 q¨! f¨q°!¨fÐ%5Ñ6Ô6Ð6ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7å	Œ•zÑ	"Ô	"ð 9ð 9Ý˜Q˜C ! ˜:¨¨A¨°°A°Ð'7Ñ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9å	Œ•zÑ	"Ô	"ð 9ð 9Ý˜Q ˜F Q¨ FÐ+¨q¨c°A°3¨ZÑ8Ô8Ð8ð9ð 9ð 9ñ 9ô 9ð 9ð 9ð 9ð 9ð 9ð 9ð 9øøøð 9ð 9ð 9ð 9ð 9ð 9si   š?¿AÁAÁ#B	Â	BÂBÂ-CÃCÃCÃ8DÄD"Ä%D"ÅE)Å)E-Å0E-ÆF5Æ5F9Æ<F9c                  óF  — t          t          ddggddgg¦  «        d¦  «         t          t          ddggddgg¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d¢gg d¢g¦  «        d¦  «         t          t          g d	¢gg d¢g¦  «        d¦  «         t          t          g d
¢gg d¢g¦  «        d¦  «         d S )Nr.   r   r€   r¿   r¥  rü   rÀ   rã   rû   rý   r  rµ   rN   rL   Útest_ranking_loss_ties_handlingr    sX  € åÕ*¨Q°¨F¨8°s¸C°j°\ÑBÔBÀAÑFÔFÐFÝÕ*¨Q°¨F¨8°s¸C°j°\ÑBÔBÀAÑFÔFÐFÝÕ*¨I¨I¨I¨;Ð9IÐ9IÐ9IÐ8JÑKÔKÈUÑSÔSÐSÝÕ*¨I¨I¨I¨;Ð9IÐ9IÐ9IÐ8JÑKÔKÈUÑSÔSÐSÝÕ*¨I¨I¨I¨;Ð9IÐ9IÐ9IÐ8JÑKÔKÈQÑOÔOÐOÝÕ*¨I¨I¨I¨;Ð9IÐ9IÐ9IÐ8JÑKÔKÈQÑOÔOÐOÝÕ*¨I¨I¨I¨;Ð9IÐ9IÐ9IÐ8JÑKÔKÈQÑOÔOÐOÝÕ*¨I¨I¨I¨;Ð9IÐ9IÐ9IÐ8JÑKÔKÈQÑOÔOÐOÐOÐOrN   c                  óä   — t          dd¬¦  «        \  } }| dz   }t          ||¦  «         t          j                             d¦  «                             d¦  «        \  }}t          ||¦  «         d S ©Nr   rM  )r-   rç  r.   )r'   r•   rM  )r   Ú_test_dcg_score_forr3   r7   r8   Úrandom_sample©rx   rK   rI   s      rL   Útest_dcg_scorer    sp   € Ý.¸AÈÐLÑLÔL�I€A€vØˆg˜‰k€GÝ˜ Ñ(Ô(Ð(Ý”i×+Ò+¨AÑ.Ô.×<Ò<¸\ÑJÔJ�O€FˆGÝ˜ Ñ(Ô(Ð(Ð(Ð(rN   c                 ó:  — t          j        t          j        | j        d         ¦  «        dz   ¦  «        }t	          | | ¦  «        }t	          | |¦  «        }||k                         ¦   «         sJ ‚t	          | | d¬¦  «        |k                         ¦   «         sJ ‚|j        | j        d         fk    sJ ‚|j        | j        d         fk    sJ ‚|t          j        t          j        | ¦  «        d d …d d d…f         |z   	                    d¬¦  «        ¦  «        k    sJ ‚d S )Nr.   r'   rÜ   ©Úkr   rP   ©Úaxis)
r3   Úlog2r4   r2   r   r}  r¢   r)  ÚsortrS   )rK   rI   ÚdiscountÚidealrb   s        rL   r  r    s  € ÝŒw•r”y ¤¨a¤Ñ1Ô1°AÑ5Ñ6Ô6€HÝ˜v vÑ.Ô.€EÝ˜v wÑ/Ô/€EØ�UŠN×ÒÑ!Ô!Ð!Ð!Ð!Ý˜v v°Ð3Ñ3Ô3°uÒ<×AÒAÑCÔCÐCÐCÐCØŒ;˜6œ<¨œ?Ð,Ò,Ð,Ð,Ð,ØŒ;˜6œ<¨œ?Ð,Ò,Ð,Ð,Ð,Ø•F”M¥2¤7¨6¡?¤?°1°1°1°d°d¸°d°7Ô#;¸hÑ#F×"KÒ"KÐQRÐ"KÑ"SÔ"SÑTÔTÒTÐTÐTÐTÐTÐTrN   c            	      ó  — t          j        t          j        d¦  «        g¦  «        } t          j        | j        ¦  «        }t          | |¦  «        }t          | |d¬¦  «        }dt          j        t          j        dd¦  «        ¦  «        z  }|t          j        | 	                    ¦   «         |  
                    ¦   «         z  g¦  «        k    sJ ‚|t          j        || d d …d d d…f         z   	                    ¦   «         g¦  «        k    sJ ‚d|dd	d …f<   t          | |¦  «        }t          | |d¬¦  «        }|t          j        || d d …d d d…f         z   	                    ¦   «         g¦  «        k    sJ ‚|t          j        |d d…          	                    ¦   «         | dd	d …f          
                    ¦   «         z  |dd …          	                    ¦   «         | dd d	…f          
                    ¦   «         z  z   g¦  «        k    sJ ‚d S )
NrÜ   T©Úignore_tiesr.   r'   ré   rP   r   r”   )r3   r9  r4   r«   r2   r   r  r¢   r)  rS   rq  )rK   rI   ÚdcgÚdcg_ignore_tiesÚ	discountss        rL   Útest_dcg_tiesr&  '  s÷  € ÝŒZ�œ 1™œ˜Ñ'Ô'€FÝŒh�v”|Ñ$Ô$€GÝ
˜V WÑ
-Ô
-€CÝ(¨°ÀdÐKÑKÔK€OØ•B”G�BœI a¨™OœOÑ,Ô,Ñ,€IØ•&”- §¢¡¤°6·;²;±=´=Ñ!@Ð AÑBÔBÒBÐBÐBÐBØ�fœm¨i¸&ÀÀÀÀDÀDÀbÀDÀ¼/Ñ.I×-NÒ-NÑ-PÔ-PÐ,QÑRÔRÒRÐRÐRÐRØ€GˆAˆqˆrˆrˆE�NÝ
˜V WÑ
-Ô
-€CÝ(¨°ÀdÐKÑKÔK€OØ�fœm¨i¸&ÀÀÀÀDÀDÀbÀDÀ¼/Ñ.I×-NÒ-NÑ-PÔ-PÐ,QÑRÔRÒRÐRÐRÐRØ•&”-à�b�q�bŒM×ÒÑÔ &¨¨A¨B¨B¨¤-×"4Ò"4Ñ"6Ô"6Ñ6Ø˜˜˜Œm×ÒÑ!Ô! F¨1¨b¨q¨b¨5¤M×$6Ò$6Ñ$8Ô$8Ñ8ñ9ð	
ñô ò ð ð ð ð ð rN   c            	      óÌ   — t          j        d¦  «                             d¦  «        } t          | | dd¬¦  «        t	          j        t          | | dd¬¦  «        ¦  «        k    sJ ‚d S )Né   )r'   rè   r”   T)r  r"  )r3   r4   rR   r   r¢   r)  )rñ   s    rL   Útest_ndcg_ignore_ties_with_kr)  ;  sq   € Ý
Œ	�"‰Œ×Ò˜fÑ%Ô%€AÝ�a˜˜a¨TÐ2Ñ2Ô2µf´mÝ�1�a˜1¨$Ð/Ñ/Ô/ñ7ô 7ò ð ð ð ð ð rN   c                  óî   — t          j        g d¢g¦  «        } t          j        g d¢g¦  «        }d}t          j        t          |¬¦  «        5  t          | |¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zDCheck `ndcg_score` exception when `y_true` contains negative values.)g{®Gázì¿gö(\�Âõà¿g®GázÞ¿gö(\�ÂõØ?gìQ¸…ëá?)gìQ¸…ë±?g×£p=
×Ó?rÃ   g…ëQ¸Õ?gHáz®GÑ?z7ndcg_score should not be used on negative y_true valuesr±   N)r3   r˜   r¢   r£   r¤   r   )rK   rI   r¼   s      rL   Ú test_ndcg_negative_ndarray_errorr+  B  sÄ   € åŒXÐ8Ð8Ð8Ð9Ñ:Ô:€FÝŒhÐ6Ð6Ð6Ð7Ñ8Ô8€GØPÐÝ	Œ•zÐ)9Ð	:Ñ	:Ô	:ð $ð $Ý�6˜7Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $s   ÁA*Á*A.Á1A.c                  óÖ  — t          j        d¦  «                             dd¦  «        } | t           j                             d¦  «                             dd| j        ¬¦  «        z   }t          | |¦  «        }t          | |d¬	¦  «        }|t          j	        |¦  «        k    sJ ‚|t          j	        d
¦  «        k    sJ ‚|dz  }t          | |¦  «        t          j	        d
¦  «        k    sJ ‚d S )NéF   ré   rM  r   çš™™™™™É¿rÏ   r–   Tr!  r]   r0  )
r3   r4   rR   r7   r8   rÇ  r2   r   r¢   r)  )rK   rI   ÚndcgÚndcg_no_tiess       rL   Útest_ndcg_invariantr1  K  sÝ   € ÝŒY�r‰]Œ]×"Ò" 1 bÑ)Ô)€FØ•r”y×,Ò,¨QÑ/Ô/×7Ò7¸¸cÈÌÐ7ÑUÔUÑU€GÝ�f˜gÑ&Ô&€DÝ˜f g¸4Ð@Ñ@Ô@€LØ•6”= Ñ.Ô.Ò.Ð.Ð.Ð.Ø•6”= Ñ%Ô%Ò%Ð%Ð%Ð%Øˆt�O€GÝ�f˜gÑ&Ô&­&¬-¸Ñ*<Ô*<Ò<Ð<Ð<Ð<Ð<Ð<rN   r"  c           
      óv  — dt          j        d¦  «        d d…         z  }t          j        t          j        ddd¦  «        d¦  «        }|t           j                             d¦  «                             dd	|j        ¬
¦  «        z   }t          ||| ¬¦  «        t          j
        dt          j        t          j        dd¦  «        ¦  «        z  ¦  «        k    sJ ‚t          ||| ¬¦  «        t          j
        dt          j        t          j        dd¦  «        ¦  «        z  ¦  «        k    sJ ‚t          ||| ¬¦  «        t          j
        dt          j        t          j        dd¦  «        ¦  «        z  ¦  «        k    sJ ‚t          ||d| ¬¦  «        t          j
        dt          j        t          j        dd¦  «        ¦  «        z  ¦  «        k    sJ ‚t          ||| ¬¦  «        t          j
        dt          j        t          j        dd¦  «        ¦  «        z                       ¦   «         ¦  «        k    sJ ‚t!          ||| ¬¦  «        t          j
        dt          j        t          j        dd¦  «        ¦  «        z                       ¦   «         ¦  «        k    sJ ‚dt          j        d¦  «        z  }dt          j        t          j        dd¦  «        ¦  «        z                       ¦   «         }t          ||| ¬¦  «        t          j
        |t          j        d¦  «        z  ¦  «        k    sJ ‚t          ||| ¬¦  «        t          j
        t          j        d¦  «        ¦  «        k    sJ ‚t!          ||| ¬¦  «        t          j
        |¦  «        k    sJ ‚t          ||| ¬¦  «        t          j
        d¦  «        k    sJ ‚d S )Nr”   ré   rÜ   rè   rP   )rÜ   r.   r   r.  rÏ   r–   r!  r'   r.   rM  )Úlog_baser"  )rÜ   ré   é	   r]   )r3   ÚeyeÚtiler4   r7   r8   rÇ  r2   r   r¢   r)  r  r   Úlog10r   rq  r   rª   rS   )r"  rK   rI   Úy_score_noisyÚexpected_dcg_scores        rL   Útest_ndcg_toy_examplesr:  V  sÄ  € à•”˜‘”˜2˜A˜2”Ñ€FÝŒg•b”i  2 rÑ*Ô*¨FÑ3Ô3€GØ�bœi×3Ò3°AÑ6Ô6×>Ò>Øˆc˜œð ?ñ ô ñ €Mõ Ø� [ðñ ô å	Œ�q�2œ7¥2¤9¨Q°¡?¤?Ñ3Ô3Ñ3Ñ	4Ô	4ò5ð 5ð 5ð 5õ Ø�¨;ðñ ô å	Œ�q�2œ7¥2¤9¨Q°¡?¤?Ñ3Ô3Ñ3Ñ	4Ô	4ò5ð 5ð 5ð 5õ Ø� [ðñ ô å	Œ�q�2œ7¥2¤9¨Q°¡?¤?Ñ3Ô3Ñ3Ñ	4Ô	4ò5ð 5ð 5ð 5õ Ø� "°+ðñ ô å	Œ�q�2œ8¥B¤I¨a°¡O¤OÑ4Ô4Ñ4Ñ	5Ô	5ò6ð 6ð 6ð 6õ �f˜g°;Ð?Ñ?Ô?Å6Ä=Ø	
�RŒW•R”Y˜q !‘_”_Ñ%Ô%Ñ	%×+Ò+Ñ-Ô-ñDô Dò ð ð ð õ �V˜W°+Ð>Ñ>Ô>Å&Ä-Ø	
�RŒW•R”Y˜q !‘_”_Ñ%Ô%Ñ	%×+Ò+Ñ-Ô-ñCô Cò ð ð ð ð •”˜‘”Ñ €FØ�bœg¥b¤i°°1¡o¤oÑ6Ô6Ñ6×;Ò;Ñ=Ô=ÐÝØ� [ðñ ô å	ŒÐ)­B¬G°A©J¬JÑ6Ñ	7Ô	7ò8ð 8ð 8ð 8õ Ø� [ðñ ô å	Œ•r”w˜q‘z”zÑ	"Ô	"ò#ð #ð #ð #õ �V˜W°+Ð>Ñ>Ô>Å&Ä-ØñCô Cò ð ð ð õ �f˜g°;Ð?Ñ?Ô?Å6Ä=ÐQTÑCUÔCUÒUÐUÐUÐUÐUÐUrN   c                  óš   — d} t          j        t          | ¬¦  «        5  t          dggdgg¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zhCheck that we raise an informative error message when trying to
    compute NDCG with a single document.zTComputing NDCG is only meaningful when there is more than 1 document. Got 1 instead.r±   r.   N)r¢   r£   r¤   r   )rS  s    rL   Útest_ndcg_error_single_documentr<  }  sŸ   € ð	ð õ 
Œ•z¨Ð	1Ñ	1Ô	1ð !ð !Ý�Q�C�5˜A˜3˜%Ñ Ô Ð ð!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !ð !ð !s   žA Á AÁAc                  óä   — t          dd¬¦  «        \  } }| dz   }t          ||¦  «         t          j                             d¦  «                             d¦  «        \  }}t          ||¦  «         d S r  )r   Ú_test_ndcg_score_forr3   r7   r8   r  r  s      rL   Útest_ndcg_scorer?  ˆ  sp   € Ý.¸AÈÐLÑLÔL�I€A€vØˆg˜‰k€GÝ˜ Ñ)Ô)Ð)Ý”i×+Ò+¨AÑ.Ô.×<Ò<¸\ÑJÔJ�O€FˆGÝ˜ Ñ)Ô)Ð)Ð)Ð)rN   c                 óJ  — t          | | ¦  «        }t          | |¦  «        }||k                         ¦   «         sJ ‚| dk                         d¬¦  «        }||          t          j        t	          j        |                      ¦   «         ¦  «        ¦  «        k    sJ ‚||         t          j        t	          j        |                     ¦   «         ¦  «        ¦  «        k    sJ ‚||          t          j        t          | |¦  «        |          t          | | ¦  «        |          z  ¦  «        k    sJ ‚||         t          j        t	          j        |                     ¦   «         ¦  «        ¦  «        k    sJ ‚|j	        | j	        d         fk    sJ ‚|j	        | j	        d         fk    sJ ‚d S )Nr   r.   r  )
r   r}  r¢   r)  r3   rª   rS   r«   r   r2   )rK   rI   r  rb   Úall_zeros        rL   r>  r>  �  s‰  € Ý ¨Ñ/Ô/€EÝ ¨Ñ0Ô0€EØ�UŠN×ÒÑ!Ô!Ð!Ð!Ð!Ø˜!’× Ò  aÐ Ñ(Ô(€HØ�(�Ô�vœ}­R¬W°x°i·_²_Ñ5FÔ5FÑ-GÔ-GÑHÔHÒHÐHÐHÐHØ�Œ?�fœm­B¬H°X·\²\±^´^Ñ,DÔ,DÑEÔEÒEÐEÐEÐEØ�(�Ô�vœ}Ý˜6 7Ñ+Ô+¨X¨IÔ6Ý
˜V VÑ
,Ô
,¨h¨YÔ
7ñ	8ñ ô  ò ð ð ð ð �Œ?�fœm­B¬H°X·\²\±^´^Ñ,DÔ,DÑEÔEÒEÐEÐEÐEØŒ;˜6œ<¨œ?Ð,Ò,Ð,Ð,Ð,ØŒ;˜6œ<¨œ?Ð,Ò,Ð,Ð,Ð,Ð,Ð,rN   c            	      óž  — t          j        g d¢¦  «        } t          | | d¬¦  «        dk    sJ ‚t          | | d¬¦  «        dk    sJ ‚t          j        t
          ¦  «        5  t          | | d¬¦  «        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j        t
          ¦  «        5  t          | | d¬¦  «        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j        t
          ¦  «        5  t          | | d¬¦  «        sJ ‚	 d d d ¦  «         n# 1 swxY w Y   t          j        g d¢¦  «        }t          | |d¬¦  «        }t          | |¦  «        }||k    sJ ‚t          | |d	¬¦  «        d
k    sJ ‚t          d¬¦  «        \  } }}t          j        ddd¦  «        D ]1}t          t          | ||¬¦  «        t          | ||¦  «        ¦  «         Œ2d S )Nr  r.   )ru   gü©ñÒMbP?gš™™™™™¹¿gš™™™™™ñ?r   )rÔ   r   rÔ   g{®Gáz„?rÚ   r€   Tr‰   g-Cëâ6?rÜ   )
r3   r˜   r   r¢   r£   r¤   rM   Úlinspacer   r†   )rK   r  Úroc_auc_with_max_fpr_oneÚunconstrained_roc_aucrJ   rx   ru   s          rL   Útest_partial_roc_auc_scorerF     sÃ  € åŒX�l�l�lÑ#Ô#€FÝ˜ °Ð3Ñ3Ô3°qÒ8Ð8Ð8Ð8Ý˜ °Ð7Ñ7Ô7¸1Ò<Ð<Ð<Ð<Ý	Œ•zÑ	"Ô	"ð ;ð ;Ý˜V V°TÐ:Ñ:Ô:Ð:Ð:Ð:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;å	Œ•zÑ	"Ô	"ð :ð :Ý˜V V°SÐ9Ñ9Ô9Ð9Ð9Ð9Ð9ð:ð :ð :ñ :ô :ð :ð :ð :ð :ð :ð :øøøð :ð :ð :ð :å	Œ•zÑ	"Ô	"ð 8ð 8Ý˜V V°QÐ7Ñ7Ô7Ð7Ð7Ð7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8õ ŒxÐ+Ð+Ð+Ñ,Ô,€HÝ,¨V°XÀqÐIÑIÔIÐÝ)¨&°(Ñ;Ô;ÐØ#Ð'<Ò<Ð<Ð<Ð<Ý˜ °3Ð7Ñ7Ô7¸3Ò>Ð>Ð>Ð>å'¨tÐ4Ñ4Ô4Ñ€FˆF�AÝ”;˜t Q¨Ñ*Ô*ð 
ð 
ˆÝÝ˜& &°'Ð:Ñ:Ô:Ý" 6¨6°7Ñ;Ô;ñ	
ô 	
ð 	
ð 	
ð
ð 
s6   Á BÂBÂ	BÂ&CÃCÃCÃ,DÄDÄDzy_true, k, true_scorerÂ   r'   r”   rÃ   c                 óž   — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          | ||¬¦  «        }|t          j        |¦  «        k    sJ ‚d S )Nr÷  ©rÔ   rÚ   rÛ   rÏ   ©rÛ   rÔ   rÏ   rÚ   ©rÚ   rÏ   rÛ   rÔ   r  ©r3   r˜   r   r¢   r)  )rK   r  Ú
true_scorerI   rb   s        rL   Útest_top_k_accuracy_scorerM  º  su   € õ Œhà Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð ð		
ñô €Gõ ! ¨°AÐ6Ñ6Ô6€EØ•F”M *Ñ-Ô-Ò-Ð-Ð-Ð-Ð-Ð-rN   zy_score, k, true_score)rP   rP   r.   r.   )rP   r.   rP   r.   )rÏ   rÏ   rÑ   rÑ   )rÏ   rÑ   rÏ   rÑ   c                 óV  — g d¢}|                       ¦   «         dk    r|                      ¦   «         dk    rdnd}|dk    r#| |k                         t          j        ¦  «        n|}t          || |¬¦  «        }t          ||¦  «        }||cxk    rt          j        |¦  «        k    sn J ‚d S )Nr  r   r.   r€   r  )	ÚminÚmaxÚastyper3   Úint64r   r	   r¢   r)  )rI   r  rL  rK   rl   rJ   rb   Ú	score_accs           rL   Ú test_top_k_accuracy_score_binaryrT  Ï  s¹   € ð ˆ\ˆ\€Fà—{’{‘}”}¨Ò)Ð)¨g¯kªk©m¬m¸qÒ.@Ð.@��Àa€IØ78¸A²v°vˆg˜	Ò!×)Ò)­"¬(Ñ3Ô3Ð3À6€Få  ¨°AÐ6Ñ6Ô6€EÝ˜v vÑ.Ô.€Ià�IÐ:Ð:Ò:Ð:¥¤¨zÑ!:Ô!:Ò:Ð:Ð:Ð:Ð:Ð:Ð:Ð:rN   zy_true, true_score, labels)r   r.   r.   r'   )r   r.   r.   r.   r…  )rñ   rA  rA  rñ   )rñ   rò   r  rA  Úlabels_as_ndarrayc                 óÌ   — |rt          j        |¦  «        }t          j        g d¢g d¢g d¢g d¢g¦  «        }t          | |d|¬¦  «        }|t	          j        |¦  «        k    sJ ‚dS )z,Test when labels and y_score are multiclass.r÷  rH  rI  rJ  r'   ©r  r   N)r3   r9  r˜   r   r¢   r)  )rK   rL  r   rU  rI   rb   s         rL   Ú0test_top_k_accuracy_score_multiclass_with_labelsrX  æ  sŽ   € ð ð $Ý”˜FÑ#Ô#ˆÝŒhà Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð ð		
ñô €Gõ ! ¨°A¸fÐEÑEÔE€EØ•F”M *Ñ-Ô-Ò-Ð-Ð-Ð-Ð-Ð-rN   c                  ó„  ‡‡‡— t          j        dddd¬¦  «        \  ŠŠt          ‰‰d¬¦  «        \  } }}}t          d¬¦  «        Š‰                     | |¦  «         t          | |f||f¦  «        D ]O\  ŠŠˆˆˆfd„t          dd¦  «        D ¦   «         }t          j        t          j	        |¦  «        dk    ¦  «        sJ ‚ŒPd S )NrM  r0  r   )rç  rC   Ún_informativer-   )r-   c                 óZ   •— g | ]'}t          ‰‰                     ‰¦  «        |¬ ¦  «        ‘Œ(S )r  )r   r=   )r¶   r  rA   rH   rB   s     €€€rL   r¸   z8test_top_k_accuracy_score_increasing.<locals>.<listcomp>  sD   ø€ ð 
ð 
ð 
ØCDÕ   C×$5Ò$5°aÑ$8Ô$8¸AÐ>Ñ>Ô>ð
ð 
ð 
rN   r'   )
r   Úmake_classificationr   r   r<   rZ  r_   r3   r}  rà   )ÚX_trainÚX_testÚy_trainÚy_testÚscoresrA   rH   rB   s        @@@rL   Ú$test_top_k_accuracy_score_increasingrb    s   øøø€ åÔ'Ø °BÀQðñ ô �D€A€qõ (8¸¸1È1Ð'MÑ'MÔ'MÑ$€GˆV�W˜få
¨!Ð
,Ñ
,Ô
,€CØ‡G‚GˆG�WÑÔÐå�W˜fÐ%¨°Ð'8Ñ9Ô9ð +ð +‰ˆˆ1ð
ð 
ð 
ð 
ð 
ð 
ÝHMÈaÐQSÉÌð
ñ 
ô 
ˆõ Œv•b”g˜f‘o”o¨Ò)Ñ*Ô*Ð*Ð*Ð*Ð*ð+ð +rN   c                 óš   — t          j        g d¢g d¢g d¢g d¢g¦  «        }t          | ||¬¦  «        t          j        |¦  «        k    sJ ‚d S )N)rÜ   rÜ   ré   r   )r.   rÜ   rÜ   rÜ   )r   r   r”   r”   r…  r  rK  )rK   r  rL  rI   s       rL   Útest_top_k_accuracy_score_tiesrd    sh   € õ ŒhàˆLˆLØˆLˆLØˆLˆLØˆLˆLð		
ñô €Gõ   ¨°1Ð5Ñ5Ô5½¼ÀzÑ9RÔ9RÒRÐRÐRÐRÐRÐRrN   z	y_true, krç   c                 óä   — t          j        g d¢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k    sJ ‚d S )	Nr÷  )rÔ   rÛ   rÚ   rÏ   )rÏ   rÔ   rÛ   rÚ   )rÚ   rÏ   rÔ   rÛ   zu'k' \(\d+\) greater than or equal to 'n_classes' \(\d+\) will result in a perfect score and is therefore meaningless.r±   r  r.   )r3   r˜   r¢   r¹   r   r   )rK   r  rI   r¼   rb   s        rL   Ú!test_top_k_accuracy_score_warningrf  +  sÛ   € õ Œhà Ð Ð Ø Ð Ð Ø Ð Ð Ø Ð Ð ð		
ñô €Gð	6ð õ 
ŒÕ,Ð4DÐ	EÑ	EÔ	Eð ;ð ;Ý$ V¨W¸Ð:Ñ:Ô:ˆð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;à�AŠ:ˆ:ˆ:ˆ:ˆ:ˆ:s   ¾AÁA!Á$A!zy_true, y_score, labels, msg)r   g=
×£p=â?r.   r'   )rÏ   rÔ   rÑ   )rÛ   rÚ   rÚ   rö   )rÛ   r€   rÔ   z9y type must be 'binary' or 'multiclass', got 'continuous'zZNumber of classes in 'y_true' \(4\) not equal to the number of classes in 'y_score' \(3\).)ró   ró   rñ   rò   z"Parameter 'labels' must be unique.z#Parameter 'labels' must be ordered.)r   r   r.   r'   zSNumber of given labels \(4\) not equal to the number of classes in 'y_score' \(3\).rþ  z3'y_true' contains labels not in parameter 'labels'.)r€   rÏ   rÏ   )rÚ   rÛ   rÏ   z}`y_true` is binary while y_score is 2d with 3 classes. If `y_true` does not contain all the labels, `labels` must be providedc                 ó”   — t          j        t          |¬¦  «        5  t          | |d|¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr±   r'   rW  )r¢   r£   r¤   r   )rK   rI   r   rC  s       rL   Útest_top_k_accuracy_score_errorrh  D  s©   € õf 
Œ•z¨Ð	-Ñ	-Ô	-ð Bð BÝ˜V W°¸&ÐAÑAÔAÐAðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð Bð Bs   œ=½AÁAc                 ó°   —  | g d¢g d¢g¦  «        }t          j        g d¢g d¢g¦  «        }t          ||¦  «        }|t          j        d¦  «        k    sJ ‚d S )Nrã   r¿   )r€   r§   rÐ   rÂ  )r3   r˜   r   r¢   r)  )r
  rK   rI   Úresults       rL   ÚOtest_label_ranking_avg_precision_score_should_allow_csr_matrix_for_y_true_inputrk  ›  sl   € ð ˆ]˜I˜I˜I y y yÐ1Ñ2Ô2€FÝŒh˜˜˜¨¨¨Ð3Ñ4Ô4€GÝ2°6¸7ÑCÔC€FØ•V”] 5Ñ)Ô)Ò)Ð)Ð)Ð)Ð)Ð)rN   Úmetricr7  ))FT)r   r.   )rÁ   r]   )ÚzeroÚonec                 ó$  — t           j                             d¦  «        }d|d         }}|                     ||d¬¦  «        }|                     |¦  «        } | |||¬¦  «        }t          |t          ¦  «        rt          j        |¦  «        rJ ‚dS |\  }}	}
t          j        |¦  «                             ¦   «         rJ ‚t          j        |	¦  «                             ¦   «         r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.
    é*   rM  rP   T)r—   Úreplacer‹  N)	r3   r7   r8   ÚchoicerH  Ú
isinstancerT   ÚisnanÚany)rl  r7  rF   rC   rV   rK   Úy_probarj  Úmetric_1Úmetric_2r�   s              rL   Ú#test_ranking_metric_pos_label_typesry  §  s
  € õ Œ)×
Ò
 Ñ
#Ô
#€CØ˜w rœ{ˆy€IØ�ZŠZ˜ i¸ˆZÑ>Ô>€FØ�hŠh�yÑ!Ô!€GØˆV�F˜G¨yÐ9Ñ9Ô9€FÝ�&�%Ñ Ô ð .Ý”8˜FÑ#Ô#Ð#Ð#Ð#Ð#Ð#à)/Ñ&ˆ�(˜JÝ”8˜HÑ%Ô%×)Ò)Ñ+Ô+Ð+Ð+Ð+Ý”8˜HÑ%Ô%×)Ò)Ñ+Ô+Ð+Ð+Ð+Ý”8˜JÑ'Ô'×+Ò+Ñ-Ô-Ð-Ð-Ð-Ð-Ð-rN   c                 óþ   — t           j                             | ¦  «        }|                     ddd¬¦  «        }|                     d¦  «        }t          ||¦  «        \  }}}t          j        |d         ¦  «        sJ ‚dS )z¶Check that thresholds do not exceed 1.0 when `y_score` is a probability
    estimate.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/26193
    r   r'   rM  r–   N)r3   r7   r8   r™   rH  r   Úisinf)r;  rF   rK   rI   rx   r�   s         rL   Ú(test_roc_curve_with_probablity_estimatesr|  Á  sv   € õ Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ�[Š[˜˜A Bˆ[Ñ'Ô'€FØ�hŠh�r‰lŒl€GÝ  ¨Ñ1Ô1Ñ€A€qˆ*ÝŒ8�J˜q”MÑ"Ô"Ð"Ð"Ð"Ð"Ð"rN   c                  óJ  — t          d¬¦  «        \  } }}d}t          j        t          |¬¦  «        5  t	          | |¬¦  «         ddd¦  «         n# 1 swxY w Y   d}t          j        t          |¬¦  «        5  t	          | ||¬¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	z)Check the message for future deprecation.Tr‰   z)probas_pred was deprecated in version 1.5r±   )Úprobas_predNz4`probas_pred` and `y_score` cannot be both specified)r~  rI   )rM   r¢   r¹   ÚFutureWarningr   r£   r¤   )rK   rx   rI   Úwarn_msgÚ	error_msgs        rL   Ú/test_precision_recall_curve_deprecation_warningr‚  Ð  sH  € õ )°Ð5Ñ5Ô5Ñ€FˆAˆwà:€HÝ	Œ•m¨8Ð	4Ñ	4Ô	4ð 
ð 
ÝØØð	
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð G€IÝ	Œ•z¨Ð	3Ñ	3Ô	3ð 
ð 
ÝØØØð	
ñ 	
ô 	
ð 	
ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s#   ²AÁAÁAÁ8BÂBÂB)NF)rÜ   rG  r   )‘rì   rQ  Únumpyr3   r¢   Úscipyr   Úsklearnr   r   Úsklearn.datasetsr   Úsklearn.exceptionsr   Úsklearn.linear_modelr   Úsklearn.metricsr	   r
   r   r   r   r   r   r   r   r   r   r   r   Úsklearn.metrics._rankingr   r   Úsklearn.model_selectionr   Úsklearn.preprocessingr   Úsklearn.random_projectionr   Úsklearn.utils._testingr   r   r   r   r   r    Úsklearn.utils.extmathr!   Úsklearn.utils.fixesr"   Úsklearn.utils.validationr#   r$   r%   ÚCURVE_FUNCSrM   r[   rf   rn   r†   ÚmarkÚparametrizer‘   r›   r    r¥   r¨   r®   r½   rË   r×   rá   rå   rï   r˜   r  r  r%  r-  r?  rD  rK  rT  rW  r`  r  rf  rl  rw  rp  r‚  r†  r‰  rŽ  r�  r’  r›  r¤  r§  r©  r«  r­  r³  r¾  rÅ  rÊ  rÌ  rÏ  rÓ  rä  rí  rñ  ró  r_   rõ  rú  r  r  r  r	  r  r  r  r  r  r&  r)  r+  r1  r:  r<  r?  r>  rF  rM  rT  rX  rb  rd  rf  rh  rk  ry  r|  r‚  rµ   rN   rL   ú<module>r•     s  ðØ 	€	€	€	Ø €€€à Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð à !Ð !Ð !Ð !Ð !Ð !Ð !Ð !Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 3Ð 3Ð 3Ð 3Ð 3Ð 3ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð MÐ LÐ LÐ LÐ LÐ LÐ LÐ LØ 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð *Ð )Ð )Ð )Ð )Ð )Ø .Ð .Ð .Ð .Ð .Ð .ðð ð ð ð ð ð ð ð ð ð ØØð€ð)#ð )#ð )#ð )#ð`2ð 2ð 2ðð ð ð<ð ð ð&Hð Hð Hð8 „×Ò˜ $¨ Ñ/Ô/ð
)ð 
)ñ 0Ô/ð
)ð
"ð 
"ð 
"ð)ð )ð )ð&#ð #ð #ð)ð )ð )ð)ð )ð )ð8)ð )ð )ð6eNð eNð eNðPMð Mð Mð	)ð 	)ð 	)ð.ð .ð .ð&ð ð ð" „×ÒØà	ˆŒ�,�,�,Ñ	Ô	   Ð+Ø	ˆŒ�,�,�,Ñ	Ô	 Ð&Ø	Ð	Ð	˜˜˜Ð/Ø	Ð	Ð	˜tÐ$ð	ñô ð/Xð /Xñô ð/Xðd „×ÒØà	ˆŒ�,�,�,Ñ	Ô	   Ð+Ø	ˆŒÐ&Ð&Ð&Ñ	'Ô	'¨¨¨Ð9ðñô ðð ñô ðð: „×ÒØà	ˆŒ�,�,�,Ñ	Ô	 Ð&Ø	Ð	Ð	˜tÐ$Ø	ˆˆ�y�y�yÐ!Ø	Ð	Ð	˜˜˜Ð/ð	ñô ðð ñô ððD „×ÒØðð ð ñô ðð ñô ððD:ð :ð :ð( „×ÒØà	,¨h¨b¬h°|°|°|Ñ.DÔ.DÀiÀiÀiÐPà/ØˆBŒHÐ)Ð)Ð)Ñ*Ô*ØˆOˆOð	
ðð ˆBŒH�\�\�\Ñ"Ô"Øð	
ð 1ØˆBŒHÐ)Ð)Ð)Ñ*Ô*ØˆOˆOð	
ðð ˆBŒH�\�\�\Ñ"Ô"Ø�ˆFð	
ðð ˆBŒHÐ)Ð)Ð)Ñ*Ô*Ø�#ˆJð	
ðð ˆBŒH�\�\�\Ñ"Ô"ØˆLˆLð	
ðð ˆBŒHÐ)Ð)Ð)Ñ*Ô*Ø Ð Ð ð	
ð AØˆBŒHÐ)Ð)Ð)Ñ*Ô*ØˆOˆOð	
ð AØˆBŒHÐ)Ð)Ð)Ñ*Ô*ØˆOˆOð	
ð AØˆBŒH�\�\�\Ñ"Ô"ØˆIˆIð	
ð}CñFô FðN „×Ò˜¨°¨Ñ7Ô7ðPð Pñ 8Ô7ñOFô FðPPð „×ÒØð'ð "°%Ð8Ð8ð	
ð'ð "°%Ð8Ð8ð	
ðFð "°BÐ7Ð7ð	
ðð "¨cÐ2Ð2ð	
ð 
4°RÐ8ð=ñ"ô "ðF	0ð 	0ñG"ô "ðF	0ð*ð *ð *ð@ „×Ò˜ {Ñ3Ô3ð#ð #ñ 4Ô3ð#ð „×Ò˜ {Ñ3Ô3ðEð Eñ 4Ô3ðEð2 €˜-Ð(Ñ(Ô(Ø„×Ò˜Ð(>À	Ð'JÑKÔKØ„×Ò˜¨°Ð(9Ñ:Ô:ð
'ð 
'ñ ;Ô:ñ LÔKñ )Ô(ð
'ð „×Ò˜ {Ñ3Ô3ð	&ð 	&ñ 4Ô3ð	&ð „×Ò˜ $¨ Ñ/Ô/ð ð  ñ 0Ô/ð ð>)ð )ð )ð, „×Ò˜ $¨ Ñ/Ô/ð`ð `ñ 0Ô/ð`ðF6ð 6ð 6ðD<ð <ð <ð=ð =ð =ð
=ð 
=ð 
=ð=ð =ð =ð*$ð $ð $ð2 „×ÒØ.à	ˆˆ�K�K�K !  q cÐ*Ø	ˆˆ�N�N�N Q C¨!¨Ð-Ø	ˆˆ�N�N�N Q C¨!¨Ð-Ø	ˆˆÐ%Ð%Ð%¨ s¨Q¨CÐ0Ø	ˆˆ�K�K�K # ¨¨Ð,Ø	ˆˆ�N�N�N S E¨A¨3Ð/Ø	ˆˆ�N�N�N S E¨A¨3Ð/Ø	ˆˆÐ%Ð%Ð%¨ u¨q¨cÐ2Ø	ˆˆ�K�K�K # ¨¨Ð,Ø	ˆˆ�N�N�N Q C¨!¨Ð-Ø	ˆˆ�N�N�N Q C¨!¨Ð-Ø	ˆˆÐ%Ð%Ð%¨ s¨Q¨CÐ0Ø	ˆˆ�K�K�K   ¨i¨i¨iÐ8Ø	ˆˆ�N�N�N K K K°°°Ð;Ø	ˆˆ�N�N�N K K K°°°Ð;Ø	ˆˆÐ%Ð%Ð% { { {°I°I°IÐ>Ø	ˆˆ�K�K�K   ¨M¨M¨MÐ:Ø	ˆˆ�N�N�N I I I¨}¨}¨}Ð=Ø	ˆˆ�N�N�N I I I¨}¨}¨}Ð=Ø	ˆˆÐ%Ð%Ð% y y y°-°-°-Ð@ð)ñô ð2'ð 'ñ3ô ð2'ð „×ÒØ.à
ˆQˆ�#�s�˜a˜S 1 #Ð&Ø
ˆQˆ�#�s�˜a˜S 1 #Ð&Ø	ˆˆÐ$Ð$Ð$ s e¨a¨SÐ1Ø	ˆˆÐ$Ð$Ð$ s e¨a¨SÐ1Ø	ˆˆÐ$Ð$Ð$ q c¨A¨3Ð/Ø	ˆˆÐ$Ð$Ð$ q c¨A¨3Ð/Ø	ˆˆÐ$Ð$Ð$ q c¨A¨3Ð/Ø	ˆˆÐ$Ð$Ð$ q c¨A¨3Ð/ð	ñô ð'ð 'ñô ð'ðð ð ð „×Ò˜Ð$EÐ$EÐ$EÑFÔFð*ð *ñ GÔFð*ð „×ÒØà	Ð	Ð	Ø	Ð	Ð	Ø	Ð	Ð	Ø	Ð	Ð	Ø	Ð	Ð	ðñ	ô 	ðð ñ	ô 	ðð „×ÒØà
ˆQˆ���Ð?Ð@Ø	ˆˆ�Q˜�HÐ?Ð@Ø	ˆˆ�K�K�KÐ!CÐDØ	ˆˆ�K�K�KÐ!CÐDà.Ð.Ð.ØˆOˆOØ(ð	
ð
ñô ð"ð "ñô ð"ð>ð >ð >ð48Sð 8Sð 8Sðvð ð ð.1ð 1ð 1ð4Xð Xð Xðð ð ð6#ð #ð #ðN 9:ð3ð 3ð 3ð 3ð@ „×ÒØàØ3ØØ)ð	ñô ð „×Ò˜Ð"GÈÐ!RÑSÔSðð ñ TÔSñô ððCð Cð Cð „×Ò˜ mÑ4Ô4Ø„×Ò˜ jÑ1Ô1Ø„×Ò˜¨¨¨q©¬Ñ2Ô2ðð ñ 3Ô2ñ 2Ô1ñ 5Ô4ððð ð ð*4ð 4ð 4ðnLð Lð Lð  „×ÒØà	ˆˆÐ$Ð$Ð$Ð%Ø	ˆˆÐ%Ð%Ð%Ð&Ð'Ø
ˆ)ˆ)ˆÐ&Ð&Ð&Ð'ðñô ð(ð (ñô ð(ð(ð (ð (ðV „×Ò˜¨.Ñ9Ô9ðð ñ :Ô9ðð9ð 9ð 9ð 	Pð 	Pð 	Pð)ð )ð )ðUð Uð Uðð ð ð(ð ð ð$ð $ð $ð=ð =ð =ð „×Ò˜¨¨u¨Ñ6Ô6ð#Vð #Vñ 7Ô6ð#VðL!ð !ð !ð*ð *ð *ð-ð -ð -ð 
ð 
ð 
ð4 „×ÒØà	ˆˆ�q˜$ÐØ	ˆˆ�q˜#ÐØ	ˆˆ�q˜$Ððñô ð
.ð 
.ñô ð
.ð „×ÒØà	ˆŒ�.�.�.Ñ	!Ô	! 1 aÐ(Ø	ˆŒ�.�.�.Ñ	!Ô	! 1 cÐ*Ø	ˆŒ�.�.�.Ñ	!Ô	! 1 aÐ(Ø	ˆŒÐ&Ð&Ð&Ñ	'Ô	'¨¨AÐ.Ø	ˆŒÐ&Ð&Ð&Ñ	'Ô	'¨¨CÐ0Ø	ˆŒÐ&Ð&Ð&Ñ	'Ô	'¨¨AÐ.ðñ
ô 
ð	;ð 	;ñ
ô 
ð	;ð „×ÒØ à	ˆŒ�,�,�,Ñ	Ô	  | | |Ð4Ø	ˆŒ�,�,�,Ñ	Ô	  l l lÐ3Ø	ˆŒ�,�,�,Ñ	Ô	  l l lÐ3Ø	ˆŒÐ&Ð&Ð&Ñ	'Ô	'¨Ð/CÐ/CÐ/CÐDð	ñô ð „×ÒÐ,¨t°U¨mÑ<Ô<ð.ð .ñ =Ô<ñô ð.ð&+ð +ð +ð& „×ÒØà	ˆˆ�q˜$ÐØ	ˆˆ�q˜#ÐØ	ˆˆ�q˜!Ððñô ð
Sð 
Sñô ð
Sð „×ÒØà	ˆˆ�qÐØ	ˆˆ�qÐðñô ðð ñô ðð$ „×ÒØ"ð ˆOˆOà��Ø��Ø��Ø��ð	ð ØGð
	
ð ˆLˆLà��Ø��Ø��Ø��ð	ð ð+ð	
ð !Ð Ð à��Ø��Ø��Ø��ð	ð !Ð Ð Ø0ð
	
ð !Ð Ð à��Ø��Ø��Ø��ð	ð ˆOˆOØ1ð
	
ð ˆLˆLà��Ø��Ø��Ø��ð	ð ˆLˆLð ð	
ð ˆLˆLà��Ø��Ø��Ø��ð	ð ˆIˆIØAð
	
ð �ˆFØˆ_ˆ_˜o˜o˜oÐ.ØðWð	
ðKNñQô QðdBð BñeQô QðdBð
 „×Ò˜¨.Ñ9Ô9ð*ð *ñ :Ô9ð*ð „×ÒØÐ&¨	Ð3IÈ9ÐUñô ð „×ÒØÐCÐCÐCñô ð.ð .ñô ñô ð.ð(#ð #ð #ð
ð 
ð 
ð 
ð 
rN   