
    sii<                         d Z ddlZddlmZ ddlmZmZm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eeeef                  fdZdedededededdfdZdS )zTests for callback functions.    N)product)DictListTuple   )LearningRateScheduler)BoosterDMatrix)cvtrain   )Devicetree_methoddtraindtestdevicereturnc           
         t           }|df|dfg}d}dddd| |d}i }t          |||| |g d	          g|
          }	t          t          t          |d         d                             }
t          |	t                    sJ |
d         |
d         k    sJ dddd| |d}i }t          |||| |g d	          g|
          }	t          t          t          |d         d                             }t          |	t                    sJ |d         |d         k    sJ ddd| |d}i }t          |||| |g d          g|
          }	t          t          t          |d         d                             }t          |	t                    sJ |d         |d         k    sJ |fdt          dt          dt          fd}i }t          |||| ||          g|
          }	t          t          t          |d         d                             }t          |	t                    sJ |d         |d         k    sJ t          dt          |
                    D ]}||         ||         k    sJ t          ||| ||          g           dS )z=Test learning rate scheduler, used by both CPU and GPU tests.evalr      r   r   binary:logisticerror)	max_deptheta	objectiveeval_metricr   r   )g?gffffff?g333333?g      ?)evals	callbacksevals_result)r   learning_rater   r   r   r   r   r   r   r   r   )r   r   r   r   ithroundnum_boost_roundr   c                     || dz   z  S Nr    )r#   r$   s     _/var/www/html/bet.cuttalo.com/ml/venv/lib/python3.11/site-packages/xgboost/testing/callbacks.py	eta_decayz run_eta_decay.<locals>.eta_decay^   s    (Q,//    r   )r   N)r   r   listmapfloat
isinstancer	   intrangelenr   )r   r   r   r   	scheduler	watchlist	num_roundparamr   bsteval_errors_0eval_errors_1eval_errors_2r)   eval_errors_3is                   r(   run_eta_decayr<      se    &I67"34II
 &" E %'L
9111223!  C UL$8$ABBCCMc7#####mB///// &" E L
9111223!  C UL$8$ABBCCMc7#####mB///// &" E L
9\\\**+!  C UL$8$ABBCCMc7#####}R00000 9B 0 0C 0# 0e 0 0 0 0 L
9Y''(!  C UL$8$ABBCCMc7#####}Q/////1c-(()) 4 4Q=#333333ufiIIi,@,@+ABBBBBBr*   c                  D    t          t          ddgg d                    S )z)Test parameters for the leaf output test.approxhist)r   zreg:absoluteerrorreg:quantileerror)r+   r   r'   r*   r(   tree_methods_objsrA   v   s8    v  	
 	
	 	 	r*   r   c           	      `   dt           }|df|dfg}d|d| |d}|dk    rd|d	<   d
t          dt          ffd}t          ||| ||          g          }	d
t          dt          ffd}
t          ||| ||
          g          }|	                    d          }|                    d          }t          j        |          }t          j        |          }|d         d         d         d         d         }|d         d         d         d         d         }|d         |d         k    sJ |d         |d         k    sJ |d         d         d         d         d         }|d         d         d         d         d         }|d         |d         k    sJ |d         |d         k    sJ dS )z&check decay has effect on leaf output.r   r   r   r   r   r"   r@   g333333?quantile_alphar;   r   c                     | dz   z  S r&   r'   r;   r4   s    r(   eta_decay_0z.run_eta_decay_leaf_output.<locals>.eta_decay_0   s    AE""r*   )r   r   c                 $    | dk    rdS | dz   z  S )Nr   g      @r'   rE   s    r(   eta_decay_1z.run_eta_decay_leaf_output.<locals>.eta_decay_1   s     q553AE""r*   json)
raw_formatlearnergradient_boostermodeltreesbase_weightssplit_conditions   N)r   r/   r-   r   save_rawrI   loads)r   r   r   r   r   r2   r3   r5   rF   bst0rH   bst1	bst_json0	bst_json1j0j1
tree_2th_0
tree_2th_1
tree_3th_0
tree_3th_1r4   s                       @r(   run_eta_decay_leaf_outputr^      sH    I%I67"34I " E '''"%#s #u # # # # # # 9[))*  D#s #u # # # # # #
 9[))*  D 00I00I	I		B	I		BI127;GDQGJI127;GDQGJn%N)CCCCC()Z8J-KKKKKI127;GDQGJI127;GDQGJn%N)CCCCC()Z8J-KKKKKKKr*   )__doc__rI   	itertoolsr   typingr   r   r   callbackr   corer	   r
   trainingr   r   utilsr   strr<   rA   r^   r'   r*   r(   <module>rg      si   # #        $ $ $ $ $ $ $ $ $ $ , , , , , , # # # # # # # #                      eCeC%eC.5eC?EeC	eC eC eC eCP4c3h0    8L8L!$8L.58L>E8LOU8L	8L 8L 8L 8L 8L 8Lr*   