
    =[g
                     x    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ededdfd	Zd
eddfdZd
eddfdZy)zTests for learning to rank.    )
ModuleType)AnyN)testingimpltree_method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k7  r0 |d      } ||
|	|||	j"                        }t%        |      dk(  sJ 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k7  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   ffffff?g      @)r   r   )eval_set)r   gpu_histF)shuffle)cvgroups   argskwargsr   c                  (    t         | i |       S )N)float)r    r!   r
   s     R/var/www/html/bid-api/venv/lib/python3.12/site-packages/xgboost/testing/ranking.pyneg_msez#run_ranking_qid_df.<locals>.neg_mse0   s    ($9&9:::    T)r   r   r   disable_default_eval_metricvalidation_0r%      )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   scipyr   r   Xyq_dfrankersvalid_dfs1kfoldresultsr%   r6   X_csris2r
   s                        @r$   run_ranking_qid_dfrU      s   2MsqTUVJAq!Q 
	BBuI]]v;WF
JJr1RAs7N7 wwyHHMM$
JJr11J/ ]]v;WF
JJq!J	b!	B::a j $U3!&"aE"&&I7|q   ;s ;c ;e ; ]]$(	F JJr11J/LL1%E::eV002>B9MbQRRR j ''*^^""00E!''!*,=>,=qCF,=> 1 
 5	K
 	

2q\\"a zz"a   	z)C	D

2qQF8
, 
E	D ? 
E	Ds   /K
=K##K,devicec                    ddl m} t        j                  dd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onehoti  )sizer   T)enable_categoricalrV   g?r   N)r/   r   r0   make_categoricalr9   randomdefault_rngchoicerA   sortr3   r4   r5   r6   )
rV   r   rG   rH   rngr   ltrr6   scoresrM   s
             r$   run_ranking_categoricalre   P   s    7"1UDAq ))


%C
**QQWWQZ*
(C
''#,CAeH
--4
?CGGAqMIIaOE3;;
--4
?C S!Q'F3ww r&   c                 z   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                         }|d
   d   d   |d
   d   d   kD  sJ y)zTest normalization.i      @   r   zrank:pairwise)	objectiver   rV   )r   r   eval_qidF)ri   r   rV   lambdarank_normalizationr(   zndcg@32r)   N)r0   r1   r3   r4   r5   r<   )rV   rG   rH   r   rJ   rc   e0e1s           r$   run_normalizationrn   i   s    ;;tQA.LAq#q
--/&
QCGGAqcaVHuG=				B
--!!&	C GGAqcaVHuG=				Bni(,r./A)/LR/PPPPr&   )__doc__typesr   typingr   numpyr9   rC   xgboostr3   r   r0   rB   rU   re   rn    r&   r$   <module>ru      sb    !      !@-Z @-c @-d @-FC D 2Qc Qd Qr&   