Ë
    °Ó^j2  ã                   óœ   — d Z ddlmZ ddlmZ ddlZddlZddlZ	ddlm
Z ddlmZ ded	ed
eddfd„Zd
eddfd„Zd
eddfd„Zd
ededdfd„Zy)zTests for learning to rank.é    )Ú
ModuleType)ÚAnyN)Útestingé   )ÚDeviceÚimplÚtree_methodÚdeviceÚreturnc           	      óò  ‡— ddl }ddlmŠ ddlm}m} t        j                  dddd¬	«      \  }}}}	| j                  |«      }
||
d
<   t        j                  dd||¬«      }|j                  |
|«       |j                  |
|«      }|dkD  sJ ‚|
j                  «       }d|j                  d<   |j                  |
|||fg¬«       t        j                  dd||¬«      }|j                  |||¬«       |j                  |
|«      }t        j                   ||«      sJ ‚|dk(  r0 |d¬«      } |||
|||
j"                  ¬«      }t%        |«      dk(  sJ ‚dt&        dt&        dt&        dt(        fˆfd„}t        j                  d|||d¬«      }|j                  |
|||fg¬«       |j                  ||«      }t        j                   ||j+                  «       d   d   d    «      sJ ‚|dk(  rÉ|j,                  j/                  |«      }| j                  j,                  j1                  |t3        |j4                  d!   «      D �cg c]  }t7        |«      ‘Œ c}¬"«      }
||
d
<   t        j                  dd||¬«      }|j                  |
|«       |j                  |
|«      }t        j                   ||«      sJ ‚t9        j:                  t<        d#¬$«      5  |j                  |
|||fg¬«       ddd«       yc c}w # 1 sw Y   yxY w)%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é   Úy_trueÚy_predÚkwargsr   c                 ód   •— t        | d«      r| j                  «       } t         ‰| |fi |¤Ž«       S )NÚget)Úhasattrr'   Úfloat)r#   r$   r%   r   s      €úb/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/xgboost/testing/ranking.pyÚneg_msez#run_ranking_qid_df.<locals>.neg_mse7   s3   ø€ Ü�6˜5Ô!Ø—Z‘Z“\ˆFÜÑ(¨°ÑB¸6ÑBÓCÐCÐCó    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+   r;   ÚX_csrÚiÚs2r   s                         @r*   Úrun_ranking_qid_dfrZ      sÚ  ø€ ãÝ2ßMä—‘ s°qÈÐTUÔV�J€A€qˆ!ˆQð 
�‰˜Ó	€BØ€B€u�IÜ�]‰]Ø F¸ÈFô€Fð ‡J�Jˆr�1ÔØ�‰�R˜Ó€AØˆsŠ7€Nˆ7ð �w‰w‹y€HØ€H‡M�M�$ÑØ
‡J�Jˆr�1 ¨1 ˜€JÔ/ô �]‰]Ø F¸ÈFô€Fð ‡J�Jˆq�!˜€JÔØ	�‰�b˜!Ó	€BÜ�:‰:�a˜ÔÐÐð �‚á$¨UÔ3ˆÙ! &¨"¨a°EÀ"Ç&Á&ÔIˆÜ�7‹|˜qÒ Ð Ð ðDœð D¤Sð D´Cð D¼Eõ Dô
 �]‰]ØØØØØ$(ô€Fð ‡J�Jˆr�1 ¨1 ˜€JÔ/Ø�L‰L˜ 1Ó%€EÜ�:‰:�e˜V×0Ñ0Ó2°>ÑBÀ9ÑMÈbÑQÔRÐRÐRð �‚à—‘×'Ñ'¨Ó*ˆØ�^‰^×"Ñ"×0Ñ0Ø¬E°!·'±'¸!±*Ó,=Ö> qœC �FÒ>ð 1ó 
ˆð ˆˆ5‰	Ü—‘ØØØ#Øô	
ˆð 	�
‰
�2�qÔØ�\‰\˜"˜aÓ ˆÜ�z‰z˜"˜aÔ Ð Ð ä	�‰”zÐ)CÔ	Dñ -Ø�
‰
�2�q Q¨ F 8ˆ
Ô,÷-ð -ùò ?÷-ð -ús   È8K(
ËK-Ë-K6c                 óx  — ddl m} t        j                  dddd¬«      \  }}t	        j
                  t	        j                  ||j                  «       z
  «      j                  t        «      dd«      }t        j                  j                  d	«      }|j                  d|j                  d   ¬
«      }t	        j                  |«      }||d<   t        j                   d| ¬«      }|j#                  ||«       |j%                  ||«      }|dkD  sJ ‚t        j                   d| ¬«      } ||||«      }|D ]	  }	|	dkD  rŒ	J ‚ y)z#Test LTR with categorical features.r   )r   i   é
   r   F)r   r   Ún_categoriesÚonehotNiÊ  )Úsizer   T)Úenable_categoricalr
   gÍÌÌÌÌÌì?r   )r4   r   r5   Úmake_categoricalr>   ÚclipÚroundÚminÚastypeÚintÚrandomÚdefault_rngÚchoicerF   Úsortr8   r9   r:   r;   )
r
   r   rL   rM   Úrngr   Últrr;   ÚscoresrR   s
             r*   Úrun_ranking_categoricalrn   ]   s
  € å7ä×ÑØ "°1¸Uô�D€A€qô 	�‰”—‘˜˜QŸU™U›W™Ó%×,Ñ,¬SÓ1°1°dÓ;€AÜ
