Ë
    °Ó^j<  ã                   óÀ   — 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y)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   kD  sJ ‚dddd| |dœ}i }t        |||| |g d	¢«      g|¬
«      }	t        t        t        |d   d   «      «      }t        |	t        «      sJ ‚|d   |d   kD  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 ]  }||   ||   k7  rŒJ ‚ t        ||| ||«      g¬«       y)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     úd/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/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<      sœ  € ô &€Ià˜� 6¨7Ð"3Ð4€IØ€Ið
 ØØ&ØØ"Øñ€Eð %'€LÜ
ØØØØÙÒ1Ó2Ð3Ø!ô€Cô œœU L°Ñ$8¸Ñ$AÓBÓC€MÜ�cœ7Ô#Ð#Ð#à˜Ñ˜m¨BÑ/Ò/Ð/Ð/ð ØØ&ØØ"Øñ€Eð €Lä
ØØØØÙÒ1Ó2Ð3Ø!ô€Cô œœU L°Ñ$8¸Ñ$AÓBÓC€MÜ�cœ7Ô#Ð#Ð#à˜Ñ˜m¨BÑ/Ò/Ð/Ð/ð Ø&ØØ"Øñ€Eð €LÜ
ØØØØÙš\Ó*Ð+Ø!ô€Cô œœU L°Ñ$8¸Ñ$AÓBÓC€MÜ�cœ7Ô#Ð#Ð#à˜Ñ˜}¨RÑ0Ò0Ð0Ð0ð 9Bñ 0œCð 0´#ð 0Äeó 0ð €LÜ
ØØØØÙ˜YÓ'Ð(Ø!ô€Cô œœU L°Ñ$8¸Ñ$AÓBÓC€Mä�cœ7Ô#Ð#Ð#à˜Ñ˜}¨QÑ/Ò/Ð/Ð/ä�1”c˜-Ó(Ó)ò 4ˆØ˜QÑ =°Ñ#3Ó3Ð3Ð3ð4ô €uˆf�i©I°iÓ,@Ð+AÖBr*   c                  ó4   — 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   s$   € äÜØ�vÐòó	
ó	ð 	r*   r   c           	      óz  ‡— 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¬«      }|	j	                  d¬«      }|j	                  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   k7  sJ ‚|d   |d   k7  sJ ‚y)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kD  ry‰| dz   z  S )Nr   g      @r'   rE   s    €r(   Úeta_decay_1z.run_eta_decay_leaf_output.<locals>.eta_decay_1¢   s   ø€ ØˆqŠ5ØØ˜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^   „   sÖ  ø€ ð €IÜ%€Ià˜� 6¨7Ð"3Ð4€Ið ØØØ"Øñ€Eð Ð'Ò'Ø"%ˆÐÑð#”sð #œuõ #ô ØØØØÙ˜[Ó)Ð*ô€Dð#”sð #œuõ #ô
 ØØØØÙ˜[Ó)Ð*ô€Dð —‘¨�Ó0€IØ—‘¨�Ó0€Iä	�‰�IÓ	€BÜ	�‰�IÓ	€Bà�I‘Ð1Ñ2°7Ñ;¸GÑDÀQÑG€JØ�I‘Ð1Ñ2°7Ñ;¸GÑDÀQÑG€JØ�nÑ%¨°NÑ)CÒCÐCÐCØÐ(Ñ)¨ZÐ8JÑ-KÒKÐKÐKà�I‘Ð1Ñ2°7Ñ;¸GÑDÀQÑG€JØ�I‘Ð1Ñ2°7Ñ;¸GÑDÀQÑG€JØ�nÑ%¨°NÑ)CÒCÐCÐCØÐ(Ñ)¨ZÐ8JÑ-KÒKÐKÑKr*   )Ú__doc__rI   Ú	itertoolsr   Útypingr   r   r   Úcallbackr   Úcorer	   r
   Útrainingr   r   Úutilsr   Ústrr<   rA   r^   r'   r*   r(   ú<module>rg      s¯   ðá #ã Ý ß $Ñ $å ,ß #ß  Ý ðeCØðeCØ%ðeCØ.5ðeCØ?EðeCà	óeCðP˜4  c¨3 h¡Ñ0ó ð8LØð8LØ!$ð8LØ.5ð8LØ>Eð8LØOUð8Là	ô8Lr*   