Ë
    ÷Q(h¥F ã                   óš  — 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, d dl-m.Z. d dl/m0Z0 d dl1m2Z2m3Z3m4Z4 eeegZ5déd„Z6d„ Z7d„ Z8d„ Z9d„ Z:ejv                  jy                  dddg«      d„ «       Z=d„ Z>d„ Z?d„ Z@d„ ZAd„ ZBd„ ZCd„ ZDd „ ZEd!„ ZFd"„ ZGd#„ ZHejv                  jy                  d$ ej’                  g d%¢«      g d&¢f ej’                  g d%¢«      dfg d'¢g d(¢fg d'¢dfg«      d)„ «       ZJejv                  jy                  d$ ej’                  g d*¢«      g d&¢f ej’                  g d+¢«      g d,¢fg«      d-„ «       ZKejv                  jy                  d$ ej’                  g d.¢«      dfg d/¢dfg d.¢g d&¢fg d/¢g d(¢fg«      d0„ «       ZLejv                  jy                  d1g d2¢«      d3„ «       ZMd4„ ZNejv                  jy                  d5d6 ej’                  g d.¢«      g d7¢fd6 ej’                  g d/¢«      g d8¢fd9 ej’                  g d*¢«      dfd: ej’                  g d/¢«      g d;¢fd< ej’                  g d.¢«      d d=gfd< ej’                  g d/¢«      d>d?gfd@ ej’                  g d.¢«      g dA¢fd@ ej’                  g d/¢«      g dB¢fdC ej’                  g dD¢«      g d(¢fdC ej’                  g dB¢«      g d(¢fdC ej’                  g dA¢«      g d&¢fg«      ejv                  jy                  dEdFdGg«      dH„ «       «       ZOejv                  jy                  dIdJdKdFdLœfdMdKdGdLœfdNdFg dOœfdPdFdQdRœfdSi fg«      dT„ «       ZPdU„ ZQejv                  jy                  dVe5«      dW„ «       ZRejv                  jy                  dVe5«      dX„ «       ZSejv                  j©                  dY«      ejv                  jy                  dVeeg«      ejv                  jy                  dZd[d\g«      d]„ «       «       «       ZUejv                  jy                  dVe5«      d^„ «       ZVejv                  jy                  dddg«      d_„ «       ZWd`„ ZXejv                  jy                  dddg«      da„ «       ZYdb„ ZZdc„ Z[dd„ Z\de„ Z]df„ Z^dg„ Z_ejv                  jy                  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„ «       Z`ejv                  jy                  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„ «       Zady„ Zbejv                  jy                  dzg d{¢«      d|„ «       Zcejv                  jy                  d}g d~¢g d¢g d€¢g d�¢g d‚¢g«      dƒ„ «       Zdejv                  jy                  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Œ„ «       Zed�„ ZfdŽ„ Zgd�„ Zhd�„ Zid‘„ Zjd’„ Zkd“„ Zl	 dêd•„Zmejv                  jy                  d–egekejehf«      ejv                  jy                  d—eelf«      d˜„ «       «       Znd™„ Zoejv                  jy                  dšd›«      ejv                  jy                  dœd�«      ejv                  jy                  dž epd=«      «      dŸ„ «       «       «       Zqd „ Zrd¡„ Zsd¢„ Ztejv                  jy                  d£g ds¢g dw¢fg ds¢g dw¢gfg ds¢gg dw¢fg«      d¤„ «       Zud¥„ Zvejv                  jy                  d¦e0«      d§„ «       Zwd¨„ Zxd©„ Zydª„ Zzd«„ Z{d¬„ Z|d­„ Z}d®„ Z~d¯„ Zejv                  jy                  d°ddg«      d±„ «       Z€d²„ Z�d³„ Z‚d´„ Zƒdµ„ Z„ejv                  jy                  d¶g dA¢d=d·fg dA¢d¸dQfg dA¢d¹dºfg«      d»„ «       Z…ejv                  jy                  d¼ ej’                  g d½¢«      d=d=f ej’                  g d¾¢«      d=dQf ej’                  g d¾¢«      d¸d=f ej’                  g d¿¢«      d=d=f ej’                  g dÀ¢«      d=dQf ej’                  g dÀ¢«      d¸d=fg«      dÁ„ «       Z†ejv                  jy                  dÂ ej’                  g dÃ¢«      dºg dA¢f ej’                  g dÄ¢«      dQg dA¢f ej’                  g dÅ¢«      dQg dA¢f ej’                  g dÆ¢«      dºg dÇ¢fg«      ejv                  jy                  dÈddg«      dÉ„ «       «       Z‡dÊ„ Zˆejv                  jy                  d¶g dA¢d=d·fg dA¢d¸dQfg dA¢d¹d=fg«      dË„ «       Z‰ejv                  jy                  dÌg dA¢dÍfg dA¢d”fg«      dÎ„ «       ZŠejv                  jy                  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jv                  jy                  d¦e0«      dâ„ «       ZŒejv                  jy                  dãeeeeg«      ejv                  jy                  däg då¢«      dæ„ «       «       Z�dç„ ZŽdè„ Z�y)ëé    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)Ú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«      }|j                  |«       ||   ||   }}t        |dz  «      }t
        j                  j                  d«      }t
        j                  ||j                  |d|z  «      f   }t        j                  ddd¬«      }	|	j!                  |d| |d| «      j#                  ||d «      }
|r	|
dd…d	f   }
|	j%                  ||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                ú`/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/metrics/tests/test_ranking.pyÚmake_predictionrL   8   sM  € ð €ä×$Ñ$Ó&ˆà�‰€AØ�‰€Aáà��Q‘‰x˜˜1˜q™5™ˆ1ˆàŸG™GÑ€IˆzÜ
�	‰	�)Ó€Aä
˜RÓ
 €CØ‡K�K�„NØˆQ‰4��1‘€q€AÜˆy˜1‰}Ó€Dô �)‰)×
Ñ
 Ó
"€CÜ
�‰ˆa�—‘˜9 c¨JÑ&6Ó7Ð7Ñ8€Aô �'‰'˜¨tÀ!Ô
D€CØ�g‰g�a˜˜�h  % 4 Ó)×7Ñ7¸¸$¸%¸ÓA€Gáð š!˜Q˜$‘-ˆà�[‰[˜˜4˜5˜Ó"€FØˆtˆuˆX€FØ�6˜7Ð"Ð"ó    c                 ó  — t        j                  | «      d   }|| |k(     }|| |k7     }|j                  dd«      |j                  dd«      z
  }t        j                  |dkD  «      }|t	        t        |«      t        |«      z  «      z  S )zKAlternative implementation to check for correctness of
    `roc_auc_score`.r-   éÿÿÿÿr   )r2   ÚuniqueÚreshapeÚsumÚfloatÚlen)rJ   rH   Ú	pos_labelÚposÚnegÚdiff_matrixÚ	n_corrects          rK   Ú_aucrZ   h   s†   € ô —	‘	˜&Ó! !Ñ$€Ið �&˜IÑ%Ñ
&€CØ
�&˜IÑ%Ñ
&€CØ—+‘+˜a Ó$ s§{¡{°2°qÓ'9Ñ9€KÜ—‘�{ Q‘Ó'€Ià”uœS ›X¬¨C«Ñ0Ó1Ñ1Ð1rM   c                 ó`  — t        j                  | «      d   }t        j                  | |k(  «      }t        j                  |«      ddd…   }||   }| |   } d}t	        t        |«      «      D ]<  }| |   |k(  sŒd}t	        d|dz   «      D ]  }| |   |k(  sŒ|dz  }Œ ||dz   z  }||z  }Œ> ||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-   NrO   r   ç      ð?)r2   rP   rR   ÚargsortÚrangerT   )	rJ   rH   rU   Ún_posÚorderÚscoreÚiÚprecÚjs	            rK   Ú_average_precisionre   w   sÕ   € ô —	‘	˜&Ó! !Ñ$€IÜ�F‰F�6˜YÑ&Ó'€EÜ�J‰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‰=ÐrM   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^   rT   )rJ   rH   Ú	precisionÚrecallÚ	thresholdÚaverage_precisionrb   s          rK   Ú_average_precision_slowrm   •   s‚   € ô $:¸&À'Ó#JÑ €Iˆv�yÜ”X˜iÓ(Ó)€IÜ”(˜6Ó"Ó#€FØÐÜ�1”c˜)“nÓ%ò HˆØ˜Y q™\¨V°A©Y¸ÀÀAÁ¹Ñ-FÑGÑGÑðHàÐrM   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                 ó.  — t        | |«      \  }}}|||k     }t        j                  ||«      }|||k     }t        j                  ||kD  «      }|dz
  }	||	   ||   g}
||	   ||   g}t        j                  |t        j                  ||
|«      «      }||fS )Nr-   )r   r2   ÚappendÚargmaxÚinterp)rJ   Ú	y_predictÚmax_fprÚfprÚtprÚ_Únew_fprÚnew_tprÚidx_outÚidx_inÚx_interpÚy_interps               rK   Ú_partial_rocz,_partial_roc_auc_score.<locals>._partial_roc­   s§   € Ü ¨	Ó2‰ˆˆS�!Ø�c˜W‘nÑ%ˆÜ—)‘)˜G WÓ-ˆØ�c˜W‘nÑ%ˆÜ—)‘)˜C '™MÓ*ˆØ˜1‘ˆØ˜‘K  W¡Ð.ˆØ˜‘K  W¡Ð.ˆÜ—)‘)˜G¤R§Y¡Y¨w¸À(Ó%KÓLˆØ˜Ð!Ð!rM   r   ç      à?r-   )r
   )rJ   rs   rt   r~   rx   ry   Úpartial_aucÚfpr1Úfpr2Úmin_areaÚmax_areas              rK   Ú_partial_roc_auc_scorer…   ¨   ss   € ò

"ñ $ 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ÐGrM   ÚdropTc                 ó,  — t        d¬«      \  }}}t        ||«      }t        ||| ¬«      \  }}}t        ||«      }t	        ||d¬«       t        |t        ||«      «       |j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚y )NT©r?   ©Údrop_intermediater&   ©Údecimal)rL   rZ   r   r
   r   r   r   r1   )	r†   rJ   rw   rH   Úexpected_aucru   rv   Ú