�)‰)×
Ñ
 Ó
%€CØ
�*‰*�Q˜QŸW™W Q™Zˆ*Ó
(€CÜ
�'‰'�#‹,€CØ€A€e�Hä
�-‰-¨4¸Ô
?€CØ‡G�GˆAˆq„MØ�I‰I�a˜‹O€EØ�3Š;Ðˆ;ä
�-‰-¨4¸Ô
?€Cñ ˜S ! QÓ'€FØò ˆØ�3‹wˆˆwñr,   c                 óÐ  — t        j                  dddd«      \  }}}}t        j                  dd| ¬«      }|j	                  |||||fg|g¬«       |j                  «       }t        j                  dd| d¬	«      }|j	                  |||||fg|g¬«       |j                  «       }t        j                  dd| d
d¬«      }|j	                  |||||fg|g¬«       |j                  «       }t        j                  dd| d
d¬«      }|j	                  |||||fg|g¬«       |j                  «       }|d   d   d   |d   d   d   k(  sJ ‚t        j                  dd| d
dd¬«      }|j	                  |||||fg|g¬«       |j                  «       }t        j                  dd| d
dd¬«      }|j	                  |||||fg|g¬«       |j                  «       }|d   d   d   |d   d   d   k7  sJ ‚y)zTest normalization.i   é   é@   r   úrank:pairwise©Ú	objectiver   r
   ©r   r   Úeval_qidF)rt   r   r
   Úlambdarank_normalizationÚmeanT)rt   r   r
   Úlambdarank_pair_methodrw   r.   r   r/   )rt   r   r
   ry   rw   Úlambdarank_num_pair_per_sampleN)r5   r6   r8   r9   r:   rA   )r
   rL   rM   r   rO   rl   Úe0Úe1s           r*   Úrun_normalizationr}   x   s2  € ä—;‘;˜t Q¨¨AÓ.�L€A€qˆ#ˆqä
�-‰- /ÀÈ&Ô
Q€CØ‡G�GˆAˆq�c a¨ V H¸°u€GÔ=Ø	×	Ñ	Ó	€Bä
�-‰-Ø!ØØØ!&ô	€Cð ‡G�GˆAˆq�c a¨ V H¸°u€GÔ=Ø	×	Ñ	Ó	€Bô �-‰-Ø!ØØØ%Ø!%ô€Cð ‡G�GˆAˆq�c a¨ V H¸°u€GÔ=Ø	×	Ñ	Ó	€Bä
�-‰-Ø!ØØØ%Ø!&ô€Cð ‡G�GˆAˆq�c a¨ V H¸°u€GÔ=Ø	×	Ñ	Ó	€BàˆnÑ˜fÑ% bÑ)¨R°Ñ-?ÀÑ-GÈÑ-KÒKÐKÐKô �-‰-Ø!ØØØ%Ø!%Ø'(ô€Cð ‡G�GˆAˆq�c a¨ V H¸°u€GÔ=Ø	×	Ñ	Ó	€Bä
�-‰-Ø!ØØØ%Ø!&Ø'(ô€Cð ‡G�GˆAˆq�c a¨ V H¸°u€GÔ=Ø	×	Ñ	Ó	€BØˆnÑ˜fÑ% bÑ)¨R°Ñ-?ÀÑ-GÈÑ-KÒKÐKÑKr,   rt   c                 ó&  — |dk(  rt        j                  dddd¬«      \  }}}}nt        j                  dddd«      \  }}}}t        j                  |d| ¬«      }|j	                  |||||fg|g¬	«       |j                  «       }t        j                  d
d| d¬«      }|j	                  |||||fg|g¬	«       |j                  «       }t        |d   j                  «       «      d   d   t        |d   j                  «       «      d   d   }
}	|	|
k7  sJ ‚y)z(Test normalization by score differences.zrank:mapi   rp   rq   r   )r   r   rs   ru   rr   F)rt   r   r
   Úlambdarank_score_normalizationr.   r/   N)r5   r6   r8   r9   r:   rA   ÚlistÚvalues)r
   rt   rL   rM   r   rO   rl   r{   r|   Úm0Úm1s              r*   Úrun_score_normalizationr„   ¹   s  € à�JÒä—{‘{ 4¨¨B¸Ô:‰ˆˆ1ˆc‘1ä—{‘{ 4¨¨B°Ó2‰ˆˆ1ˆc�1Ü
�-‰- )¸!ÀFÔ
K€CØ‡G�GˆAˆq�c a¨ V H¸°u€GÔ=Ø	×	Ñ	Ó	€Bä
�-‰-Ø!ØØØ',ô	€Cð ‡G�GˆAˆq�c a¨ V H¸°u€GÔ=Ø	×	Ñ	Ó	€Bô 	ˆR�Ñ×&Ñ&Ó(Ó)¨"Ñ-¨bÑ1ÜˆR�Ñ×&Ñ&Ó(Ó)¨"Ñ-¨bÑ1ð 	€Bð �Š8€O‰8r,   )Ú__doc__Útypesr   Útypingr   Únumpyr>   rH   Úxgboostr8   r   r5   Úutilsr   rG   rZ   rn   r}   r„   © r,   r*   ú<module>rŒ      sˆ   ðá !å Ý ã Û ã Ý !å ðJ-˜Zð J-°cð J-À6ð J-Èdó J-ðZ Cð ¨Dó ð6>L˜cð >L dó >LðB Cð °Cð ¸Dô r,   