Ë
    °Ó^jy,  ã            
       óð  — d Z ddlmZmZmZ ddlZddlZddlm	Z	 ddl
mZmZmZ ddlmZmZ ddlmZ d	d
lmZ dededdfd„Zdededdfd„Zdej0                  dej0                  dedeej0                     def
d„Zdej0                  dej0                  dej0                  deej0                     def
d„Zdededdfd„Zdedededdfd„Zdededdfd„Zdedede deddf
d„Z!dededdfd„Z"dededdfd„Z#y)zTests for evaluation metrics.é    )ÚDictÚListÚOptionalNé   )Úconcat)ÚDMatrixÚQuantileDMatrixÚ_parse_eval_str)ÚXGBClassifierÚ	XGBRanker)Útrainé   )ÚDeviceÚtree_methodÚdeviceÚreturnc           	      óÚ  — t        j                  d«      }|j                  dddd¬«      \  }}t        j                  |j
                  ¬«      }t        d| |¬«      }|j                  |||¬	«       |j                  d
ddd¬«      \  }}|j                  d¬«       t        |j                  «       j                  t        ||«      dfg¬«      «      }|d   d   }g }	g }
d}g }t        |«      D ]}  }|j                  d
ddd¬«      \  }}|	j                  |«       |
j                  |«       t        j                  |j
                  |t        j                   ¬«      }|j                  |«       Œ t#        |«      }t#        |	«      }t#        |
«      }t        |j                  «       j                  t        |||¬	«      dfg¬«      «      }|d   d   j%                  d«      sJ ‚|d   d   }||k(  sJ ‚y)z3Test for precision with ranking and classification.zsklearn.datasetsi   é   r   iç  )Ú	n_samplesÚ
n_featuresÚ	n_classesÚrandom_state)Úshape)Ún_estimatorsr   r   )Úqidi   éÊ  zpre@32)Úeval_metricÚXy)Úevalsr   é   )r   Ú
fill_valueÚdtyper   N)ÚpytestÚimportorskipÚmake_classificationÚnpÚzerosr   r   ÚfitÚ
set_paramsr
   Úget_boosterÚeval_setr   ÚrangeÚappendÚfullÚuint64r   Úendswith)r   r   ÚdatasetsÚXÚyr   ÚltrÚresultÚscore_0ÚX_listÚy_listÚn_query_groupsÚq_listÚiÚqÚscore_1s                   úb/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/xgboost/testing/metrics.pyÚcheck_precision_scorer?      sì  € ô ×"Ñ"Ð#5Ó6€Hà×'Ñ'Ø 1°Àð (ó �D€A€qô �(‰(˜Ÿ™Ô
!€Cä
 °ÀFÔ
K€CØ‡G�GˆAˆq�c€GÔð ×'Ñ'Ø !¨q¸tð (ó �D€A€qð ‡N�N˜x€NÔ(Ü˜SŸ_™_Ó.×7Ñ7ÄÈÈ1ÃÈtÐ?TÐ>UÐ7ÓVÓW€FØ�Q‰i˜‰l€Gà€FØ€FØ€NØ!€FÜ�>Ó"ò ˆà×+Ñ+Ø a°1À4ð ,ó 
‰ˆˆ1ð 	�‰�aÔØ�‰�aÔÜ�G‰G˜!Ÿ'™'¨a´r·y±yÔAˆØ�‰�aÕðô �‹.€CÜˆv‹€AÜˆv‹€AäØ�‰Ó×"Ñ"¬7°1°a¸SÔ+AÀ4Ð*HÐ)IÐ"ÓJó€Fð �!‰9�Q‰<× Ñ  Ô*Ð*Ð*Ø�Q‰i˜‰l€GØ�gÒÐÑó    c                 ó~  — ddl m} ddlm} t        j
                  j                  d«      } |dd|¬«      \  }}t        ||«      }i }t        | dd	|d
œ||dfg|¬«      }	|	j                  |«      }
 |||
