
    sii "              
       
   d Z ddl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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dS )zTests for evaluation metrics.    )DictListN   )concat)DMatrixQuantileDMatrix_parse_eval_str)XGBClassifier	XGBRanker)train   )Devicetree_methoddevicereturnc           	         t          j        d          }|                    dddd          \  }}t          j        |j                  }t          d| |          }|                    |||	           |                    d
ddd          \  }}|                    d           t          |
                                                    t          ||          dfg                    }|d         d         }g }	g }
d}g }t          |          D ]}|                    d
ddd          \  }}|	                    |           |
                    |           t          j        |j        |t          j                  }|                    |           t#          |          }t#          |	          }t#          |
          }t          |
                                                    t          |||	          dfg                    }|d         d                             d          sJ |d         d         }||k    sJ dS )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                   ]/var/www/html/bet.cuttalo.com/ml/venv/lib/python3.11/site-packages/xgboost/testing/metrics.pycheck_precision_scorer>      sV    "#566H''1 (  DAq (
!
!
!C
F
K
K
KCGGAqcG ''!qt (  DAq NNxN(((S__..771t?T>U7VVWWFQilGFFN!F>""  ++a14 , 
 
1 	aaG!'aryAAAa
..CvAvA""71aS+A+A+A4*H)I"JJ F !9Q<  *****QilGg    c                   	
 ddl m} ddlm
 t          j                            d          } |dd|          \  }t          |          }i }t          | dd	|d
||dfg|          }|	                    |           
d	          }t          j
                            |d         d         d         |           g d	t          | d	d|d||dfg|          }|	                    |          t	          j        	
fdt          d          D                       }t          j
                            |d         d         d         |           dS )zTest for the `quantile` loss.r   )make_regression)mean_pinball_loss      r   )r   quantileg333333?)r   r   quantile_alphar   Train)r   evals_resultalpha)g      ?g      ?g      ?zreg:quantileerror)r   r   rF   	objectiver   c                 L    g | ] } d d |f         |                   !S )NrI    ).0r:   rJ   rB   predtr2   s     r=   
<listcomp>z(check_quantile_error.<locals>.<listcomp>h   s<    MMMq		1eAAAqDkq	:	:	:MMMr?   N)sklearn.datasetsrA   sklearn.metricsrB   r%   randomRandomStater   r   inplace_predicttestingassert_allclosemeanr+   )r   r   rA   rngr1   r   rH   boosterlossrJ   rB   rP   r2   s            @@@@r=   check_quantile_errorr]   @   s   000000111111
)


#
#C?3444DAq	A		B$&L&%!		
 	
 	G}o!
 
 
G ##A&&EQS111DJ|G4Z@DdKKKE&%#,	
 	
 	G}o!  G ##A&&E7MMMMMMME!HHMMM D J|G4Z@DdKKKKKr?   r   c                     ddl m} ddlm} t          j                            d          }d} ||||d|          \  }}t          ||          }	t          | |ddd	|	d
          }
|
	                    |	          } |||          }t          |
                    |	                              d          d
                   }t          j                            ||d            |j        |j         }|
	                    t          |                    } |||          }t          |
                    t          ||                                        d          d
                   }t          j                            ||d           dS )z6TestROC AUC metric on a binary classification problem.r   r$   roc_auc_scorer   
   )n_informativen_redundantr   auczbinary:logistic)r   r   r   rL   r   num_boost_round:ư>rtolN)rR   r$   rS   ra   r%   rT   rU   r   r   predictfloatevalsplitrW   rX   randnr   )r   r   r   r$   ra   rZ   r   r1   r2   r   r[   scoreskl_aucre   s                 r=   run_roc_auc_binaryrs   m   s   444444------
)


%
%CJ   DAq 
AB& *		
 	
 		 	 	G OOBEmAu%%G
R  &&s++A.
/
/CJw$777	17AOOGAJJ''EmAu%%G
WQ]]++11#66q9
:
:CJw$77777r?   c                    ddl m}  |ddddd          \  }}t          | d	d
|          }|                    ||||fg           |                                d         d
         d         }t          | dd
