ó
    uñ:i¯  ã                   ó¤   • S r SSKJr  SSKJr  SSKrSSKrSSKr	SSKJ
r  SSKJr  S\S	\S
\SS4S jrS
\SS4S jrS
\SS4S jrS
\S\SS4S jrg)zTests for learning to rank.é    )Ú
ModuleType)ÚAnyN)Útestingé   )ÚDeviceÚimplÚtree_methodÚdeviceÚreturnc           	      ó¸  ^• SSK nSSKJm  SSKJnJn  [        R                  " SSSSS	9u  pgp‰U R                  U5      n
XŠS
'   [        R                  " SSXS9nUR                  X§5        UR                  X§5      nUS:”  d   eU
R                  5       nSUR                  S'   UR                  X§X×4/S9  [        R                  " SSXS9nUR                  XgUS9  UR                  X§5      n[        R                   " XÎ5      (       d   eUS:X  a)  U" SS9nU" XºXU
R"                  S9n[%        U5      S:X  d   eS[&        S[&        S[(        4U4S jjn[        R                  " SUUUSS9nUR                  X§X×4/S9  UR                  X×5      n[        R                   " UUR+                  5       S   S   S   5      (       d   eUS:X  aÊ  UR,                  R/                  U5      nU R                  R,                  R1                  U[3        UR4                  S    5       Vs/ s H  n[7        U5      PM     snS!9n
XŠS
'   [        R                  " SSUUS9nUR                  X§5        UR                  X§5      n[        R                   " UU5      (       d   e[8        R:                  " [<        S"S#9   UR                  X§Xg4/S9  SSS5        gs  snf ! , (       d  f       g= f)$z$Test ranking with qid packed into X.r   N)Úmean_squared_error)ÚStratifiedGroupKFoldÚcross_val_scoreé€   é   é   é   )Ú	n_samplesÚ
n_featuresÚn_query_groupsÚmax_relÚqidÚndcg)Ún_estimatorsÚeval_metricr	   r
   çffffffæ?g      @)r   r   )Úeval_set)r   ÚcpuF)Úshuffle)ÚcvÚgroupsé   ÚargsÚkwargsr   c                  ó(   >• [        T" U 0 UD65      * $ )N)Úfloat)r#   r$   r   s     €ÚZ/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/xgboost/testing/ranking.pyÚneg_mseÚ#run_ranking_qid_df.<locals>.neg_mse6   s   ø€ ÜÑ(¨$Ð9°&Ñ9Ó:Ð:Ð:ó    T)r   r   r	   r
   Údisable_default_eval_metricÚvalidation_0r(   éÿÿÿÿr   )ÚcolumnszEither `group` or `qid`.)Úmatch)Úscipy.sparseÚsklearn.metricsr   Úsklearn.model_selectionr   r   ÚtmÚmake_ltrÚ	DataFrameÚxgbÚ	XGBRankerÚfitÚscoreÚcopyÚilocÚnpÚiscloser   Úlenr   r&   Úevals_resultÚsparseÚ