d	¬«      }t        j                  j                  |d   d   d   |«       g d¢}t        | d|d|dœ||dfg|¬«      }	|	j                  |«      }
t	        j                  t        d«      D �cg c]  } |||
dd…|f   ||   ¬«      ‘Œ c}«      }t        j                  j                  |d   d   d   |«       yc c}w )zTest for the `quantile` loss.r   ©Úmake_regression)Úmean_pinball_lossé   é€   r    ©r   Úquantileç333333Ó?)r   r   Úquantile_alphar   ÚTrain©r   Úevals_result)Úalphaéÿÿÿÿ©g      Ð?g      à?g      è?zreg:quantileerror)r   r   rJ   Ú	objectiver   N)Úsklearn.datasetsrC   Úsklearn.metricsrD   r&   ÚrandomÚRandomStater	   r   Úinplace_predictÚtestingÚassert_allcloseÚmeanr,   )r   r   rC   rD   Úrngr2   r3   r   rM   ÚboosterÚpredtÚlossrN   r;   s                 r>   Úcheck_quantile_errorr^   @   sU  € å0Ý1ä
�)‰)×
Ñ
 Ó
#€Cá˜3 °Ô4�D€A€qÜ	˜˜AÓ	€BØ$&€LÜà&Ø%Ø!Øñ		
ð 	Ø�Gˆ}ˆoØ!ô
€Gð ×#Ñ# AÓ&€EÙ˜Q ¨SÔ1€DÜ‡J�J×Ñ˜|¨GÑ4°ZÑ@ÀÑDÀdÔKâ€EÜà&Ø%Ø#Ø,Øñ	
ð 	Ø�Gˆ}ˆoØ!ô€Gð ×#Ñ# AÓ&€EÜ�7‰7ÜDIÈ!ÃHÖM¸qÑ	˜1˜e¢A q D™k°°q±Ö	:ÒMó€Dô ‡J�J×Ñ˜|¨GÑ4°ZÑ@ÀÑDÀdÕKùò 	Ns   Ã-D:r3   r\   rN   Úweightc                 ó  — || z
  }t        j                  |dk\  d|z
  |«      }||z  |z  }|€t        t        j                  |«      «      S t        t        j                  ||z  «      t        j                  |«      z  «      S ©Ng        ç      ð?)r&   ÚwhereÚfloatrY   Úsum©r3   r\   rN   r_   ÚdiffÚweight_scaler]   s          r>   Ú_expectile_lossri   m   ss   € ð �1‰9€DÜ—8‘8˜D C™K¨¨u©°eÓ<€LØ˜$Ñ Ñ%€DØ€~Ü”R—W‘W˜T“]Ó#Ð#Ü”—‘˜˜v™Ó&¬¯©°«Ñ7Ó8Ð8r@   c                 ó:  — || d d …d f   z
  }t        j                  |dk\  d|z
  |«      }||z  |z  }|€t        t        j                  |«      «      S t        t        j                  ||d d …d f   z  «      t        j                  |«      |j
                  z  z  «      S ra   )r&   rc   rd   rY   re   Úsizerf   s          r>   Ú_expectile_loss_multirl   x   sŽ   € ð �1’Q˜�W‘:Ñ€DÜ—8‘8˜D C™K¨¨u©°eÓ<€LØ˜$Ñ Ñ%€DØ€~Ü”R—W‘W˜T“]Ó#Ð#Ü”—‘˜˜v¢a¨ g™Ñ.Ó/´2·6±6¸&³>ÀEÇJÁJÑ3NÑOÓPÐPr@   c                 óT  — ddl m} t        j                  j	                  d«      } |dd|¬«      \  }}t        ||«      }i }t        | dd|d	œ||d
fg|¬«      }|j                  |«      }	t        ||	dd«      }
t        j                  j                  |d
   d   d   |
«       t        j                  g d¢«      }t        | d|d|dœ||d
fg|¬«      }|j                  |«      }	t        ||	|d«      }
t        j                  j                  |d
   d   d   |