thresholdsÚroc_aucs	            rK   Útest_roc_curver�   Ä   sŒ   € ô )°Ô5Ñ€FˆAˆwÜ˜ Ó(€Lä$ V¨WÈÔMÑ€CˆˆjÜ�#�s‹m€GÜ˜g |¸QÕ?Ü˜¤¨v°wÓ!?Ô@Ø�9‰9˜Ÿ	™	Ò!Ð!Ð!Ø�9‰9˜
×(Ñ(Ò(Ð(Ñ(rM   c                  ó`  — t         j                  j                  d«      } t        j                  dgdz  dgdz  z   «      }| j	                  dd¬«      }t        ||d¬«      \  }}}|d   dk(  sJ ‚|d	   dk(  sJ ‚|j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚y )
Nr   é2   r-   é   éd   ©ÚsizeTr‰   rO   )r2   r6   r7   ÚarrayÚrandintr   r1   )rE   rJ   rI   ru   rv   Úthrs         rK   Útest_roc_curve_end_pointsrš   Ò   s©   € ô �)‰)×
Ñ
 Ó
"€CÜ�X‰X�q�c˜B‘h !  r¡Ñ)Ó*€FØ�[‰[˜ ˆ[Ó%€FÜ˜f fÀÔE�M€CˆˆcØˆq‰6�QŠ;Ðˆ;Øˆr‰7�aŠ<Ðˆ<Ø�9‰9˜Ÿ	™	Ò!Ð!Ð!Ø�9‰9˜Ÿ	™	Ò!Ð!Ñ!rM   c                  ól  — t        d¬«      \  } }}t        | |«      \  }}}g }|D ]I  }t        j                  ||k\  | z  «      }t        j                  | «      }	|j	                  d|z  |	z  «       ŒK t        ||d¬«       |j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚y )NTrˆ   r\   r&   r‹   )rL   r   r2   rR   rp   r   r1   )
rJ   rw   rH   ru   rv   rŽ   Útpr_correctÚtÚtprD   s
             rK   Útest_roc_returns_consistencyrŸ   ß   s´   € ô )°Ô5Ñ€FˆAˆwÜ$ V¨WÓ5Ñ€Cˆˆjð €KØò )ˆÜ�V‰V�W ‘\ VÑ+Ó,ˆÜ�F‰F�6‹NˆØ×Ñ˜3 ™8 a™<Õ(ð)ô ˜c ;¸Õ:Ø�9‰9˜Ÿ	™	Ò!Ð!Ð!Ø�9‰9˜
×(Ñ(Ò(Ð(Ñ(rM   c                  ó˜   — t        d¬«      \  } }}t        j                  t        «      5  t	        | |«       d d d «       y # 1 sw Y   y xY w)NFrˆ   )rL   ÚpytestÚraisesÚ
ValueErrorr   )rJ   rw   rH   s      rK   Útest_roc_curve_multir¤   ò   s>   € ä(°Ô6Ñ€FˆAˆwä	�‰”zÓ	"ñ #Ü�&˜'Ô"÷#÷ #ñ #ús   ªA Á A	c                  óê   — t        d¬«      \  } }}t        | |dz
  «      \  }}}t        ||«      }t        |dd¬«       |j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚y )NTrˆ   r   çÍÌÌÌÌÌì?r&   r‹   )rL   r   r
   r   r1   )rJ   rw   rH   ru   rv   rŽ   r�   s          rK   Útest_roc_curve_confidencer§   ú   so   € ä(°Ô5Ñ€FˆAˆwä$ V¨W°s©]Ó;Ñ€CˆˆjÜ�#�s‹m€GÜ˜g t°QÕ7Ø�9‰9˜Ÿ	™	Ò!Ð!Ð!Ø�9‰9˜
×(Ñ(Ò(Ð(Ñ(rM   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 ‚y )NTrˆ   r   r&   r‹   gö(\�Âõè?)rL   r2   Úonesr1   r   r
   r   Úzeros)rJ   ÚpredrH   Útrivial_predru   rv   rŽ   r�   s           rK   Útest_roc_curve_hardr­     sE  € ä+°4Ô8Ñ€FˆD�'ô —7‘7˜6Ÿ<™<Ó(€LÜ$ V¨\Ó:Ñ€CˆˆjÜ�#�s‹m€GÜ˜g t°QÕ7Ø�9‰9˜Ÿ	™	Ò!Ð!Ð!Ø�9‰9˜
×(Ñ(Ò(Ð(Ð(ô —8‘8˜FŸL™LÓ)€LÜ$ V¨\Ó:Ñ€CˆˆjÜ�#�s‹m€GÜ˜g t°QÕ7Ø�9‰9˜Ÿ	™	Ò!Ð!Ð!Ø�9‰9˜
×(Ñ(Ò(Ð(Ð(ô % V¨TÓ2Ñ€CˆˆjÜ�#�s‹m€GÜ˜g t°QÕ7Ø�9‰9˜Ÿ	™	Ò!Ð!Ð!Ø�9‰9˜
×(Ñ(Ò(Ð(Ñ(rM   c                  óþ  — g d¢} g d¢}d}t        j                  t        |¬«      5  t        | |«      \  }}}d d d «       t	        t        j                  t        «      t
        j                  «      «       |j                  j                  k(  sJ ‚|j                  |j                  k(  sJ ‚d}t        j                  t        |¬«      5  t        | D �cg c]  }d|z
  ‘Œ	 c}|«      \  }}}d d d «       t	        |t        j                  t        |«      t
        j                  «      «       |j                  |j                  k(  sJ ‚|j                  |j                  k(  sJ ‚y # 1 sw Y   �Œ,xY wc c}w # 1 sw Y   Œ‰xY w)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 meaninglessr-   )
r¡   Úwarnsr   r   r   r2   ÚfullrT   Únanr1   )rJ   rI   Úexpected_messageru   rv   rŽ   Úxs          rK   Útest_roc_curve_one_labelr¸   !  sH  € Ú+€FÚ+€Fð 	Tð ô 
�‰Ô,Ð4DÔ	Eñ 9Ü(¨°Ó8ÑˆˆS�*÷9ô �sœBŸG™G¤C¨
£O´R·V±VÓ<Ô=Ø�9‰9˜Ÿ	™	Ò!Ð!Ð!Ø�9‰9˜
×(Ñ(Ò(Ð(Ð(ð 	Sð ô 
�‰Ô,Ð4DÔ	Eñ JÜ(¸Ö)@°A¨!¨a«%Ò)@À&ÓIÑˆˆS�*÷Jô �sœBŸG™G¤C¨
£O´R·V±VÓ<Ô=Ø�9‰9˜Ÿ	™	Ò!Ð!Ð!Ø�9‰9˜
×(Ñ(Ò(Ð(Ñ(÷#9ñ 9üò *A÷Jð Jús)   ¦E!Ã	
E3ÃE.
ÃE3Å!E+Å.E3Å3E<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 «       t        |g d¢«       t        |t        j                  t        j                  t        j                  g«       d}t	        j
                  t        |¬«      5  t        | |«      }d d d «       t        j                  «      sJ ‚ddg} dd	g}d}t	        j
                  t        |¬«      5  t        | |«      \  }}}d d d «       t        |t        j                  t        j                  t        j                  g«       t        |g d¢«       d}t	        j
                  t        |¬«      5  t        | |«      }d d d «       t        j                  |«      sJ ‚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 «       t	        j
                  t        |¬«      5  t        | |d¬«       d 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        |¬«      5  t        | |d¬«       d d d «       t	        j
                  t        |¬«      5  t        | |d¬«       d 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«       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«       y # 1 sw Y   �Œ)xY w# 1 sw Y   �Œ½xY w# 1 sw Y   �ŒuxY w# 1 sw Y   �Œ	xY w# 1 sw Y   �Œ—xY w# 1 sw Y   �ŒrxY w# 1 sw Y   �ŒçxY w# 1 sw Y   �ŒÂxY w)Nr   r-   ©r   r   r-   ©r   r-   r-   r\   ç        r   ç      Ð?ç      è?r²   r°   ©r¼   r   r\   úOOnly one class is present in y_true. ROC AUC score is not defined in that case.r¯   Úmacro©ÚaverageÚweightedÚsamplesÚmicro)r   r   r   r   r¡   r³   r   r2   rµ   ÚmathÚisnanr—   )rJ   rH   rv   ru   rw   r�   r¶   r
   s           rK   Útest_roc_curve_toydatarÉ   <  s³  € à�ˆV€FØ�!ˆf€GÜ˜F GÓ,�K€CˆˆaÜ˜F GÓ,€GÜ˜c¢9Ô-Ü˜c¢9Ô-Ü˜ Ô%à�ˆV€FØ�!ˆf€GÜ˜F GÓ,�K€CˆˆaÜ˜F GÓ,€GÜ˜c¢9Ô-Ü˜c¢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Ô-Ü˜c¢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ñ 1Ü ¨Ó0‰ˆˆS�!÷1ä˜c¢?Ô3Ü˜c¤B§F¡F¬B¯F©F´B·F±FÐ#;Ô<ð	5ð ô 
�‰Ô,Ð4DÔ	Eñ -Ü˜F GÓ,ˆ÷-ä�:‰:�cŒ?Ðˆ?ð �ˆV€FØ�Tˆl€Gð 	Tð ô 
�‰Ô,Ð4DÔ	Eñ 1Ü ¨Ó0‰ˆˆS�!÷1ä˜c¤B§F¡F¬B¯F©F´B·F±FÐ#;Ô<Ü˜c¢?Ô3ð	5ð ô 
�‰Ô,Ð4DÔ	Eñ -Ü˜F GÓ,ˆ÷-ä�:‰:�cŒ?Ðˆ?ô �X‰X˜˜1�v  1˜vÐ&Ó'€FÜ�h‰h˜˜A˜  A Ð'Ó(€GÜ	�‰Ô,Ð4DÔ	Eñ 8Ü�f˜g¨wÕ7÷8ä	�‰Ô,Ð4DÔ	Eñ ;Ü�f˜g¨zÕ:÷;äœ f¨g¸yÔIÈ3ÔOÜœ f¨g¸wÔGÈÔMä�X‰X˜˜1�v  1˜vÐ&Ó'€FÜ�h‰h˜˜A˜  A Ð'Ó(€GÜ	�‰Ô,Ð4DÔ	Eñ 8Ü�f˜g¨wÕ7÷8ä	�‰Ô,Ð4DÔ	Eñ ;Ü�f˜g¨zÕ:÷;äœ f¨g¸yÔIÈ3ÔOÜœ f¨g¸wÔGÈÔMä�X‰X˜˜1�v  1˜vÐ&Ó'€FÜ�h‰h˜˜A˜  A Ð'Ó(€GÜœ f¨g¸wÔGÈÔKÜœ f¨g¸zÔJÈAÔNÜœ f¨g¸yÔIÈ1ÔMÜœ f¨g¸wÔGÈÔKä�X‰X˜˜1�v  1˜vÐ&Ó'€FÜ�h‰h˜˜c˜
 S¨# JÐ/Ó0€GÜœ f¨g¸wÔGÈÔMÜœ f¨g¸zÔJÈCÔPÜœ f¨g¸yÔIÈ3ÔOÜœ f¨g¸wÔGÈÕM÷}1ñ 1ú÷-ñ -ú÷1ñ 1ú÷-ñ -ú÷8ñ 8ú÷;ñ ;ú÷8ñ 8ú÷;ñ ;ús`   Æ"WÈW'É0W4Ë-XÍ*XÎXÐ4X(Ñ&X5×W$×'W1×4W>ØXØXØX%Ø(X2Ø5X?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«       y )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   r2   Úinf)rJ   rH   rv   ru   rŽ   s        rK   Ú test_roc_curve_drop_intermediaterÕ   ®  st   € â€FÚ,€GÜ$ V¨WÈÔMÑ€CˆˆjÜ˜j¬2¯6©6°3¸¸SÐ*AÔBò 5€FÚO€GÜ$ V¨WÈÔMÑ€CˆˆjÜ˜j¬2¯6©6°3¸¸SÀ#ÀsÐ*KÕLrM   c                  ó  — g d¢} g d¢}t        j                  dd«      }t        | ||¬«      \  }}}t        j                  |«      dk  j	                  «       dk(  sJ ‚t        j                  |«      dk  j	                  «       dk(  sJ ‚y )N©r   r   r-   r-   r-   )rÒ   rÏ   ç333333Ó?çš™™™™™Ù?r   rÍ   é   ©Úsample_weightr   )r2   Úrepeatr   ÚdiffrR   )rJ   rH   rÜ   ru   rv   rw   s         rK   Ú!test_roc_curve_fpr_tpr_increasingrß   ¼  sz   € ò €FÚ'€GÜ—I‘I˜c 1Ó%€MÜ˜F G¸=ÔI�K€CˆˆaÜ�G‰G�C‹L˜1Ñ×!Ñ!Ó# qÒ(Ð(Ð(Ü�G‰G�C‹L˜1Ñ×!Ñ!Ó# qÒ(Ð(Ñ(rM   c                  ó0  — 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«       y )Nr   r-   r   ©r-   r   r   r»   ©r   r   r-   )r   r
   )r·   rA   s     rK   Útest_aucrã   È  sœ   € à	
ˆAˆ€AØ	
ˆAˆ€AÜœc ! Q›i¨Ô-Ø	
ˆAˆ€AØ	
ˆAˆ€AÜœc ! Q›i¨Ô-Ú€AÚ€AÜœc ! Q›i¨Ô-Ø	
ˆAˆ€AØ	
ˆAˆ€AÜœc ! Q›i¨Ô+Ú€AÚ€AÜœc ! Q›i¨Õ-rM   c                  óî  — t        j                  t        «      5  t        g d¢ddg«       d d d «       t        j                  t        «      5  t        dgdg«       d d d «       g d¢} g d¢}dj	                  t        j                  | «      «      }t        j                  t        t        j                  |«      ¬«      5  t        | |«       d d d «       y # 1 sw Y   Œ©xY w# 1 sw Y   Œ…xY w# 1 sw Y   y xY w)	Nr¿   rÒ   rÍ   r¼   )r&   r-   r“   é   )rÚ   é   é   é   z+x is neither increasing nor decreasing : {}r°   )	r¡   r¢   r£   r
   Úformatr2   r—   ÚreÚescape)r·   rA   Úerror_messages      rK   Útest_auc_errorsrí   Û  sÁ   € ä	�‰”zÓ	"ñ )ÜŠO˜c 3˜ZÔ(÷)ô 
�‰”zÓ	"ñ ÜˆSˆE�C�5Ô÷ò 	€AÚ€AØA×HÑHÌÏÉÐRSËÓU€MÜ	�‰”z¬¯©°=Ó)AÔ	Bñ ÜˆAˆqŒ	÷ð ÷)ð )ú÷ð ú÷ð ús#   šCÁCÂ=C+ÃCÃC(Ã+C4zy_true, labels)r   r-   r   r&   ©r   r-   r&   )ÚaÚbrï   Úc)rï   rð   rñ   c           	      óv  — 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 «       y # 1 sw Y   y xY w)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°   )r2   r—   r   r   rÃ   r¡   r¢   ÚNotImplementedError)rJ   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                    rK   Ú#test_multiclass_ovo_roc_auc_toydatar  ì  si  € ô �x‰xÚ	š/Ò+<ºmÐLó€Hô šYÒ(8Ó9€HäšYªÓ8€HØ  8Ñ+¨qÑ0Ðô šYªÓ7€HÜšYÒ(8Ó9€HØ  8Ñ+¨qÑ0Ðô ˜a ˜V c¨3 ZÓ0€HÜ˜a ˜V c¨3 ZÓ0€HØ  8Ñ+¨qÑ0Ðð -Ð/?Ñ?ÐBRÑRÐVWÑWÐÜÜ�f˜h¨vÀ5ÔIØôð $Ð%5Ð7GÐH€KÚ#€JÜŸ™ K¸ÔDÐÜÜØ�H V¸È
ô	
ð 	ô	ð M€MÜ	�‰Ô*°-Ô	@ñ XÜ�f˜h¨vÀ5ÐRVÕW÷X÷ Xñ Xús   ÄD/Ä/D8)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¬«      |«       y )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  ©r2   r—   r   r   )rJ   rþ   r  r  r  Ú	ovo_scores         rK   Ú*test_multiclass_ovo_roc_auc_toydata_binaryr  '  s„   € ô �x‰xÚ	š/Ò+<ºoÐNó€Hô š\Ò+@ÓA€Häš\Ò+@ÓA€HØ˜HÑ$¨Ñ)€IäÜ�f˜h¨vÀ5ÔIÈ9ôô
 ÜØ�H V¸È
