Ë
    °Ó^j  ã            
       ó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     úg/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/xgboost/testing/basic_models.pyÚ	evalerrorz'run_custom_objective.<locals>.evalerror   s   € Ü×#Ñ# E¨6¸DÔ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)   øè ø€ ÒO�A¬c°%¸±(¸S±.Ó.AÀVÈAÁYÓ.NŒaÑ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   € Ø×!Ñ!Ó#ˆØ�sœRŸV™V U F›^Ñ+Ñ,ˆØœœc &¨U°S©[Ñ"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.   øè ø€ ò Ø¬¨V°A©Y¸©_Ó)=ÀÈÁÓ)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ð ˜� 6¨7Ð"3Ð4€IØ€IðBœŸ™ð B¬Wð B¼¼sÄBÇJÁJ¸Ñ9Oó Bô ØØØØÜ�L‰LØô€Cô �cœ7Ô#Ð#Ð#Ø�K‰K˜Ó€EØ�_‰_Ó€FÜ
ÔOœœs 5›zÓ*ÔOÓ
OÔRWÜˆE‹
óSñ €Cð �Š9Ðˆ9ô ØØØØØÜ�L‰LØõðJœRŸZ™Zð J´ð J¼UÄ3ÌÀ:Ñ=Nó Jô
 ØØØØÜ�L‰LØ#Øô€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   