«       |j                  dd|j                  d   ¬«      }t        |||¬«      }i }t        | d|d|dœ||d
fg|¬«      }|j                  |«      }	t        ||	||«      }
t        j                  j                  |d
   d   d   |
«       y)zTest for the `expectile` loss.r   rB   é   rF   r    rG   Ú	expectilerI   )r   r   Úexpectile_alphar   rK   rL   NrO   rP   zreg:expectileerror)r   r   rp   rQ   r   gš™™™™™¹?rb   )rk   ©r_   )rR   rC   r&   rT   rU   r   r   rV   ri   rW   rX   Úarrayrl   Úuniformr   )r   r   rC   rZ   r2   r3   r   rM   r[   r\   r]   rN   ÚweightsÚXy_wÚevals_result_ws                  r>   Úcheck_expectile_errorrw   ƒ   sÓ  € å0ä
�)‰)×
Ñ
 Ó
#€CÙ˜3 °Ô4�D€A€qÜ	��A‹€BØ$&€LÜà&Ø&Ø"Øñ		
ð 	Ø�Gˆ}ˆoØ!ô
€Gð ×#Ñ# AÓ&€EÜ˜1˜e S¨$Ó/€DÜ‡J�J×Ñ˜|¨GÑ4°[ÑAÀ"ÑEÀtÔLä�H‰HÒ&Ó'€EÜà&Ø&Ø$Ø-Øñ	
ð 	Ø�Gˆ}ˆoØ!ô€Gð ×#Ñ# AÓ&€EÜ   E¨5°$Ó7€DÜ‡J�J×Ñ˜|¨GÑ4°[ÑAÀ"ÑEÀtÔLà�k‰k˜#˜s¨¯©°©ˆkÓ4€GÜ�1�a Ô(€DØ&(€NÜà&Ø&Ø$Ø-Øñ	
ð 	Ø�gˆÐØ#ô€Gð ×#Ñ# AÓ&€EÜ   E¨5°'Ó:€DÜ‡J�J×Ñ˜~¨gÑ6°{ÑCÀBÑGÈÕNr@   r   c                 ó´  — ddl m} ddlm} t        j
                  j                  d«      }d} ||||d|¬«      \  }}t        ||«      }	t        | |ddd	œ|	d
¬«      }
|
j                  |	«      } |||«      }t        |
j                  |	«      j                  d«      d
   «      }t        j                  j                  ||d¬«        |j                  |j                   Ž }|
j                  t        |«      «      } |||«      }t        |
j                  t        ||«      «      j                  d«      d
   «      }t        j                  j                  ||d¬«       y)z6TestROC AUC metric on a binary classification problem.r   ©r%   ©Úroc_auc_scorer   é
   )Ún_informativeÚn_redundantr   Úauczbinary:logistic)r   r   r   rQ   r   ©Únum_boost_roundú:ç�íµ ÷Æ°>©ÚrtolN)rR   r%   rS   r{   r&   rT   rU   r   r   Úpredictrd   ÚevalÚsplitrW   rX   Úrandnr   )r   r   r   r%   r{   rZ   r   r2   r3   r   r[   ÚscoreÚskl_aucr   s                 r>   Úrun_roc_auc_binaryrŒ   ¿   s:  € å4Ý-ä
�)‰)×
Ñ
 Ó
%€CØ€JáØØØ ØØô�D€A€qô 
��A‹€BÜà&ØØ Ø*ñ		
ð 	Øô	€Gð �O‰O˜BÓ€EÙ˜A˜uÓ%€GÜ
�—‘˜RÓ ×&Ñ& sÓ+¨AÑ.Ó
/€CÜ‡J�J×Ñ˜w¨°$ÐÔ7àˆ�	‰	�1—7‘7Ð€AØ�O‰OœG A›JÓ'€EÙ˜A˜uÓ%€GÜ
�—‘œW Q¨›]Ó+×1Ñ1°#Ó6°qÑ9Ó
:€CÜ‡J�J×Ñ˜w¨°$ÐÕ7r@   c                 óp  — ddl m}  |ddddd¬«      \  }}t        | d	d
|¬«      }|j                  ||||fg¬«       |j	                  «       d   d
   d   }t        | dd
