
    sii              
       r    d Z ddlmZ ddlZddlmZ ddlm	Z	m
Z
 ddlmZmZ dd	lmZ d
edede
de
ddf
dZdS )z(Tests for basic features of the Booster.    )TupleN)testing   )BoosterDMatrix)cvtrain   )Devicetree_methoddevicedtraindtestreturnc           	         ddd| |d}|df|dfg}d}dt           j        d	t          d
t          t          t           j        f         fd}t          ||||t          j        |          }t          |t                    sJ |                    |          |                                t          fdt          t                              D                       t!          t                              z  }	|	dk     sJ t#          |||ddt          j        |           dt           j        d	t          d
t          t          t           f         fd}
t          ||||t          j        |
d          }|                    |          t          fdt          t                              D                       t!          t                              z  }|	|k    sJ dS )z,Tests custom objective and metric functions.r   r
   zreg:logistic)	max_deptheta	objectiver   r   evalr	   
   predsr   r   c                 0    t          j        | |d          S )NT)rev_link)tmeval_error_metric)r   r   s     b/var/www/html/bet.cuttalo.com/ml/venv/lib/python3.11/site-packages/xgboost/testing/basic_models.py	evalerrorz'run_custom_objective.<locals>.evalerror   s    #E6DAAAA    )evalsobjcustom_metricc              3   b   K   | ])}t          |         d k              |         k    %dV  *dS g      ?r
   Nint).0ilabelsr   s     r   	<genexpr>z'run_custom_objective.<locals>.<genexpr>.   sA      OOAc%(S..A.AVAY.N.Na.N.N.N.NOOr   g?   r   )nfoldseedr    r!   c                     |                                 }ddt          j        |            z   z  } dt          t	          || dk    k                        t          |          z  fS )Ng      ?errorg        )	get_labelnpexpfloatsumlen)r   r   r(   s      r   neg_evalerrorz+run_custom_objective.<locals>.neg_evalerror?   s[    !!##sRVUF^^+,c&US["9::;;c&kkIIIr   T)r   r    r!   maximizec              3   b   K   | ])}t          |         d k              |         k    %dV  *dS r#   r$   )r&   r'   r(   preds2s     r   r)   z'run_custom_objective.<locals>.<genexpr>N   sJ        VAY_)=)=)J)J)J)J)J)J r   N)r0   ndarrayr   r   strfloat64r	   r   	logregobj
isinstancer   predictr/   r3   ranger4   r2   r   )r   r   r   r   param	watchlist	num_roundr   bsterrr5   bst2err2r(   r   r8   s                @@@r   run_custom_objectiverG      sV    #" E 67"34IIB BW BsBJ9O B B B B L  C c7#####KKE__F
OOOOOs5zz**OOO
O
ORWE

S S C 9999 L   JRZ J JU3:=N J J J J
 L#  D \\%  F     V%%    c&kkD $;;;;;;r   )__doc__typingr   numpyr0   xgboostr   r   corer   r   trainingr   r	   utilsr   r:   rG    r   r   <module>rP      s    . .           ! ! ! ! ! ! # # # # # # # #                      CCC C 	C
 
C C C C C Cr   