csr_matrixÚfrom_spmatrixÚrangeÚshapeÚstrÚpytestÚraisesÚ
ValueError)r   r	   r
   Úscipyr   r   ÚXÚyÚqÚ_ÚdfÚrankerÚsÚvalid_dfÚs1ÚkfoldÚresultsr(   r9   ÚX_csrÚiÚs2r   s                         @r'   Úrun_ranking_qid_dfrX      sª  ø€ ãÝ2ßMä—’ s°qÈÐTUÑV�J€Aˆ!ð 
�‰˜Ó	€BØ€u�IÜ�]Š]Ø F¸ñ€Fð ‡J�JˆrÔØ�‰�RÓ€AØˆs‹7€Nˆ7ð �w‰w‹y€HØ€H‡M�M�$ÑØ
‡J�Jˆr  ˜€JÑ/ô �]Š]Ø F¸ñ€Fð ‡J�Jˆq˜€JÑØ	�‰�bÓ	€BÜ�:Š:�a×ÑÐÐð �ƒá$¨UÑ3ˆÙ! &¨aÀ"Ç&Á&ÑIˆÜ�7‹|˜qÓ Ð Ð ð;”sð ;¤cð ;¬e÷ ;ô �]Š]ØØØØØ$(ñ€Fð ‡J�Jˆr  ˜€JÑ/Ø�L‰L˜Ó%€EÜ�:Š:�e˜V×0Ñ0Ó2°>ÑBÀ9ÑMÈbÑQ×RÑRÐRÐRð �ƒà—‘×'Ñ'¨Ó*ˆØ�^‰^×"Ñ"×0Ñ0Ø¬E°!·'±'¸!±*Ô,=Ó>Ò,= qœC žFÑ,=Ñ>ð 1ð 
ˆð ˆ5‰	Ü—’ØØØ#Øñ	
ˆð 	�
‰
�2ÔØ�\‰\˜"Ó ˆÜ�zŠz˜"˜a× Ñ Ð Ð ä	�Š”zÐ)CÓ	DØ�
‰
�2 Q F 8ˆ
Ñ,÷ 
EÐ	Dùò ?÷ 
EÕ	Dús   ÈK
Ê*KË
Kc                 óÊ  • SSK Jn  [        R                  " SSSSS9u  p#[        R
                  R                  S5      nUR                  SUR                  S   S	9n[        R                  " U5      nXRS
'   [        R                  " SU S9nUR                  X#5        UR                  X#5      nUS:”  d   e[        R                  " SU S9nU" XbU5      nU H  n	U	S:”  a  M   e   g)z#Test LTR with categorical features.r   )r   i   é
   r   F)r   r   Ún_categoriesÚonehotiÊ  )Úsizer   T)Úenable_categoricalr
   gÍÌÌÌÌÌì?r   N)r2   r   r3   Úmake_categoricalr<   ÚrandomÚdefault_rngÚchoicerD   Úsortr6   r7   r8   r9   )
r
   r   rJ   rK   Úrngr   Últrr9   ÚscoresrP   s
             r'   Úrun_ranking_categoricalrg   Z   sË   € å7ä×ÒØ "°1¸Uñ�D€Aô �)‰)×
Ñ
 Ó
%€CØ
�*‰*�Q˜QŸW™W Q™Zˆ*Ð
(€CÜ
�'Š'�#‹,€CØ€e�Hä
�-Š-¨4¸Ñ
?€CØ‡G�GˆA„MØ�I‰I�a‹O€EØ�3‹;Ðˆ;ä
�-Š-¨4¸Ñ
?€Cñ ˜S QÓ'€FÛˆØ�3�wˆˆwò r*   c           	      ó²  • [         R                  " SSSS5      u  pp4[        R                  " SSU S9nUR	                  XX1U4/U/S9  UR                  5       n[        R                  " SSU SS	9nUR	                  XX1U4/U/S9  UR                  5       nUS
   S   S   US
   S   S   :”  d   e[        R                  " SSU SSS9nUR	                  XX1U4/U/S9  UR                  5       n[        R                  " SSU SSS9nUR	                  XX1U4/U/S9  UR                  5       nUS
   S   S   US
   S   S   :X  d   e[        R                  " SSU SSSS9nUR	                  XX1U4/U/S9  UR                  5       n[        R                  " SSU SSSS9nUR	                  XX1U4/U/S9  UR                  5       nUS
   S   S   US
   S   S   :w  d   eg)zTest normalization.i   é   é@   r   úrank:pairwise©Ú	objectiver   r
   ©r   r   Úeval_qidF)rm   r   r
   Úlambdarank_normalizationr,   zndcg@32r-   ÚmeanT)rm   r   r
   Úlambdarank_pair_methodrp   r   )rm   r   r
   rr   rp   Úlambdarank_num_pair_per_sampleN)r3   r4   r6   r7   r8   r?   )r
   rJ   rK   r   rM   re   Úe0Úe1s           r'   Úrun_normalizationrv   s   sB  € ä—;’;˜t Q¨¨AÓ.�L€Aˆ#ä