|¬«      }|j                  ||||fg¬«       |j	                  «       d   d
   d   }t
        j                  j                  d|d¬«       y)z?Test for PR AUC metric on a multi-class classification problem.r   ry   é@   é   é   r    r   )r}   r   r   r   Úaucpr©r   r   r   r   ©r+   Úvalidation_0rO   r|   rb   ç{®Gáz„?r„   N)rR   r%   r   r(   rM   r&   rW   rX   )r   r   r%   r2   r3   ÚclfrM   s          r>   Úrun_pr_auc_multir—   å   sË   € å4á˜r 2°QÀ!ÐRVÔW�D€A€qÜ
Ø¨a¸WÈVô€Cð ‡G�GˆAˆq˜Q ˜F˜8€GÔ$Ø×#Ñ#Ó% nÑ5°gÑ>¸rÑB€Lô Ø¨b¸gÈfô€Cð ‡G�GˆAˆq˜Q ˜F˜8€GÔ$Ø×#Ñ#Ó% nÑ5°gÑ>¸rÑB€LÜ‡J�J×Ñ˜s L°tÐÕ<r@   Úweightedc           	      óP  — ddl m} ddlm} t        j
                  j                  d«      }d}d} ||||d||¬«      \  }	}
|r8|j                  |«      }||j                  «       z  }||j                  «       z  }nd}t        |	|
|¬	«      }t        | d
d||dœ|d¬«      }|j                  |«      } ||
|d|d¬«      }t        |j                  |«      j                  d«      d   «      }t        j                   j#                  ||d¬«        |j                  |	j$                  Ž }	|j                  t        |	|¬	«      «      } ||
|d|d¬«      }t        |j                  t        |	|
|¬	«      «      j                  d«      d   «      }t        j                   j#                  ||d¬«       y)z@Test for ROC AUC metric on a multi-class classification problem.r   ry   rz   r   r|   r   )r}   r~   r   r   Nrq   r   zmulti:softprob)r   r   rQ   Ú	num_classr   r   r€   r˜   Úovr)ÚaverageÚsample_weightÚmulti_classr‚   rƒ   r„   gñhãˆµøä>)rR   r%   rS   r{   r&   rT   rU   r‰   ÚminÚmaxr   r   r†   rd   r‡   rˆ   rW   rX   r   )r   r   r˜   r   r%   r{   rZ   r   r   r2   r3   rt   r   r[   rŠ   r‹   r   s                    r>   Úrun_roc_auc_multir¡   ù   sœ  € õ 5Ý-ä
�)‰)×
Ñ
 Ó
%€CØ€JØ€IáØØØ ØØØô�D€A€qñ Ø—)‘)˜IÓ&ˆØ�7—;‘;“=Ñ ˆØ�7—;‘;“=Ñ ‰àˆä	��A˜gÔ	&€BÜà&Ø Ø)Ø"Øñ	
ð 	Øô
€Gð �O‰O˜BÓ€EÙØ	ˆ5˜*°GÈô€Gô �—‘˜RÓ ×&Ñ& sÓ+¨AÑ.Ó
/€CÜ‡J�J×Ñ˜w¨°$ÐÔ7àˆ�	‰	�1—7‘7Ð€Aà�O‰OœG A¨gÔ6Ó7€EÙØ	ˆ5˜*°GÈô€Gô �—‘œW Q¨°'Ô:Ó;×AÑAÀ#ÓFÀqÑIÓ
J€CÜ‡J�J×Ñ˜w¨°$ÐÕ7r@   c                 óð   — ddl m}  |dddd¬«      \  }}t        | dd	d
|¬«      }t        j                  g d¢«      }|j                  |||||fg|g¬«       |j                  «       d   d
   }|d   dk\  sJ ‚y)z,Test for PR AUC metric on a ranking problem.r   ry   rF   r   r   r   ©r   r   r�   zrank:pairwiser‘   )r   r   rQ   r   r   )é    r¤   rŽ   )Úgroupr+   Ú