ô	
ð 	õ	rM   )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¬«      |«       y )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  )rJ   rþ   r  Úout_0Úout_1Úout_2Úresult_unweightedÚresult_weighteds           rK   Ú#test_multiclass_ovr_roc_auc_toydatar#  K  së   € ô �x‰xÚ	š/ª?ºOÐLó€Hô
 š,¨²°A°©Ó7€EÜš,¨²°A°©Ó7€EÜš,¨²°A°©Ó7€EÜÜ�f˜h°EÀ&ÐRVÔWØ	��uÐôð  ™¨Ñ.°#Ñ5ÐÜÜ�f˜h°EÀ&ÔIØôð ˜d‘l U¨T¡\Ñ1°E¸C±KÑ?€OÜÜØ�H¨%¸È
ô	
ð 	õ	rM   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 ‚y )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   )r2   r—   r   r   r©   r¡   Úapprox)rÿ   rÃ   rJ   Ú	y_perfectÚy_imperfectÚy_chances         rK   Ú0test_perfect_imperfect_chance_multiclass_roc_aucr+  v  s¹   € ô �X‰X’lÓ#€Fò 	ÚÚÚ ð	€Iô Ü�f˜i°[È'ÔRØôò 	ÚÚÚð	€Kô 	�f˜k°{ÈGÔTØ
ò	ðð	ð
 ”b—g‘g˜f“oÑ%€HÜØ� k¸7ôä	�‰�sÓ	òð ñ rM   c           
      óÜ  — | }t         j                  j                  g d¢d|¬«      }t        j                  |D �cg c]2  }t         j
                  j                  d||¬«      j                  «       ‘Œ4 c}«      }t        |g d¢¬«      }t        |j                  «       |j                  «       «      \  }}}t        ||«      }	t        ||dd	¬
«      }
|	t        j                  |
«      k(  sJ ‚y c c}w )N)ç       @r\   r   éè  )r–   r,   r-   )ÚnrD   r,   rî   )Úclassesr  rÆ   r&  )r   Ú	dirichletÚrvsr2   ÚasarrayÚmultinomialrq   r   r   Úravelr
   r   r¡   r'  )Úglobal_random_seedÚseedrI   Úy_pred_irJ   Úy_onehotru   rv   rw   Úroc_auc_by_handÚroc_auc_autos              rK   Útest_micro_averaged_ovr_roc_aucr<     sÏ   € Ø€Dô
 �_‰_× Ñ ¢°tÈ$Ð ÓO€FÜ�Z‰Zð #ö	
àô ×Ñ×!Ñ! A¨ÀÐ!ÓE×LÑLÕNò	
ó€Fô ˜fªiÔ8€HÜ˜HŸN™NÓ,¨f¯l©l«nÓ=�K€CˆˆaÜ˜#˜s“m€OÜ  ¨¸UÈGÔT€LØœfŸm™m¨LÓ9Ò9Ð9Ñ9ùò	
s   º7C)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 «       y # 1 sw Y   y xY w)Nró   rô   rõ   rø   r°   rý   )r2   r—   r¡   r¢   r£   r   )ÚmsgrJ   rþ   rÿ   r  s        rK   Ú*test_roc_auc_score_multiclass_labels_errorrA  ´  sW   € ôR �x‰xÚ	š/Ò+<ºmÐLó€Hô 
�‰”z¨Ô	-ñ PÜ�f˜h¨vÀ;ÕO÷P÷ Pñ Pús   ½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ÿ   rt   z'multi_class must be in \('ovo', 'ovr'\)c                 óö   — t        d«      }|j                  dd«      }t        |«      }|j                  ddd¬«      }t	        j
                  t        | ¬«      5  t        ||fi |¤Ž d d d «       y # 1 sw Y   y xY w)Né”  é   r“   r   r•   r°   )r$   Úrandr    r˜   r¡   r¢   r£   r   )r@  ÚkwargsrE   rH   Úy_probrJ   s         rK   Ú#test_roc_auc_score_multiclass_errorrH    sn   € ôN ˜SÓ
!€CØ�h‰h�r˜1‹o€GÜ�WÓ€FØ�[‰[˜˜A Bˆ[Ó'€FÜ	�‰”z¨Ô	-ñ 0Ü�f˜fÑ/¨Ò/÷0÷ 0ñ 0ús   ÁA/Á/A8c                  ó4  — t        d«      } | j                  d«      }t        j                  dd¬«      }d}t	        j
                  t        |¬«      5  t        ||«       d d d «       t        j                  dd¬«      }t	        j
                  t        |¬«      5  t        ||«       d d d «       t        j                  ddd¬«      }t	        j
                  t        |¬«      5  t        ||«       d d d «       y # 1 sw Y   Œ™xY w# 1 sw Y   Œ^xY w# 1 sw Y   y xY w)NrC  é
   r5   ©ÚdtyperÀ   r°   rO   )
r$   rE  r2   rª   r¡   r³   r   r   r©   r´   )rE   rI   rJ   Úwarn_messages       rK   Útest_auc_score_non_binary_classrN  4  sè   € ô ˜SÓ
!€CØ�X‰X�b‹\€Fä�X‰X�b Ô&€Fð	5ð ô 
�‰Ô,°LÔ	Añ &Ü�f˜fÔ%÷&ä�W‰W�R˜uÔ%€FÜ	�‰Ô,°LÔ	Añ &Ü�f˜fÔ%÷&ä�W‰W�R˜ 5Ô)€FÜ	�‰Ô,°LÔ	Añ &Ü�f˜fÔ%÷&ð &÷&ð &ú÷&ð &ú÷&ð &ús$   ÁC6ÂDÃ DÃ6C?ÄDÄDÚ
curve_funcc                 óÚ   — t        d«      }|j                  ddd¬«      }|j                  d«      }d}t        j                  t
        |¬«      5   | ||«       d d d «       y # 1 sw Y   y xY w)NrC  r   r“   rJ  r•   z"multiclass format is not supportedr°   )r$   r˜   rE  r¡   r¢   r£   )rO  rE   rJ   rI   r@  s        rK   Ú&test_binary_clf_curve_multiclass_errorrQ  I  s_   € ä
˜SÓ
!€CØ�[‰[˜˜A Bˆ[Ó'€FØ�X‰X�b‹\€FØ
.€CÜ	�‰”z¨Ô	-ñ #Ù�6˜6Ô"÷#÷ #ñ #ús   Á
A!Á!A*c                 óô  — d}t        j                  t        |¬«      5   | t        j                  ddgd¬«      ddg«       d d d «       t        j                  t        |¬«      5   | t        j                  ddgt
        ¬«      ddg«       d d d «       g d	¢} | g d
¢|«      } | g d¢|«      }t        ||«      D ]%  \  }}t        j                  j                  ||«       Œ' y # 1 sw Y   Œ¢xY w# 1 sw Y   ŒdxY w)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<U1rK  r¼   r\   )r¼   r\   rÍ   gáz®GáÚ?)r   r-   r-   r   )r¼   r\   r\   r¼   )	r¡   r¢   r£   r2   r—   ÚobjectÚzipÚtestingr   )rO  r@  rI   Ú	int_curveÚfloat_curveÚint_curve_partÚfloat_curve_parts          rK   Ú(test_binary_clf_curve_implicit_pos_labelrZ  S  së   € ð
	ð ô 
�‰”z¨Ô	-ñ BÙ”2—8‘8˜S #˜J¨eÔ4°s¸C°jÔA÷Bô 
�‰”z¨Ô	-ñ CÙ”2—8‘8˜S #˜J¬fÔ5¸¸S°zÔB÷Cò
 #€FÙš<¨Ó0€IÙÒ1°6Ó:€KÜ,/°	¸;Ó,Gò EÑ(ˆÐ(Ü
�
‰
×"Ñ" >Ð3CÕDñE÷Bð Bú÷Cð Cús   ž#C"Á$'C.Ã"C+Ã.C7z.ignore:Support for labels represented as bytesÚlabels_typerg   r—   c                 óš   — t        ddg|«      }d}t        j                  t        |¬«      5   | |ddg«       d d d «       y # 1 sw Y   y xY w)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£   )rO  r[  rþ   r@  s       rK   Ú.test_binary_clf_curve_implicit_bytes_pos_labelr_  m  sQ   € ô    t ¨kÓ:€Fð	0ð ô
 
�‰”z¨Ô	-ñ 'Ù�6˜C ˜:Ô&÷'÷ 'ñ 'ús   ¬AÁA
c                 óš   — g d¢}g d¢}g d¢} | |||¬«      } | |d d |d d |d d ¬«      }t        ||«      D ]  \  }}t        ||«       Œ y )Nr×   )rÒ   rÍ   rØ   rÙ   r   )r-   r-   r-   r   r   rÛ   rO   )rT  r   )rO  rJ   rH   rÜ   Úresult_1Úresult_2Úarr_1Úarr_2s           rK   Ú(test_binary_clf_curve_zero_sample_weightre  }  sf   € â€FÚ'€GÚ%€Má˜& '¸ÔG€HÙ˜&  "˜+ w¨s° |À=ÐQTÐRTÐCUÔV€Hä˜H hÓ/ò &‰ˆˆuÜ˜˜uÕ%ñ&rM   c                 ó”  — t        d¬«      \  }}}t        ||| «       t        |dd  |dd  | ¬«      \  }}}|d   dk(  sJ ‚|d   |dd  j                  «       k(  sJ ‚d|t	        j
                  |dk(  «      <   |j                  «       }t        ||| «       t        ||«       g d¢}g d	¢}	t        ||	| ¬«      \  }}}| r+t        |g d