�-Š- /ÀÈ&Ñ
Q€CØ‡G�GˆA�c¨ V H¸°u€GÑ=Ø	×	Ñ	Ó	€Bä
�-Š-Ø!ØØØ!&ñ	€Cð ‡G�GˆA�c¨ V H¸°u€GÑ=Ø	×	Ñ	Ó	€BØˆnÑ˜iÑ(¨Ñ,¨r°.Ñ/AÀ)Ñ/LÈRÑ/PÓPÐPÐPô �-Š-Ø!ØØØ%Ø!%ñ€Cð ‡G�GˆA�c¨ V H¸°u€GÑ=Ø	×	Ñ	Ó	€Bä
�-Š-Ø!ØØØ%Ø!&ñ€Cð ‡G�GˆA�c¨ V H¸°u€GÑ=Ø	×	Ñ	Ó	€BàˆnÑ˜fÑ% bÑ)¨R°Ñ-?ÀÑ-GÈÑ-KÓKÐKÐKô �-Š-Ø!ØØØ%Ø!%Ø'(ñ€Cð ‡G�GˆA�c¨ V H¸°u€GÑ=Ø	×	Ñ	Ó	€Bä
�-Š-Ø!ØØØ%Ø!&Ø'(ñ€Cð ‡G�GˆA�c¨ V H¸°u€GÑ=Ø	×	Ñ	Ó	€BØˆnÑ˜fÑ% bÑ)¨R°Ñ-?ÀÑ-GÈÑ-KÓKÐKÑKr*   rm   c                 ó   • US:X  a  [         R                  " SSSSS9u  p#pEO[         R                  " SSSS5      u  p#pE[        R                  " USU S9nUR	                  X#XBU4/U/S	9  UR                  5       n[        R                  " S
SU SS9nUR	                  X#XBU4/U/S	9  UR                  5       n[        US   R                  5       5      S   S   [        US   R                  5       5      S   S   p©Xš:w  d   eg)z(Test normalization by score differences.zrank:mapi   ri   rj   r   )r   r   rl   rn   rk   F)rm   r   r
   Úlambdarank_score_normalizationr,   r-   N)r3   r4   r6   r7   r8   r?   ÚlistÚvalues)r
   rm   rJ   rK   r   rM   re   rt   ru   Úm0Úm1s              r'   Úrun_score_normalizationr}   µ   s  € à�JÓä—{’{ 4¨¨B¸Ñ:‰ˆˆc�1ä—{’{ 4¨¨B°Ó2‰ˆˆcÜ
�-Š- )¸!ÀFÑ
K€CØ‡G�GˆA�c¨ V H¸°u€GÑ=Ø	×	Ñ	Ó	€Bä
�-Š-Ø!ØØØ',ñ	€Cð ‡G�GˆA�c¨ V H¸°u€GÑ=Ø	×	Ñ	Ó	€Bô 	ˆR�Ñ×&Ñ&Ó(Ó)¨"Ñ-¨bÑ1ÜˆR�Ñ×&Ñ&Ó(Ó)¨"Ñ-¨bÑ1ð 	ð ‹8€O‰8r*   )Ú__doc__Útypesr   Útypingr   Únumpyr<   rF   Úxgboostr6   r   r3   Úutilsr   rE   rX   rg   rv   r}   © r*   r'   Ú<module>r…      sˆ   ðá !Ý Ý ã Û ã Ý !å ðH-˜Zð H-°cð H-À6ð H-Èdô H-ðV Cð ¨Dô ð2?L˜cð ?L dô ?LðD Cð °Cð ¸Dõ r*   