
    ^i              
       p    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y)z(Tests for basic features of the Booster.    )TupleN)testing   )BoosterDMatrix)cvtrain   )Devicetree_methoddevicedtraindtestreturnc           	      H   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 |j                  |      |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      }|j                  |      t        fdt        t                    D              t!        t                    z  }|	|k(  sJ y)z,Tests custom objective and metric functions.r   r
   zreg:logistic)	max_deptheta	objectiver   r   evalr	   
   predsr   r   c                 2    t        j                  | |d      S )NT)rev_link)tmeval_error_metric)r   r   s     ]/var/www/html/hubwallet-dev/venv/lib/python3.12/site-packages/xgboost/testing/basic_models.py	evalerrorz'run_custom_objective.<locals>.evalerror   s    ##E6DAA    )evalsobjcustom_metricc              3   R   K   | ]  }t        |   d kD        |   k7  sd   ywg      ?r
   Nint).0ilabelsr   s     r   	<genexpr>z'run_custom_objective.<locals>.<genexpr>.   s)     OAc%(S..AVAY.NaO   ''g?   r   )nfoldseedr    r!   c                     |j                         }ddt        j                  |        z   z  } dt        t	        || dkD  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?   sP    !!#sRVVUF^+,c&US["9:;c&kIIIr   T)r   r    r!   maximizec              3   R   K   | ]  }t        |   d kD        |   k7  sd   ywr#   r$   )r&   r'   r(   preds2s     r   r)   z'run_custom_objective.<locals>.<genexpr>N   s.      VAY_)=)Jr*   N)r1   ndarrayr   r   strfloat64r	   r   	logregobj
isinstancer   predictr0   r4   ranger5   r3   r   )r   r   r   r   param	watchlist	num_roundr   bsterrr6   bst2err2r(   r   r9   s                @@@r   run_custom_objectiverH      s    #"E 67"34IIB BW BsBJJ9O B LLC c7###KKE__F
Os5z*O
ORWE
S C 99 LLJRZZ J JU3:=N J
 LL#D \\% F V% c&kD $;;r   )__doc__typingr   numpyr1   xgboostr   r   corer   r   trainingr   r	   utilsr   r;   rH    r   r   <module>rQ      sS    .   ! #   CCC C 	C
 
Cr   