eval_groupr”   rO   ç®Gáz®ï?N)rR   r%   r   r&   rr   r(   rM   )r   r   r%   r2   r3   r4   ÚgroupsÚresultss           r>   Úrun_pr_auc_ltrrª   0  s–   € å4á˜s A°ÀÔF�D€A€qÜ
ØØØ!ØØô€Cô �X‰X’lÓ#€FØ‡G�GØ	Ø	ØØ�a�&�Ø�8ð ô ð ×ÑÓ  Ñ0°Ñ9€GØ�2‰;˜$ÒÐÑr@   c                 ó  — ddl m} ddlm}m}  |dddd¬«      \  }}t        | d	d
|¬«      }|j                  ||||fg¬«       |j                  «       d   d
   d   }|j                  |«      dd…d	f   }	 |||	«      \  }
}} |||
«      }t        j                  j                  ||d¬«       t        | dd
|¬«      }|j                  ||||fg¬«       |j                  «       d   d
   d   }t        j                  j                  d|d¬«       y)z:Test for PR AUC metric on a binary classification problem.r   ry   )r   Úprecision_recall_curverF   r   r   r   r£   r   r‘   r’   r“   r”   rO   Nr•   r„   r|   r§   )rR   r%   rS   r   r¬   r   r(   rM   Úpredict_probar&   rW   rX   )r   r   r%   r   r¬   r2   r3   r–   rM   Úy_scoreÚ	precisionÚrecallÚ_Úpraucs                 r>   Úrun_pr_auc_binaryr³   H  s  € å4ß;á˜s A°ÀÔF�D€A€qÜ
Ø¨a¸WÈVô€Cð ‡G�GˆAˆq˜Q ˜F˜8€GÔ$Ø×#Ñ#Ó% nÑ5°gÑ>¸rÑB€Là×Ñ Ó"¢1 a 4Ñ(€GÙ1°!°WÓ=Ñ€Iˆv�qÙ�˜	Ó"€Eô ‡J�J×Ñ˜u l¸ÐÔ>ä
Ø¨b¸gÈfô€Cð ‡G�GˆAˆq˜Q ˜F˜8€GÔ$Ø×#Ñ#Ó% nÑ5°gÑ>¸rÑB€LÜ‡J�J×Ñ˜t \¸ÐÕ=r@   )$Ú__doc__Útypingr   r   r   Únumpyr&   r#   Úcompatr   Úcorer   r	   r
   Úsklearnr   r   Útrainingr   Úutilsr   Ústrr?   r^   Úndarrayrd   ri   rl   rw   ÚintrŒ   r—   Úboolr¡   rª   r³   © r@   r>   ú<module>rÁ      s¦  ðÙ #ç 'Ñ 'ã Û å ß <Ñ <ß .Ý Ý ð.Øð.Ø$ð.à	ó.ðb*L cð *L°6ð *L¸dó *LðZ9Ø	‡z�zð9ØŸ*™*ð9Ø-2ð9Ø<DÀRÇZÁZÑ<Pð9à
ó9ðQØ	‡z�zðQØŸ*™*ðQØ-/¯Z©ZðQØAIÈ"Ï*É*ÑAUðQà
óQð9O sð 9O°Fð 9O¸tó 9Oðx#8 Cð #8°Cð #8Àð #8ÈDó #8ðL= #ð =¨vð =¸$ó =ð(48Øð48Ø!$ð48Ø04ð48Ø>Dð48à	ó48ðn ð ¨Vð ¸ó ð0> 3ð >°ð >¸4ô >r@   