|          }|                    ||||fg           |                                d         d
         d         }t
          j                            d|d           dS )z?Test for PR AUC metric on a multi-class classification problem.r   r_   @         r   r   )rc   r   r   r   aucprr   r   r   r   r*   validation_0rK   rb   g      ?{Gz?rj   N)rR   r$   r
   r'   rH   r%   rW   rX   )r   r   r$   r1   r2   clfrH   s          r=   run_pr_auc_multir~      s   444444r2Q!RVWWWDAq
aWV  C GGAqQF8G$$$##%%n5g>rBL bgf  C GGAqQF8G$$$##%%n5g>rBLJsLt<<<<<r?   weightedc           	         ddl m} ddlm} t          j                            d          }d}d} ||||d||          \  }	}
|rD|                    |          }||                                z  }||	                                z  }nd}t          |	|
|	          }t          | d
d||d|d          }|                    |          } ||
|d|d          }t          |                    |                              d          d                   }t          j                            ||d            |j        |	j         }	|                    t          |	|	                    } ||
|d|d          }t          |                    t          |	|
|	                                        d          d                   }t          j                            ||d           dS )z@Test for ROC AUC metric on a multi-class classification problem.r   r_   r`   r   rb   r   )rc   rd   r   r   N)weightre   zmulti:softprob)r   r   rL   	num_classr   r   rf   r   ovr)averagesample_weightmulti_classrh   ri   rj   gh㈵>)rR   r$   rS   ra   r%   rT   rU   rp   minmaxr   r   rl   rm   rn   ro   rW   rX   r   )r   r   r   r   r$   ra   rZ   r   r   r1   r2   weightsr   r[   rq   rr   re   s                    r=   run_roc_auc_multir      s1    544444------
)


%
%CJI   DAq  ))I&&7;;== 7;;== 	Ag	&	&	&B& )"	
 	
 	
 
 
G OOBEm	5*G  G R  &&s++A.
/
/CJw$777	17AOOGAg66677Em	5*G  G WQ':::;;AA#FFqI
J
JCJw$77777r?   c                 "   ddl m}  |dddd          \  }}t          | dd	d
|          }t          j        g d          }|                    |||||fg|g           |                                d         d
         }|d         dk    sJ dS )z,Test for PR AUC metric on a ranking problem.r   r_   rD   r   r   r   r   r   rv   zrank:pairwiserx   )r   r   rL   r   r   )    r   ru   )groupr*   
eval_groupr{   rK   Gz?N)rR   r$   r   r%   arrayr'   rH   )r   r   r$   r1   r2   r3   groupsresultss           r=   run_pr_auc_ltrr      s    444444sAFFFDAq
!  C Xlll##FGG		a&8       09G2;$r?   c                    ddl m} ddlm}m}  |dddd          \  }}t          | d	d
|          }|                    ||||fg           |                                d         d
         d         }|                    |          ddd	f         }	 |||	          \  }
}} |||
          }t          j
                            ||d           t          | dd
|          }|                    ||||fg           |                                d         d
         d         }t          j
                            d|d           dS )z:Test for PR AUC metric on a binary classification problem.r   r_   )re   precision_recall_curverD   r   r   r   r   r   rx   ry   rz   r{   rK   Nr|   rj   rb   r   )rR   r$   rS   re   r   r
   r'   rH   predict_probar%   rW   rX   )r   r   r$   re   r   r1   r2   r}   rH   y_score	precisionrecall_praucs                 r=   run_pr_auc_binaryr      s   444444;;;;;;;;sAFFFDAq
aWV  C GGAqQF8G$$$##%%n5g>rBL""111a4(G11!W==IvqC	""E Jul>>>
bgf  C GGAqQF8G$$$##%%n5g>rBLJt\=====r?   )__doc__typingr   r   numpyr%   r"   compatr   corer   r   r	   sklearnr
   r   trainingr   utilsr   strr>   r]   intrs   r~   boolr   r   r   rN   r?   r=   <module>r      s   # #                    < < < < < < < < < < . . . . . . . .            ..$.	. . . .b*Lc *L6 *Ld *L *L *L *LZ#8C #8C #8 #8D #8 #8 #8 #8L=# =v =$ = = = =(4848!$480448>D48	48 48 48 48n V     0>3 > >4 > > > > > >r?   