¢«       t        |g d¢«       t        |g d¢«       n*t        |g d¢«       t        |g d¢«       t        |g d	¢«       |j                  |j                  k(  sJ ‚|j                  |j                  dz   k(  sJ ‚y )NTrˆ   r-   r‰   r   r\   rO   ©r-   r   r   r-   )r-   r&   r“   rå   )r   çÚÁQUUÕ?r\   r\   )r\   r   r   r¼   )r-   r&   rå   )r   rh  r   r\   r\   )r\   r   r   r   r¼   )
rL   Ú_test_precision_recall_curver   Úmeanr2   ÚwhereÚcopyr   r   r–   )
r†   rJ   rw   rH   rD   Úrr�   Úy_true_copyrþ   Úpredict_probass
             rK   Útest_precision_recall_curverp  Š  s<  € ä(°Ô5Ñ€FˆAˆwÜ  ¨°$Ô7ô % V¨A¨B Z°¸¸°ÐPTÔU�G€A€qˆ!ØˆQ‰4�3Š;Ðˆ;ØˆQ‰4�6˜!˜"�:—?‘?Ó$Ò$Ð$Ð$ð %'€FŒ2�8‰8�F˜a‘KÓ Ñ!Ø—+‘+“-€KÜ  ¨°$Ô7Ü�{ FÔ+â€FÚ!€NÜ$ V¨^ÈtÔT�G€A€qˆ!ÙÜ˜Ò6Ô7Ü˜Ò/Ô0Ü˜š9Õ%ä˜Ò;Ô<Ü˜Ò4Ô5Ü˜š<Ô(Ø�6‰6�Q—V‘VÒÐÐØ�6‰6�Q—V‘V˜a‘ZÒÐÑrM   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 ‚y )Nr‰   g°rh‘í|ë?r“   r&   r‹   r-   )	r   rm   r   r   r   re   r–   r2   Ú
zeros_like)rJ   rH   r†   rD   rm  rŽ   Úprecision_recall_aucs          rK   ri  ri  ª  sç   € ä-¨f°gÐQUÔVÑ€A€qˆ*Ü2°6¸7ÓCÐÜÐ2°E¸1Ô=ÜØÔ5°f¸gÓFôô Ü˜6 7Ó+Ð-AÈ1õð �6‰6�Q—V‘VÒÐÐØ�6‰6�Z—_‘_ qÑ(Ò(Ð(Ð(ä-Ø”—‘˜gÓ&¸$ôÑ€A€qˆ*ð �6‰6�Q—V‘VÒÐÐØ�6‰6�Z—_‘_ qÑ(Ò(Ð(Ñ(rM   c           	      óh  — 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 «       t        j                  t        d¬«      5  t        ||«      }d d d «       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 «       t        j                  t        d¬«      5  t        t        ||d¬«      d«       d 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 «       t        j                  t        d¬«      5  t        t        ||d¬«      d«       d 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«       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 «       t        t        ||d¬«      d«       t        j                  t        d¬«      5  t        t        ||d¬«      d«       d d d «       t        j                  t        d¬«      5  t        t        ||d¬«      d«       d 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 d d «       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 «       d d d «       y # 1 sw Y   �ŒÈxY w# 1 sw Y   �Œ¥xY w# 1 sw Y   �ŒÌxY w# 1 sw Y   �Œ�xY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒÙxY w# 1 sw Y   �Œ®xY w# 1 sw Y   �ŒgxY w# 1 sw Y   �Œ8xY w# 1 sw Y   �ŒxY w# 1 sw Y   Œ”xY w# 1 sw Y   y xY w)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)r2   Úerrstater   r   r   r   r¡   r³   ÚUserWarningr   r—   )r†   rJ   rH   rD   rm  rw   Úauc_prcs          rK   Ú#test_precision_recall_curve_toydatar{  À  sÃ  € ä	�‰˜Ô	!ñ V
à�Q�ˆØ�a�&ˆÜ(¨°ÈDÔQ‰ˆˆ1ˆaÜ)¨&°'Ó:ˆÜ! !¢[Ô1Ü! !¢YÔ/Ü˜G SÔ)à�Q�ˆØ�a�&ˆÜ(¨°ÈDÔQ‰ˆˆ1ˆaÜ)¨&°'Ó:ˆÜ! !¢_Ô5Ü! !¢_Ô5ô 	˜G SÔ)à�Q�ˆØ�a�&ˆÜ(¨°ÈDÔQ‰ˆˆ1ˆaÜ)¨&°'Ó:ˆÜ! ! c¨1 XÔ.Ü! ! c¨1 XÔ.Ü˜G SÔ)à�Q�ˆØ�a�&ˆÜ(¨°ÈDÔQ‰ˆˆ1ˆaÜ)¨&°'Ó:ˆÜ! !¢[Ô1Ü! !¢YÔ/Ü˜G SÔ)à�Q�ˆØ˜�*ˆÜ(¨°ÈDÔQ‰ˆˆ1ˆaÜ)¨&°'Ó:ˆÜ! ! c¨1 XÔ.Ü! ! a¨ XÔ.Ü˜G SÔ)à�Q�ˆØ˜�,ˆÜ�\‰\œ+Ð-PÔQñ 	VÜ,¨V°WÐPTÔU‰GˆAˆq�!÷	Vä�\‰\œ+Ð-PÔQñ 	?Ü-¨f°gÓ>ˆG÷	?ä˜š9Ô%Ü˜š9Ô%Ü˜ Ô#à�Q�ˆØ˜�,ˆÜ(¨°ÈDÔQ‰ˆˆ1ˆaÜÔ3°F¸GÓDÀcÔJÜ! !¢_Ô5Ü! !¢]Ô3ô —‘˜A˜q˜6 A q 6Ð*Ó+ˆÜ—(‘(˜Q ˜F Q¨ FÐ+Ó,ˆÜ�\‰\œ+Ð-PÔQñ 	ÜÜ'¨°ÀÔIÈ3ô÷	ô �\‰\œ+Ð-PÔQñ 	ÜÜ'¨°ÀÔLÈcô÷	ô 	Ü# F¨G¸YÔGÈô	
ô 	Ô/°¸ÈÔQÐSVÔWä—‘˜A˜q˜6 A q 6Ð*Ó+ˆÜ—(‘(˜Q ˜F Q¨ FÐ+Ó,ˆÜ�\‰\œ+Ð-PÔQñ 	ÜÜ'¨°ÀÔIÈ3ô÷	ô �\‰\œ+Ð-PÔQñ 	ÜÜ'¨°ÀÔLÈcô÷	ô 	Ü# F¨G¸YÔGÈô	
ô 	Ô/°¸ÈÔQÐSVÔWä—‘˜A˜q˜6 A q 6Ð*Ó+ˆÜ—(‘(˜Q ˜F Q¨ FÐ+Ó,ˆÜÜ# F¨G¸WÔEÀsô	
ô 	Ü# F¨G¸ZÔHÈ#ô	
ô 	Ü# F¨G¸YÔGÈô	
ô 	Ü# F¨G¸WÔEÀsô	
ô —‘˜A˜q˜6 A q 6Ð*Ó+ˆÜ—(‘(˜Q ˜F Q¨ FÐ+Ó,ˆÜ�\‰\œ+Ð-PÔQñ 	ÜÜ'¨°ÀÔIÈ3ô÷	ô 	Ü# F¨G¸ZÔHÈ#ô	
ô �\‰\œ+Ð-PÔQñ 	ÜÜ'¨°ÀÔKÈSô÷	ô �\‰\œ+Ð-PÔQñ 	ÜÜ'¨°ÀÔIÈ3ô÷	ô
 —‘˜A˜q˜6 A q 6Ð*Ó+ˆÜ—(‘(˜Q ˜F Q¨ FÐ+Ó,ˆÜÔ/°¸ÈÔQÐSVÔWÜÜ# F¨G¸ZÔHÈ#ô	
ô 	Ü# F¨G¸YÔGÈô	
ô 	Ô/°¸ÈÔQÐSVÔWä—‘˜A˜q˜6 A q 6Ð*Ó+ˆÜ—(‘(˜S #˜J¨¨c¨
Ð3Ó4ˆÜÜ# F¨G¸WÔEÀsô	
ô 	Ü# F¨G¸ZÔHÈ#ô	
ô 	Ü# F¨G¸YÔGÈô	
ô 	Ü# F¨G¸WÔEÀsô	
÷iV
ôp 
�‰˜Ô	"ñ ä—‘˜A˜q˜6 A q 6Ð*Ó+ˆÜ—(‘(˜Q ˜F Q¨ FÐ+Ó,ˆÜ�\‰\œ+Ð-PÔQñ 	ÜÜ'¨°ÀÔLÈaô÷	÷	ð ÷S	Vñ 	Vú÷	?ñ 	?ú÷ 	ñ 	ú÷	ñ 	ú÷	ñ 	ú÷	ñ 	ú÷4	ñ 	ú÷	ñ 	ú÷	ñ 	ú÷sV
ñ V
ú÷x	ð 	ú÷	ð ús  —F*`Ç^Ç#`Ç7^'ÈC`Ë^4Ë*#`Ì_Ì&B	`Î/_Ï#`Ï+_ÐD`Ô#_(Ô<;`Õ7_5Ö#`Ö3`×D4`ÜA`(Ý0`Þ	`(Þ^$	Þ`Þ'^1	Þ,`Þ4^>	Þ9`ß_	ß`ß_	ß`ß_%	ß `ß(_2	ß-`ß5_?	ß:`à`	à`à`à`%	à!`(à(`1c                  óD  — 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
¢«       y)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   )rJ   rH   ri   rj   rŽ   s        rK   Ú-test_precision_recall_curve_drop_intermediater  d  sÆ   € â€FÚ,€GÜ$:Ø�¨4ô%Ñ!€Iˆv�zô �J¢Ô0ò 5€FÚO€GÜ$:Ø�¨4ô%Ñ!€Iˆv�zô �JÒ >Ô?ò €FÚ"€GÜ$:Ø�¨4ô%Ñ!€Iˆv�zô �J  c 
Ô+ò €FÚ"€GÜ$:Ø�¨4ô%Ñ!€Iˆv�zô �JÒ 4Õ5rM   c                  ó–   — t        j                  dt        ¬«      } d| d d d…<   t        j                  d«      }t	        | |«      dk(  sJ ‚y )Nr”   rK  r-   rå   r½   )r2   rª   r5   r©   r   ©rJ   rH   s     rK   Ú&test_average_precision_constant_valuesr‚  †  sE   € ô
 �X‰X�c¤Ô%€FØ€F‰3ˆQˆ3�Kä�g‰g�c‹l€Gô # 6¨7Ó3°tÒ;Ð;Ñ;rM   c                  óà   — t        j                  ddg«      } t        j                  ddg«      }d}t        j                  t        |¬«      5  t        | |d¬«       d d d «       y # 1 sw Y   y xY w)Nr   r-   z>pos_label=2 is not a valid label. It should be one of \[0, 1\]r°   r&   ©rU   ©r2   r—   r¡   r¢   r£   r   ©rJ   rI   Úerr_msgs      rK   Ú4test_average_precision_score_binary_pos_label_errorsrˆ  ”  sZ   € ä�X‰X�q˜!�fÓ€FÜ�X‰X�q˜!�fÓ€FØO€GÜ	�‰”z¨Ô	1ñ =Ü ¨¸!Õ<÷=÷ =ñ =ús   ÁA$Á$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 «       y # 1 sw Y   y xY w)
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      rK   Ú8test_average_precision_score_multilabel_pos_label_errorsrŠ  �  s�   € ô �X‰X˜˜1�v  1˜v¨¨1 v°°1¨vÐ6Ó7€FÜ�X‰X˜˜S�z C¨ :°°S¨z¸CÀ¸:ÐFÓG€Fð	6ð ô 
�‰”z¨Ô	1ñ =Ü ¨¸!Õ<÷=÷ =ñ =ús   Á A8Á8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 «       y # 1 sw Y   y xY w)
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      rK   Ú8test_average_precision_score_multiclass_pos_label_errorsrŒ  ª  sq   € ä�X‰XÒ(Ó)€FÜ�X‰XâÚÚÚÚÚð	
ó	€Fð	6ð ô 
�‰”z¨Ô	1ñ =Ü ¨¸!Õ<÷=÷ =ñ =ús   ÁA4Á4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 ‚y )NTrˆ   r”   g�íµ ÷Æ°>rJ  )rL   r   r   )rJ   rw   rH   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              rK   Útest_score_scale_invariancer•  ¿  sé   € ô )°Ô5Ñ€FˆAˆwä˜F GÓ,€GÜ% f¨c°G©mÓ<ÐÜ'¨°°w±Ó?ÐÜ# F¨G°b©LÓ9€OØÐ'Ò'Ð'Ð'ØÐ)Ò)Ð)Ð)Ø�oÒ%Ð%Ð%ä$ V¨WÓ5€FÜ.¨v°s¸W±}ÓEÐÜ0°¸À¹ÓHÐÜ,¨V°W¸r±\ÓB€NØÐ%Ò%Ð%Ð%ØÐ'Ò'Ð'Ð'Ø�^Ò#Ð#Ñ#rM   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                 óT   — t        | |«      \  }}}t        ||«       t        ||«       y ©N©r   r   ©rJ   rH   Úexpected_fprÚexpected_fnrru   Úfnrrw   s          rK   Útest_det_curve_toydatarž  Ø  s*   € ô6 ˜F GÓ,�K€Cˆˆaä�C˜Ô&Ü�C˜Õ&rM   ©r½   r   r   c                 óT   — t        | |«      \  }}}t        ||«       t        ||«       y r˜  r™  rš  s          rK   Útest_det_curve_tie_handlingr¡  ù  s*   € ô ˜F GÓ,�K€Cˆˆaä�C˜Ô&Ü�C˜Õ&rM   c                  óT   — t        t        g d¢g d¢«      t        g d¢g d¢«      «       y )Nrº   râ   rË   )r   r   r   r   r-   r-   )r   r   © rM   rK   Útest_det_curve_sanity_checkr¤    s    € äÜ’)š[Ó)ÜÒ$Ò&<Ó=õrM   rH   )r   r½   r   r¾   r-   c                 ó    — t        g d¢t        j                  d| «      ¬«      \  }}}t        |dg«       t        |dg«       t        || g«       y )N)r   r-   r   r-   r   r-   ræ   r�  r-   r   )r   r2   r´   r   )rH   ru   r�  rk   s       rK   Útest_det_curve_constant_scoresr¦    sI   € ä#Ú!¬2¯7©7°1°gÓ+>ôÑ€Cˆˆiô �C˜!˜ÔÜ�C˜!˜ÔÜ�I ˜yÕ)rM   rJ   )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                 óZ   — t        | | ¬«      \  }}}t        |dg«       t        |dg«       y )Nr�  r   r™  )rJ   ru   r�  rw   s       rK   Útest_det_curve_perfect_scoresr¨     s.   € ô  6°6Ô:�K€Cˆˆaä�C˜!˜ÔÜ�C˜!˜ÕrM   zy_true, y_pred, err_msgzinconsistent numbers of samples©r   r   r   z#Only one class is 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 «       y # 1 sw Y   y xY w)Nr°   )r¡   r¢   r£   r   r†  s      rK   Útest_det_curve_bad_inputr®  1  s1   € ô  
�‰”z¨Ô	1ñ "Ü�&˜&Ô!÷"÷ "ñ "úó   œ2²;c                  óZ  — 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…   «       y )Nr«  r“   r¬  rç   )
rÒ   rÙ   rÎ   rÍ   rØ   rÙ   r   rÎ   rÏ   r¦   r-   r„  r   rÙ   rÍ   rO   )r2   r—   r   r¡   r'  r   )	rJ   Ú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	            rK   Útest_det_curve_pos_labelr¹  E  sÕ   € ØˆZ˜!‰^˜|˜n¨qÑ0Ñ0€FÜŸH™HÒ%WÓXÐØÐ1Ñ1Ðä4=ØØØô5Ñ1€N�N Mô
 AJØØØôAÑ=ÐÐ*Ð,=ð ˜ÑœvŸ}™}¨SÓ1Ò1Ð1Ð1Ø˜QÑ¤6§=¡=°Ó#5Ò5Ð5Ð5ô �NÐ$6±t¸°tÑ$<Ô=Ü�NÐ$6±t¸°tÑ$<Õ=rM   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«       y )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    rK   Úcheck_lrap_toyrÀ  _  sp  € ä™
 Q¨ F 8¨t°T¨l¨^Ó<¸aÔ@Ü™
 Q¨ F 8¨t°T¨l¨^Ó<¸eÔDÜ™
 Q¨ F 8¨t°T¨l¨^Ó<¸aÔ@ä™
¢I ;Ò1BÐ0CÓDÀaÔHÜ™
¢I ;Ò1BÐ0CÓDÀeÔLÜ™
¢I ;Ò1BÐ0CÓDÀaÔHÜ™
¢I ;Ò1BÐ0CÓDÀeÔLÜÙ’I�;Ò!2Ð 3Ó4Ð6Iôô Ù’I�;Ò!2Ð 3Ó4Ð6Iôô ™
¢I ;Ò1BÐ0CÓDÀeÔLÜ™
¢I ;Ò1BÐ0CÓDÀeÔLÜÙ’I�;Ò!2Ð 3Ó4Ð6Iôô ™
¢I ;Ò1BÐ0CÓDÀaÔHÜ™
¢I ;Ò1BÐ0CÓDÀoÔVÜ™
¢I ;Ò1BÐ0CÓDÀaÔHÜ™
¢I ;Ò1BÐ0CÓDÀaÔHä™
¢I ;Ò1BÐ0CÓDÀeÔLÜ™
¢I ;Ò1BÐ0CÓDÀaÔHÜ™
¢I ;Ò1BÐ0CÓDÀoÔVÜ™
¢I ;Ò1BÐ0CÓDÀeÔLÜÙ’I�;Ò!2Ð 3Ó4Ð6Iôô ™
¢I ;Ò1BÐ0CÓDÀaÔHÜ™
¢I ;Ò1BÐ0CÓDÀaÔHô ™
 Q¨ F 8¨s°C¨j¨\Ó:¸CÔ@Ü™
 Q¨ F 8¨s°C¨j¨\Ó:¸CÔ@Ü™
 Q¨ F 8¨s°C¨j¨\Ó:¸AÔ>ä™
¢I ;Ò1AÐ0BÓCÀSÔIÜ™
¢I ;Ò1AÐ0BÓCÀSÔIÜ™
¢I ;Ò1AÐ0BÓCÀQÔGÜ™
¢I ;Ò1AÐ0BÓCÀUÔKÜÙ’I�;Ò!1Ð 2Ó3Ð5Hôô Ù’I�;Ò!1Ð 2Ó3Ð5Hôô ™
¢I ;Ò1AÐ0BÓCÀQÔGä™
¢I ;²Ð0AÓBÀEÔJä™
¢L >Ò4HÐ3IÓJÈEÕRrM   c           	      ó   — t        d«      }t        dd«      D ]‘  }|j                  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(  rŒ‘J ‚ t         | dgdgdgdggdgdgdgdgg«      d«       y )Nr   r&   rÚ   r-   r•   r\   r   )r$   r^   Úuniformr2   rr  rª   r©   r   )r¿  r,   Ún_labelsrH   Úy_score_tiesrJ   s         rK   Ú!check_zero_or_all_relevant_labelsrÅ  š  sú   € Ü% aÓ(€Lä˜!˜Q“Kò 7ˆØ×&Ñ&¨Q°¨MÐ&Ó:ˆÜ—}‘} WÓ-ˆô —‘˜1˜h˜-Ó(ˆÙ˜& 'Ó*¨cÒ1Ð1Ð1Ù˜& ,Ó/°3Ò6Ð6Ð6ô —‘˜!˜X˜Ó'ˆÙ˜& 'Ó*¨cÒ1Ð1Ð1Ù˜& ,Ó/°3Ó6Ð6Ð6ð7ô Ù�Q�C˜!˜˜q˜c A 3Ð'¨3¨%°#°¸¸À¸uÐ)EÓFÈõrM   c                 ó�  — t        j                  t        «      5   | g d¢g d¢«       d d d «       t        j                  t        «      5   | g d¢g d¢g d¢g d¢g«       d d d «       t        j                  t        «      5   | g d¢g d¢g d¢g d¢g«       d d d «       t        j                  t        «      5   | ddgddggddg«       d d d «       t        j                  t        «      5   | ddgddggddgg«       d d d «       t        j                  t        «      5   | ddgddggdgdgg«       d d d «       t        j                  t        «      5   | ddggddgddgg«       d d d «       t        j                  t        «      5   | dgdggddgddgg«       d d d «       t        j                  t        «      5   | ddgddggdgdgg«       d d d «       y # 1 sw Y   �Œ±xY w# 1 sw Y   �ŒˆxY w# 1 sw Y   �Œ_xY w# 1 sw Y   �Œ9xY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒéxY w# 1 sw Y   ŒÁxY w# 1 sw Y   Œ˜xY w# 1 sw Y   y xY w)	Nrú   )r½   rØ   rÍ   rî   )r½   r¾   r¼   )rÏ   rØ   r¼   )rÓ   rÍ   r¼   r   r-   )r¡   r¢   r£   r¾  s    rK   Úcheck_lrap_error_raisedrÇ  ±  s  € ä	�‰”zÓ	"ñ 0Ù’9Ò.Ô/÷0ä	�‰”zÓ	"ñ UÙ’9Ò0²/Â?ÐSÔT÷Uä	�‰”zÓ	"ñ 
ÙÚÒ/²Â/ÐRô	
÷
ô 
�‰”zÓ	"ñ -Ù�Q˜�F˜Q ˜FÐ# a¨ VÔ,÷-ä	�‰”zÓ	"ñ /Ù�Q˜�F˜Q ˜FÐ# q¨! f XÔ.÷/ä	�‰”zÓ	"ñ 1Ù�Q˜�F˜Q ˜FÐ# q c¨A¨3 ZÔ0÷1ä	�‰”zÓ	"ñ /Ù�Q˜�F�8˜q !˜f q¨! fÐ-Ô.÷/ä	�‰”zÓ	"ñ 1Ù�Q�C˜!˜�:  A ¨¨A¨Ð/Ô0÷1ä	�‰”zÓ	"ñ 1Ù�Q˜�F˜Q ˜FÐ# q c¨A¨3 ZÔ0÷1ð 1÷)0ñ 0ú÷Uñ Uú÷
ñ 
ú÷-ñ -ú÷/ñ /ú÷1ð 1ú÷/ð /ú÷1ð 1ú÷1ð 1úsk   šGÁ	G$Á?G1Â5G>Ã(HÄHÅH$ÆH0Æ:H<ÇG!Ç$G.Ç1G;Ç>HÈHÈH!È$H-È0H9È<Ic           	      ó  — t        dd«      D ]v  }t        j                  d|f«      }t        d|«      D ]N  }t        ||z
  «      D ];  }t        j                  d|f«      }d|d|||z   …f<   t	         | ||«      ||z  «       Œ= ŒP Œx y )Nr&   rJ  r-   r   )r^   r2   r©   rª   r   )r¿  rÃ  rH   Ú
n_relevantrV   rJ   s         rK   Úcheck_lrap_only_tiesrÊ  Ë  s£   € ô ˜!˜R“Lò 	XˆÜ—'‘'˜1˜h˜-Ó(ˆô    8Ó,ò 	XˆJä˜X¨
Ñ2Ó3ò X�ÜŸ™ 1 h -Ó0�Ø45��q˜#  jÑ 0Ð0Ð0Ñ1Ü#¡J¨v°wÓ$?ÀÈhÑAVÕWñXñ	Xñ		XrM   c                 óè  ‡‡— t        dd«      D ]á  }|t        j                  |«      j                  d|f«      dz   z
  }t        j                  d|f«      }d|d<   d|d<   t         | ||«      d|z  dz   dz  «       t        d|«      D ]g  Št        |‰z
  «      D ]T  Št        j                  d|f«      }d|d‰‰‰z   …f<   t         | ||«      t        ˆˆfd„t        ‰«      D «       «      «       ŒV Œi Œã y )Nr&   rJ  r-   )r   r   )r   rO   r   c              3   ó@   •K  — | ]  }|d z   ‰|z   d z   ‰z  z  –— Œ y­w)r-   Nr£  )Ú.0rm  rÉ  rV   s     €€rK   ú	<genexpr>z>check_lrap_without_tie_and_increasing_score.<locals>.<genexpr>î  s/   øè ø€ ò àð ˜Q™ C¨!¡G¨a¡K°:Ñ#=Õ>ñùs   ƒ)r^   r2   r3   rQ   rª   r   rR   )r¿  rÃ  rH   rJ   rÉ  rV   s       @@rK   Ú+check_lrap_without_tie_and_increasing_scorerÏ  Ú  s  ù€ ô ˜!˜R“Lò ˆØœbŸi™i¨Ó1×9Ñ9¸1¸h¸-ÓHÈ1ÑLÑMˆô —‘˜1˜h˜-Ó(ˆØˆˆt‰Øˆˆu‰Ü™J v¨wÓ7¸!¸h¹,ÈÑ:JÈaÑ9OÔPô    8Ó,ò 	ˆJä˜X¨
Ñ2Ó3ò 	�ÜŸ™ 1 h -Ó0�Ø45��q˜#  jÑ 0Ð0Ð0Ñ1Ü#Ù˜v wÓ/Üô ä!& zÓ!2ôó õñ	ñ	ñrM   c                 ó”  ‡‡— t        | |«       t        | «      } t        |«      }| j                  \  }}t        j                  |f«      }t        |«      D ]â  }t        j                  ||   d¬«      \  }}|j                  }||z
  Št        j                  ‰|dz   ¬«      j                  «       }	|	‰   Š| |   j                  «       d   }
|
j                  dk(  s|
j                  |k(  rd||<   Œ˜d||<   |
D ]*  Št        ˆˆfd„|
D «       «      }||xx   |‰‰   z  z  cc<   Œ, ||xx   |
j                  z  cc<   Œä |j                  «       S )z8Simple implementation of label ranking average precisionT)Úreturn_inverser-   )Ú	minlengthr   r¼   c              3   ó4   •K  — | ]  }‰|   ‰‰   k  –— Œ y ­wr˜  r£  )rÍ  rm  ÚlabelÚranks     €€rK   rÎ  z_my_lrap.<locals>.<genexpr>  s   øè ø€ Ò J¸A  a¡¨D°©KÕ!7Ñ Jùs   ƒ)r#   r"   r1   r2   Úemptyr^   rP   r–   ÚbincountÚcumsumÚnonzerorR   rj  )rJ   rH   rB   rÃ  ra   rb   Úunique_rankÚinv_rankÚn_ranksÚ	corr_rankÚrelevantÚn_ranked_aboverÔ  rÕ  s               @@rK   Ú_my_lraprà  õ  sJ  ù€ ä˜F GÔ,Ü˜Ó €FÜ˜'Ó"€GØ Ÿ,™,Ñ€IˆxÜ�H‰H�i�\Ó"€EÜ�9Óò "ˆô !#§	¡	¨'°!©*ÀTÔ JÑˆ�XØ×"Ñ"ˆØ˜Ñ!ˆô —K‘K °¸!±Ô<×CÑCÓEˆ	Ø˜‰ˆà˜!‘9×$Ñ$Ó& qÑ)ˆØ�=‰=˜AÒ §¡°(Ò!:ØˆE�!‰HØàˆˆa‰Øò 	5ˆEô !Ô JÀÔ JÓJˆNð �!‹H˜¨¨e©Ñ4Ñ4ŒHð	5ð 	ˆa‹�H—M‘MÑ!Œð5"ð8 �:‰:‹<ÐrM   rÚ   c                 ó€  — t        dd|||¬«      \  }}t        |j                  d   |j                  d   |¬«      }t        |d«      r|j	                  «       }t        ||«      }t        ||«      }t        ||«       t        |«      }|j                  ||f¬«      }t        ||«      }t        ||«      }t        ||«       y )Nr-   F)rC   Úallow_unlabeledr,   Ú	n_classesrB   r   )Ún_componentsrC   r,   Útoarrayr•   )
r   r   r1   Úhasattrrå  r   rà  r   r$   rÂ  )	r¿  rã  rB   r,   rw   rJ   rH   Ú
score_lrapÚscore_my_lraps	            rK   Ú%check_alternative_lrap_implementationré    sÆ   € ô /ØØØ!ØØô�I€A€vô $Ø—\‘\ !‘_Ø—<‘< ‘?Ø!ô€Gô ˆw˜	Ô"Ø—/‘/Ó#ˆÜ6°v¸wÓG€JÜ˜V WÓ-€MÜ˜
 MÔ2ô & lÓ3€LØ×"Ñ"¨°IÐ(>Ð"Ó?€GÜ6°v¸wÓG€JÜ˜V WÓ-€MÜ˜
 MÕ2rM   ÚcheckÚfuncc                 ó   —  | |«       y r˜  r£  )rê  rë  s     rK   Útest_label_ranking_avprí  ;  s   € ñ 
ˆ$…KrM   c                  ó"   — t        t        «       y r˜  )rÇ  r   r£  rM   rK   Útest_lrap_error_raisedrï  I  s   € ÜÔAÕBrM   rB   )r-   r&   rè   rD  rã  )r&   rÚ   rJ  r,   c                 ó(   — t        t        || |«       y r˜  )ré  r   )rB   rã  r,   s      rK   Ú$test_alternative_lrap_implementationrñ  M  s   € ô *Ü-¨y¸)À\õrM   c                  ól  — 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  «       y )Nr  rg  r}  rK  )rØ   rÙ   rÍ   rÒ   )rÒ   rÍ   rØ   rÙ   ©rÙ   rØ   rÍ   rÒ   )r   r¾   r\   )r\   r\   r¼   rÛ   )r2   r—   Úboolr   r   rR   )rJ   rH   Úsamplewise_lrapsrÜ   s       rK   Ú&test_lrap_sample_weighting_zero_labelsrö  V  sŽ   € ô �X‰X’|¢\²<Ð@ÌÔM€FÜ�h‰hÚ	Ò3Ò5IÐJó€Gô —x‘xÒ 0Ó1ÐÜ—H‘Hš_Ó-€MäÜ-Ø�G¨=ô	
ô 	�‰ˆ}Ð/Ñ/Ó0´2·6±6¸-Ó3HÑHõ	rM   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«       y )Nr   r-   r½   r¾   r&   r©  r–  rº   rú   r»   rá   r“   rù   rû   rª  r»  r¼  ©rÒ   g      $@éýÿÿÿ©r   r-   r“   r-  ©rÒ   rJ  rù  r=  g«ªªªªª@©r“   r-   r“   ©r   r   r£  rM   rK   Útest_coverage_errorrþ  k  s  € äœ¨¨A¨ x°4¸°,°Ó@À!ÔDÜœ¨¨A¨ x°4¸°,°Ó@À!ÔDÜœ¨¨A¨ x°4¸°,°Ó@À!ÔDÜœ¨¨A¨ x°4¸°,°Ó@À!ÔDäœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLäœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLäœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLÜœª	 {Ò5FÐ4GÓHÈ!ÔLô Üš	¢9Ð-²ÂÐ/KÓLØôô
 ÜÚš	¢9Ð-²ºyÊ)Ð/Tó	
ð 	ô	ô ÜÚš	¢9Ð-²ºyÊ)Ð/Tó	
ð 	õ	rM   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«       y )Nr   r   r-   r&   r©  rŸ  rº   rú   r»   rá   r“   rù   rû   rª  rý  r£  rM   rK   Útest_coverage_tie_handlingr   ¢  s.  € Üœ¨¨A¨ x°3¸°*°Ó>ÀÔBÜœ¨¨A¨ x°3¸°*°Ó>ÀÔBÜœ¨¨A¨ x°3¸°*°Ó>ÀÔBÜœ¨¨A¨ x°3¸°*°Ó>ÀÔBäœª	 {Ò5EÐ4FÓGÈÔKÜœª	 {Ò5EÐ4FÓGÈÔKÜœª	 {Ò5EÐ4FÓGÈÔKÜœª	 {Ò5EÐ4FÓGÈÔKÜœª	 {Ò5EÐ4FÓGÈÔKÜœª	 {Ò5EÐ4FÓGÈÔKÜœª	 {Ò5EÐ4FÓGÈÔKÜœª	 {Ò5EÐ4FÓGÈÕKrM   zy_true, y_scorec                 ó|   — t        j                  t        d¬«      5  t        | |«       d d d «       y # 1 sw Y   y xY w)Nz'Expected 2D array, got 1D array insteadr°   )r¡   r¢   r£   r   r�  s     rK   Útest_coverage_1d_error_messager  ²  s2   € ô 
�‰”zÐ)SÔ	Tñ (Ü�v˜wÔ'÷(÷ (ñ (úr¯  c            	      óh  — 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«       y )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£  rM   rK   Útest_label_ranking_lossr  Á  s  € ÜÔ*¨Q°¨F¨8°t¸T°l°^ÓDÀaÔHÜÔ*¨Q°¨F¨8°t¸T°l°^ÓDÀaÔHäÔ*ªI¨;Ò9JÐ8KÓLÈaÔPÜÔ*ªI¨;Ò9JÐ8KÓLÈeÔTÜÔ*ªI¨;Ò9JÐ8KÓLÈaÔPÜÔ*ªI¨;Ò9JÐ8KÓLÈeÔTÜÔ*ªI¨;Ò9JÐ8KÓLÈeÔTÜÔ*ªI¨;Ò9JÐ8KÓLÈeÔTô Ô*¨Q°¨F¨8°t¸T°l°^ÓDÀaÔHÜÔ*¨Q°¨F¨8°t¸T°l°^ÓDÀaÔHÜÔ*¨Q°¨F¨8°s¸C°j°\ÓBÀAÔFÜÔ*¨Q°¨F¨8°s¸C°j°\ÓBÀAÔFäÔ*ªI¨;Ò9JÐ8KÓLÈaÔPÜÔ*ªI¨;Ò9JÐ8KÓLÈaÔPÜÔ*ªI¨;Ò9IÐ8JÓKÈQÔOÜÔ*ªI¨;Ò9IÐ8JÓKÈQÔOô ÜšI¢yÐ1²OÂYÐ3OÓPØôô
 ÜÚš	¢9Ð-²ºyÊ)Ð/Tó	
ð 	"ô	ô ÜÚš	¢9Ð-²ºyÊ)Ð/Tó	
ð 	"õ	rM   Úcsr_containerc                 óz   — t        t         | t        j                  g d¢g d¢g«      «      g d¢g d¢g«      d«       y )Nrú   rû   rû  rü  r   )r   r   r2   r—   )r  s    rK   Útest_label_ranking_loss_sparser  ì  s4   € äÜÙœ"Ÿ(™(¢IªyÐ#9Ó:Ó;ºmÊYÐ=Wó	
ð 	õ	rM   c                  ó.  — t        j                  t        «      5  t        ddgddggddg«       d d d «       t        j                  t        «      5  t        ddgddggddgg«       d d d «       t        j                  t        «      5  t        ddgddggdgdgg«       d d d «       t        j                  t        «      5  t        ddggddgddgg«       d d d «       t        j                  t        «      5  t        dgdggddgddgg«       d d d «       t        j                  t        «      5  t        ddgddggdgdgg«       d d d «       y # 1 sw Y   �Œ!xY w# 1 sw Y   ŒöxY w# 1 sw Y   ŒÊxY w# 1 sw Y   ŒŸxY w# 1 sw Y   ŒsxY w# 1 sw Y   y xY w)Nr   r-   )r¡   r¢   r£   r   r£  rM   rK   Ú$test_ranking_appropriate_input_shaper
  ö  s  € ä	�‰”zÓ	"ñ 5Ü˜Q ˜F Q¨ FÐ+¨a°¨VÔ4÷5ä	�‰”zÓ	"ñ 7Ü˜Q ˜F Q¨ FÐ+¨q°!¨f¨XÔ6÷7ä	�‰”zÓ	"ñ 9Ü˜Q ˜F Q¨ FÐ+¨q¨c°A°3¨ZÔ8÷9ä	�‰”zÓ	"ñ 7Ü˜Q ˜F˜8 q¨! f¨q°!¨fÐ%5Ô6÷7ä	�‰”zÓ	"ñ 9Ü˜Q˜C ! ˜:¨¨A¨°°A°Ð'7Ô8÷9ä	�‰”zÓ	"ñ 9Ü˜Q ˜F Q¨ FÐ+¨q¨c°A°3¨ZÔ8÷9ð 9÷5ñ 5ú÷7ð 7ú÷9ð 9ú÷7ð 7ú÷9ð 9ú÷9ð 9úsG   šEÁEÂE'Â?E3Ã6E?Ä.FÅEÅE$Å'E0Å3E<Å?FÆF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«       y )Nr-   r   r   rº   rŸ  rú   r»   rá   rù   rû   r  r£  rM   rK   Útest_ranking_loss_ties_handlingr    sÎ   € äÔ*¨Q°¨F¨8°s¸C°j°\ÓBÀAÔFÜÔ*¨Q°¨F¨8°s¸C°j°\ÓBÀAÔFÜÔ*ªI¨;Ò9IÐ8JÓKÈUÔSÜÔ*ªI¨;Ò9IÐ8JÓKÈUÔSÜÔ*ªI¨;Ò9IÐ8JÓKÈQÔOÜÔ*ªI¨;Ò9IÐ8JÓKÈQÔOÜÔ*ªI¨;Ò9IÐ8JÓKÈQÔOÜÔ*ªI¨;Ò9IÐ8JÓKÈQÕOrM   c                  óÂ   — t        dd¬«      \  } }| dz   }t        ||«       t        j                  j	                  d«      j                  d«      \  }}t        ||«       y ©Nr   rJ  )r,   rã  r-   )r&   r”   rJ  )r   Ú_test_dcg_score_forr2   r6   r7   Úrandom_sample©rw   rJ   rH   s      rK   Útest_dcg_scorer    sT   € Ü.¸AÈÔL�I€A€vØˆg˜‰k€GÜ˜ Ô(Ü—i‘i×+Ñ+¨AÓ.×<Ñ<¸\ÓJ�O€FˆGÜ˜ Õ(rM   c                 ó   — t        j                  t        j                  | j                  d   «      dz   «      }t	        | | «      }t	        | |«      }||k  j                  «       sJ ‚t	        | | d¬«      |k  j                  «       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  j                  d¬«      «      k(  sJ ‚y )Nr-   r&   rÚ   ©Úkr   rO   ©Úaxis)
r2   Úlog2r3   r1   r   rv  r¡   r'  ÚsortrR   )rJ   rH   ÚdiscountÚidealra   s        rK   r  r    sî   € Ü�w‰w”r—y‘y §¡¨a¡Ó1°AÑ5Ó6€HÜ˜v vÓ.€EÜ˜v wÓ/€EØ�U‰N×ÑÔ!Ð!Ð!Ü˜v v°Ô3°uÑ<×AÑAÔCÐCÐCØ�;‰;˜6Ÿ<™<¨™?Ð,Ò,Ð,Ð,Ø�;‰;˜6Ÿ<™<¨™?Ð,Ò,Ð,Ð,Ø”F—M‘M¤2§7¡7¨6£?²1±d¸°d°7Ñ#;¸hÑ#F×"KÑ"KÐQRÐ"KÓ"SÓTÒTÐTÑTrM   c            	      ó’  — t        j                  t        j                  d«      g«      } t        j                  | j                  «      }t        | |«      }t        | |d¬«      }dt        j                  t        j                  dd«      «      z  }|t        j                  |j                  «       | j                  «       z  g«      k(  sJ ‚|t        j                  || d d …d d d…f   z  j                  «       g«      k(  sJ ‚d|dd	d …f<   t        | |«      }t        | |d¬«      }|t        j                  || d d …d d d…f   z  j                  «       g«      k(  sJ ‚|t        j                  |d d j                  «       | dd	d …f   j                  «       z  |dd  j                  «       | dd d	…f   j                  «       z  z   g«      k(  sJ ‚y )
NrÚ   T©Úignore_tiesr-   r&   rç   rO   r   r“   )r2   r3  r3   rª   r1   r   r  r¡   r'  rR   rj  )rJ   rH   ÚdcgÚdcg_ignore_tiesÚ	discountss        rK   Útest_dcg_tiesr"  %  sœ  € Ü�Z‰ZœŸ™ 1›˜Ó'€FÜ�h‰h�v—|‘|Ó$€GÜ
˜V WÓ
-€CÜ(¨°ÀdÔK€OØ”B—G‘GœBŸI™I a¨›OÓ,Ñ,€IØ”&—-‘- §¡£°6·;±;³=Ñ!@Ð AÓBÒBÐBÐBØœfŸm™m¨i¸&ÂÁDÀbÀDÀ¹/Ñ.I×-NÑ-NÓ-PÐ,QÓRÒRÐRÐRØ€GˆAˆq‰rˆE�NÜ
˜V WÓ
-€CÜ(¨°ÀdÔK€OØœfŸm™m¨i¸&ÂÁDÀbÀDÀ¹/Ñ.I×-NÑ-NÓ-PÐ,QÓRÒRÐRÐRØ”&—-‘-à�b�qˆM×ÑÓ &¨¨A©B¨¡-×"4Ñ"4Ó"6Ñ6Ø˜˜ˆm×ÑÓ! F¨1¨b¨q¨b¨5¡M×$6Ñ$6Ó$8Ñ8ñ9ð	
óò ð ñ rM   c            	      ó´   — t        j                  d«      j                  d«      } t        | | dd¬«      t	        j
                  t        | | dd¬«      «      k(  sJ ‚y )Né   )r&   ræ   r“   T)r  r  )r2   r3   rQ   r   r¡   r'  )rï   s    rK   Útest_ndcg_ignore_ties_with_kr%  9  sP   € Ü
�	‰	�"‹×Ñ˜fÓ%€AÜ�a˜˜a¨TÔ2´f·m±mÜ�1�a˜1¨$Ô/ó7ò ð ñ rM   c                  óà   — t        j                  g d¢g«      } t        j                  g d¢g«      }d}t        j                  t        |¬«      5  t        | |«       ddd«       y# 1 sw Y   yxY w)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)r2   r—   r¡   r¢   r£   r   )rJ   rH   r¶   s      rK   Ú test_ndcg_negative_ndarray_errorr'  @  sZ   € ä�X‰XÒ8Ð9Ó:€FÜ�h‰hÒ6Ð7Ó8€GØPÐÜ	�‰”zÐ)9Ô	:ñ $Ü�6˜7Ô#÷$÷ $ñ $ús   ÁA$Á$A-c                  ó¸  — t        j                  d«      j                  dd«      } | t         j                  j	                  d«      j                  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 ‚y )NéF   rç   rJ  r   çš™™™™™É¿rÍ   r•   Tr  r\   r.  )
r2   r3   rQ   r6   r7   rÂ  r1   r   r¡   r'  )rJ   rH   ÚndcgÚndcg_no_tiess       rK   Útest_ndcg_invariantr-  I  sº   € Ü�Y‰Y�r‹]×"Ñ" 1 bÓ)€FØ”r—y‘y×,Ñ,¨QÓ/×7Ñ7¸¸cÈÏÉÐ7ÓUÑU€GÜ�f˜gÓ&€DÜ˜f g¸4Ô@€LØ”6—=‘= Ó.Ò.Ð.Ð.Ø”6—=‘= Ó%Ò%Ð%Ð%Øˆt�O€GÜ�f˜gÓ&¬&¯-©-¸Ó*<Ò<Ð<Ñ<rM   r  c           
      ó,  — dt        j                  d«      d d z  }t        j                  t        j                  ddd«      d«      }|t         j                  j                  d«      j                  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  j                  «       «      k(  sJ ‚t!        ||| ¬«      t        j                  dt        j                  t        j                  dd«      «      z  j                  «       «      k(  sJ ‚dt        j"                  d«      z  }dt        j                  t        j                  dd«      «      z  j%                  «       }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 ‚y )Nr“   rç   rÚ   ræ   rO   )rÚ   r-   r   r*  rÍ   r•   r  r&   r-   rJ  )Úlog_baser  )rÚ   rç   é	   r\   )r2   ÚeyeÚtiler3   r6   r7   rÂ  r1   r   r¡   r'  r  r   Úlog10r   rj  r   r©   rR   )r  rJ   rH   Úy_score_noisyÚexpected_dcg_scores        rK   Útest_ndcg_toy_examplesr6  T  s  € à”—‘˜“˜2˜A�Ñ€FÜ�g‰g”b—i‘i  2 rÓ*¨FÓ3€GØœbŸi™i×3Ñ3°AÓ6×>Ñ>Øˆc˜Ÿ™ð ?ó ñ €Mô Ø� [ôä	�‰�qœ2Ÿ7™7¤2§9¡9¨Q°£?Ó3Ñ3Ó	4ò5ð 5ð 5ô Ø�¨;ôä	�‰�qœ2Ÿ7™7¤2§9¡9¨Q°£?Ó3Ñ3Ó	4ò5ð 5ð 5ô Ø� [ôä	�‰�qœ2Ÿ7™7¤2§9¡9¨Q°£?Ó3Ñ3Ó	4ò5ð 5ð 5ô Ø� "°+ôä	�‰�qœ2Ÿ8™8¤B§I¡I¨a°£OÓ4Ñ4Ó	5ò6ð 6ð 6ô �f˜g°;Ô?Ä6Ç=Á=Ø	
ŒR�W‰W”R—Y‘Y˜q !“_Ó%Ñ	%×+Ñ+Ó-óDò ð ð ô �V˜W°+Ô>Ä&Ç-Á-Ø	
ŒR�W‰W”R—Y‘Y˜q !“_Ó%Ñ	%×+Ñ+Ó-óCò ð ð ð ”—‘˜“Ñ €FØœbŸg™g¤b§i¡i°°1£oÓ6Ñ6×;Ñ;Ó=ÐÜØ� [ôä	�‰Ð)¬B¯G©G°A«JÑ6Ó	7ò8ð 8ð 8ô Ø� [ôä	�‰”r—w‘w˜q“zÓ	"ò#ð #ð #ô �V˜W°+Ô>Ä&Ç-Á-ØóCò ð ð ô �f˜g°;Ô?Ä6Ç=Á=ÐQTÓCUÒUÐUÑUrM   c                  óˆ   — d} t        j                  t        | ¬«      5  t        dggdgg«       ddd«       y# 1 sw Y   yxY w)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   )r‡  s    rK   Útest_ndcg_error_single_documentr8  {  sC   € ð	ð ô 
�‰”z¨Ô	1ñ !Ü�Q�C�5˜A˜3˜%Ô ÷!÷ !ñ !ús	   ž8¸Ac                  óÂ   — t        dd¬«      \  } }| dz   }t        ||«       t        j                  j	                  d«      j                  d«      \  }}t        ||«       y r  )r   Ú_test_ndcg_score_forr2   r6   r7   r  r  s      rK   Útest_ndcg_scorer;  †  sT   € Ü.¸AÈÔL�I€A€vØˆg˜‰k€GÜ˜ Ô)Ü—i‘i×+Ñ+¨AÓ.×<Ñ<¸\ÓJ�O€FˆGÜ˜ Õ)rM   c                 óö  — t        | | «      }t        | |«      }||k  j                  «       sJ ‚| dk(  j                  d¬«      }||    t        j                  t	        j
                  | j                  «       «      «      k(  sJ ‚||   t        j                  t	        j                  |j                  «       «      «      k(  sJ ‚||    t        j                  t        | |«      |    t        | | «      |    z  «      k(  sJ ‚||   t        j                  t	        j                  |j                  «       «      «      k(  sJ ‚|j                  | j                  d   fk(  sJ ‚|j                  | j                  d   fk(  sJ ‚y )Nr   r-   r  )
r   rv  r¡   r'  r2   r©   rR   rª   r   r1   )rJ   rH   r  ra   Úall_zeros        rK   r:  r:  Ž  sR  € Ü ¨Ó/€EÜ ¨Ó0€EØ�U‰N×ÑÔ!Ð!Ð!Ø˜!‘× Ñ  aÐ Ó(€HØ�(�ÑœvŸ}™}¬R¯W©W°x°i·_±_Ó5FÓ-GÓHÒHÐHÐHØ�‰?œfŸm™m¬B¯H©H°X·\±\³^Ó,DÓEÒEÐEÐEØ�(�ÑœvŸ}™}Ü˜6 7Ó+¨X¨IÑ6Ü
˜V VÓ
,¨h¨YÑ
7ñ	8ó ò ð ð ð �‰?œfŸm™m¬B¯H©H°X·\±\³^Ó,DÓEÒEÐEÐEØ�;‰;˜6Ÿ<™<¨™?Ð,Ò,Ð,Ð,Ø�;‰;˜6Ÿ<™<¨™?Ð,Ò,Ð,Ñ,rM   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 «       t        j                  t
        «      5  t        | | d¬«      sJ ‚	 d d d «       t        j                  t
        «      5  t        | | d¬«      sJ ‚	 d d d «       t        j                  g d¢«      }t        | |d¬«      }t        | |«      }||k(  sJ ‚t        | |d	¬«      d
k(  sJ ‚t        d¬«      \  } }}t        j                  ddd«      D ]%  }t        t        | ||¬«      t        | ||«      «       Œ' y # 1 sw Y   �ŒxY w# 1 sw Y   ŒäxY w# 1 sw Y   Œ½xY w)Nr  r-   )rt   gü©ñÒMbP?gš™™™™™¹¿gš™™™™™ñ?r   )rÒ   r   rÒ   g{®Gáz„?rØ   r   Trˆ   g-Cëâ6?rÚ   )
r2   r—   r   r¡   r¢   r£   rL   Úlinspacer   r…   )rJ   r  Úroc_auc_with_max_fpr_oneÚunconstrained_roc_aucrI   rw   rt   s          rK   Útest_partial_roc_auc_scorerB  ž  sw  € ä�X‰X’lÓ#€FÜ˜ °Ô3°qÒ8Ð8Ð8Ü˜ °Ô7¸1Ò<Ð<Ð<Ü	�‰”zÓ	"ñ ;Ü˜V V°TÕ:Ð:Ñ:÷;ä	�‰”zÓ	"ñ :Ü˜V V°SÕ9Ð9Ñ9÷:ä	�‰”zÓ	"ñ 8Ü˜V V°QÕ7Ð7Ñ7÷8ô �x‰xÒ+Ó,€HÜ,¨V°XÀqÔIÐÜ)¨&°(Ó;ÐØ#Ð'<Ò<Ð<Ð<Ü˜ °3Ô7¸3Ò>Ð>Ð>ä'¨tÔ4Ñ€FˆF�AÜ—;‘;˜t Q¨Ó*ò 
ˆÜÜ˜& &°'Ô:Ü" 6¨6°7Ó;õ	
ñ
÷;ñ ;ú÷:ð :ú÷8ð 8ús$   ÁE2Â
E?Â=FÅ2E<Å?FÆF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 ‚y )Nró  ©rÒ   rØ   rÙ   rÍ   ©rÙ   rÒ   rÍ   rØ   ©rØ   rÍ   rÙ   rÒ   r  ©r2   r—   r   r¡   r'  )rJ   r  Ú
true_scorerH   ra   s        rK   Útest_top_k_accuracy_scorerI  ¸  sJ   € ô �h‰hâ Ú Ú Ú ð		
ó€Gô ! ¨°AÔ6€EØ”F—M‘M *Ó-Ò-Ð-Ñ-rM   zy_score, k, true_score)rO   rO   r-   r-   )rO   r-   rO   r-   )rÍ   rÍ   rÏ   rÏ   )rÍ   rÏ   rÍ   rÏ   c                 ó,  — g d¢}| j                  «       dk\  r| j                  «       dk  rdnd}|dk(  r"| |kD  j                  t        j                  «      n|}t        || |¬«      }t        ||«      }||cxk(  rt        j                  |«      k(  sJ ‚ J ‚y )Nr  r   r-   r   r  )	ÚminÚmaxÚastyper2   Úint64r   r	   r¡   r'  )rH   r  rH  rJ   rk   rI   ra   Ú	score_accs           rK   Ú test_top_k_accuracy_score_binaryrP  Í  s‡   € ò €Fà—{‘{“}¨Ò)¨g¯k©k«m¸qÒ.@‘Àa€IØ78¸A²vˆg˜	Ñ!×)Ñ)¬"¯(©(Ô3À6€Fä  ¨°AÔ6€EÜ˜v vÓ.€Ià�IÔ:¤§¡¨zÓ!:Ò:Ð:Ñ:Ð:Ñ:rM   zy_true, true_score, labels)r   r-   r-   r&   )r   r-   r-   r-   r~  )rï   r>  r>  rï   )rï   rð   r  r>  Úlabels_as_ndarrayc                 óÆ   — |rt        j                  |«      }t        j                  g d¢g d¢g d¢g d¢g«      }t        | |d|¬«      }|t	        j
                  |«      k(  sJ ‚y)z,Test when labels and y_score are multiclass.ró  rD  rE  rF  r&   ©r  rþ   N)r2   r3  r—   r   r¡   r'  )rJ   rH  rþ   rQ  rH   ra   s         rK   Ú0test_top_k_accuracy_score_multiclass_with_labelsrT  ä  s]   € ñ Ü—‘˜FÓ#ˆÜ�h‰hâ Ú Ú Ú ð		
ó€Gô ! ¨°A¸fÔE€EØ”F—M‘M *Ó-Ò-Ð-Ñ-rM   c            
      óš  — t        j                  dddd¬«      \  } }t        | |d¬«      \  }}}}t        d¬«      }|j	                  ||«       t        ||f||f«      D ]f  \  } }t        dd«      D �cg c]  }t        ||j                  | «      |¬«      ‘Œ! }}t        j                  t        j                  |«      dkD  «      rŒfJ ‚ y c c}w )NrJ  r.  r   )rã  rB   Ún_informativer,   )r,   r&   r  )r   Úmake_classificationr   r   r;   rT  r^   r   r<   r2   rv  rÞ   )	r@   rA   ÚX_trainÚX_testÚy_trainÚy_testrG   r  Úscoress	            rK   Ú$test_top_k_accuracy_score_increasingr]    sÐ   € ä×'Ñ'Ø °BÀQô�D€A€qô (8¸¸1È1Ô'MÑ$€GˆV�W˜fä
¨!Ô
,€CØ‡G�GˆG�WÔä�W˜fÐ%¨°Ð'8Ó9ò +‰ˆˆ1äHMÈaÐQSËö
ØCDÔ   C×$5Ñ$5°aÓ$8¸AÖ>ð
ˆð 
ô �v‰v”b—g‘g˜f“o¨Ñ)Õ*Ð*Ð*ñ+ùò
s   Á2$Cc                 ó’   — t        j                  g d¢g d¢g d¢g d¢g«      }t        | ||¬«      t        j                  |«      k(  sJ ‚y )N)rÚ   rÚ   rç   r   )r-   rÚ   rÚ   rÚ   )r   r   r“   r“   r~  r  rG  )rJ   r  rH  rH   s       rK   Útest_top_k_accuracy_score_tiesr_    sE   € ô �h‰hâÚÚÚð		
ó€Gô   ¨°1Ô5¼¿¹ÀzÓ9RÒRÐRÑRrM   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 «       dk(  sJ ‚y # 1 sw Y   ŒxY w)	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-   )r2   r—   r¡   r³   r   r   )rJ   r  rH   r¶   ra   s        rK   Ú!test_top_k_accuracy_score_warningra  )  sn   € ô �h‰hâ Ú Ú Ú ð		
ó€Gð	6ð ô 
�‰Ô,Ð4DÔ	Eñ ;Ü$ V¨W¸Ô:ˆ÷;à�AŠ:Ð‰:÷;ð ;ús   ¿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 «       y # 1 sw Y   y xY w)Nr°   r&   rS  )r¡   r¢   r£   r   )rJ   rH   rþ   r@  s       rK   Útest_top_k_accuracy_score_errorrc  B  s:   € ôf 
�‰”z¨Ô	-ñ BÜ˜V W°¸&ÕA÷B÷ Bñ Bús   œ5µ>c                 ó¢   —  | g d¢g d¢g«      }t        j                  g d¢g d¢g«      }t        ||«      }|t        j                  d«      k(  sJ ‚y )Nrá   rº   )r   r¦   rÎ   r½  )r2   r—   r   r¡   r'  )r  rJ   rH   Úresults       rK   ÚOtest_label_ranking_avg_precision_score_should_allow_csr_matrix_for_y_true_inputrf  ™  sI   € ñ šI¢yÐ1Ó2€FÜ�h‰hšªÐ3Ó4€GÜ2°6¸7ÓC€FØ”V—]‘] 5Ó)Ò)Ð)Ñ)rM   Úmetricr0  ))FT)r   r-   )r¼   r\   )ÚzeroÚonec                 óê  — t         j                  j                  d«      }d|d   }}|j                  ||d¬«      }|j	                  |«      } | |||¬«      }t        |t        «      rt        j                  |«      rJ ‚y|\  }}	}
t        j                  |«      j                  «       rJ ‚t        j                  |	«      j                  «       rJ ‚t        j                  |
«      j                  «       rJ ‚y)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.
    é*   rJ  rO   T)r–   Úreplacer„  N)	r2   r6   r7   ÚchoicerE  Ú
isinstancerS   rÈ   Úany)rg  r0  rE   rB   rU   rJ   Úy_probare  Úmetric_1Úmetric_2rŽ   s              rK   Ú#test_ranking_metric_pos_label_typesrs  ¥  sÔ   € ô �)‰)×
Ñ
 Ó
#€CØ˜w r™{ˆy€IØ�Z‰Z˜ i¸ˆZÓ>€FØ�h‰h�yÓ!€GÙ�F˜G¨yÔ9€FÜ�&œ%Ô Ü—8‘8˜FÔ#Ð#Ð#Ð#à)/Ñ&ˆ�(˜JÜ—8‘8˜HÓ%×)Ñ)Ô+Ð+Ð+Ü—8‘8˜HÓ%×)Ñ)Ô+Ð+Ð+Ü—8‘8˜JÓ'×+Ñ+Ô-Ð-Ð-Ð-rM   c                 óà   — t         j                  j                  | «      }|j                  ddd¬«      }|j	                  d«      }t        ||«      \  }}}t        j                  |d   «      sJ ‚y)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&   rJ  r•   N)r2   r6   r7   r˜   rE  r   Úisinf)r6  rE   rJ   rH   rw   rŽ   s         rK   Ú(test_roc_curve_with_probablity_estimatesrv  ¿  sc   € ô �)‰)×
Ñ
Ð 2Ó
3€CØ�[‰[˜˜A Bˆ[Ó'€FØ�h‰h�r‹l€GÜ  ¨Ó1Ñ€A€qˆ*Ü�8‰8�J˜q‘MÔ"Ð"Ñ"rM   c                  ó"  — t        d¬«      \  } }}d}t        j                  t        |¬«      5  t	        | |¬«       ddd«       d}t        j
                  t        |¬«      5  t	        | ||¬«       ddd«       y# 1 sw Y   Œ>xY w# 1 sw Y   yxY w)	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)rx  rH   )rL   r¡   r³   ÚFutureWarningr   r¢   r£   )rJ   rw   rH   Úwarn_msgÚ	error_msgs        rK   Ú/test_precision_recall_curve_deprecation_warningr|  Î  sŒ   € ô )°Ô5Ñ€FˆAˆwà:€HÜ	�‰”m¨8Ô	4ñ 
ÜØØõ	
÷
ð G€IÜ	�‰”z¨Ô	3ñ 
ÜØØØõ	
÷
ð 
÷
ð 
ú÷
ð 
ús   ®A9Á!BÁ9BÂB)NF)rÚ   rD  r   )�rÇ   rê   Únumpyr2   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   Úsklearn.utils.extmathr    Úsklearn.utils.fixesr!   Úsklearn.utils.validationr"   r#   r$   ÚCURVE_FUNCSrL   rZ   re   rm   r…   ÚmarkÚparametrizer�   rš   rŸ   r¤   r§   r­   r¸   rÉ   rÕ   rß   rã   rí   r—   r  r  r#  r+  r<  rA  rH  rN  rQ  rZ  Úfilterwarningsr_  re  rp  ri  r{  r  r‚  rˆ  rŠ  rŒ  r•  rž  r¡  r¤  r¦  r¨  r®  r¹  rÀ  rÅ  rÇ  rÊ  rÏ  rà  ré  rí  rï  r^   rñ  rö  rþ  r   r  r  r  r
  r  r  r  r"  r%  r'  r-  r6  r8  r;  r:  rB  rI  rP  rT  r]  r_  ra  rc  rf  rs  rv  r|  r£  rM   rK   ú<module>r�     s$  ðÛ Û 	ã Û Ý ç !Ý ;Ý 5Ý 3÷÷ ÷ õ ÷ MÝ 4Ý 0Ý ;÷õ õ *Ý .÷ñ ð ØØð€ó)#ò`2òò<ò&Hð8 ‡�×Ñ˜ $¨ Ó/ñ
)ó 0ð
)ò
"ò)ò&#ò)ò)ò8)ò6oNòdMò	)ò.ò&ð" ‡�×ÑØà	ˆ�‰’,Ó	¢Ð+Ø	ˆ�‰’,Ó	 Ð&Ú	šÐ/Ú	˜tÐ$ð	óñ/Xóð/Xðd ‡�×ÑØà	ˆ�‰’,Ó	¢Ð+Ø	ˆ�‰Ò&Ó	'ªÐ9ðóñóðð: ‡�×ÑØà	ˆ�‰’,Ó	 Ð&Ú	˜tÐ$Ú	’yÐ!Ú	šÐ/ð	óñóððD ‡�×ÑØòóñóðòD:ð( ‡�×ÑØà	,¨h¨b¯h©h²|Ó.DÂiÐPà/ØˆB�H‰HÒ)Ó*Úð	
ðð ˆB�H‰H’\Ó"Øð	
ð 1ØˆB�H‰HÒ)Ó*Úð	
ðð ˆB�H‰H’\Ó"Ø�ˆFð	
ðð ˆB�H‰HÒ)Ó*Ø�#ˆJð	
ðð ˆB�H‰H’\Ó"Úð	
ðð ˆB�H‰HÒ)Ó*Ú ð	
ð AØˆB�H‰HÒ)Ó*Úð	
ð AØˆB�H‰HÒ)Ó*Úð	
ð AØˆB�H‰H’\Ó"Úð	
ð}CóFðN ‡�×Ñ˜¨°¨Ó7ñPó 8óOFðPPð ‡�×ÑØð'ð "°%Ñ8ð	
ð'ð "°%Ñ8ð	
ðFð "°BÑ7ð	
ðð "¨cÑ2ð	
ð 
4°RÐ8ð=ó"ñF	0óG"ðF	0ò&ð* ‡�×Ñ˜ {Ó3ñ#ó 4ð#ð ‡�×Ñ˜ {Ó3ñEó 4ðEð2 ‡�×ÑÐLÓMØ‡�×Ñ˜Ð(>À	Ð'JÓKØ‡�×Ñ˜¨°Ð(9Ó:ñ
'ó ;ó Ló Nð
'ð ‡�×Ñ˜ {Ó3ñ	&ó 4ð	&ð ‡�×Ñ˜ $¨ Ó/ñ ó 0ð ò>)ð, ‡�×Ñ˜ $¨ Ó/ñ`ó 0ð`òF6òD<ò=ò
=ò=ò*$ð2 ‡�×ÑØ.â	’K !  q cÐ*Ú	’N Q C¨!¨Ð-Ú	’N Q C¨!¨Ð-Ú	Ò%¨ s¨Q¨CÐ0Ú	’K # ¨¨Ð,Ú	’N S E¨A¨3Ð/Ú	’N S E¨A¨3Ð/Ú	Ò%¨ u¨q¨cÐ2Ú	’K # ¨¨Ð,Ú	’N Q C¨!¨Ð-Ú	’N Q C¨!¨Ð-Ú	Ò%¨ s¨Q¨CÐ0Ú	’K¢ªiÐ8Ú	’N¢K²Ð;Ú	’N¢K²Ð;Ú	Ò%¢{²IÐ>Ú	’K¢ªMÐ:Ú	’N¢Iª}Ð=Ú	’N¢Iª}Ð=Ú	Ò%¢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ÓFñ*ó Gð*ð ‡�×ÑØâ	Ú	Ú	Ú	Ú	ðó	ñó	ðð ‡�×ÑØà
ˆQˆ’Ð?Ð@Ú	�Q˜�HÐ?Ð@Ú	’KÐ!FÐGÚ	’KÐ!FÐGâ.ÚØ(ð	
ð
óñ"óð"ò>ò48Sòvò.1ò4Xòò6#ðN 9:ó3ð@ ‡�×ÑØàØ3ØØ)ð	óð ‡�×Ñ˜Ð"GÈÐ!RÓSñó TóðòCð ‡�×Ñ˜ mÓ4Ø‡�×Ñ˜ jÓ1Ø‡�×Ñ˜©¨q«Ó2ñó 3ó 2ó 5ðòò*4ònLð  ‡�×ÑØâ	Ò$Ð%Ú	Ò%Ð&Ð'Ú
ˆÒ&Ð'ðóñ(óð(ò(ðV ‡�×Ñ˜¨.Ó9ñó :ðò9ò 	Pò)òUòò(ò$ò=ð ‡�×Ñ˜¨¨u¨Ó6ñ#Vó 7ð#VòL!ò*ò-ò 
ð4 ‡�×ÑØâ	�q˜$ÐÚ	�q˜#ÐÚ	�q˜$Ððóñ
.óð
.ð ‡�×ÑØà	ˆ�‰’.Ó	! 1 aÐ(Ø	ˆ�‰’.Ó	! 1 cÐ*Ø	ˆ�‰’.Ó	! 1 aÐ(Ø	ˆ�‰Ò&Ó	'¨¨AÐ.Ø	ˆ�‰Ò&Ó	'¨¨CÐ0Ø	ˆ�‰Ò&Ó	'¨¨AÐ.ðó
ñ	;ó
ð	;ð ‡�×ÑØ à	ˆ�‰’,Ó	 ¢|Ð4Ø	ˆ�‰’,Ó	 ¢lÐ3Ø	ˆ�‰’,Ó	 ¢lÐ3Ø	ˆ�‰Ò&Ó	'¨Ò/CÐDð	óð ‡�×ÑÐ,¨t°U¨mÓ<ñ.ó =óð.ò&+ð& ‡�×ÑØâ	�q˜$ÐÚ	�q˜#ÐÚ	�q˜!Ððóñ
Sóð
Sð ‡�×ÑØâ	�qÐÚ	�qÐðóñóðð$ ‡�×ÑØ"ò âÚÚÚð	ð ØGð
	
ò âÚÚÚð	ð ð+ð	
ò !âÚÚÚð	ò !Ø0ð
	
ò !âÚÚÚð	ò Ø1ð
	
ò âÚÚÚð	ò ð ð	
ò âÚÚÚð	ò ØAð
	
ð �ˆFÚšoÐ.ØðWð	
ðKNóQñdBóeQðdBð
 ‡�×Ñ˜¨.Ó9ñ*ó :ð*ð ‡�×ÑØÐ&¨	Ð3IÈ9ÐUóð ‡�×ÑØÒCóñ.óóð.ò(#ó
rM   