Ë
    °Ó^j>R  ã                   ó²  — d Z ddlZddlmZmZ ddlmZ ddlmZm	Z	m
Z
mZmZ ddlZddlZddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZmZmZmZmZ ddlm Z  ddl!m"Z"m#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-m.Z. ede"de
e/   fd„«       Z0edede
e/   fd„«       Z0ede	e1ef   de
e/   fd„«       Z0dee"ee	f   de
e/   fd„Z0de1de2de,ddfd„Z3de,de1de1ddfd„Z4de5de5d e5de1de1ddfd!„Z6de5de5d e5d"e5de1d#e2d$e2ddfd%„Z7d&e5d'ejp                  d(ejp                  d)eddf
d*„Z9de1d+e2ddfd,„Z:de1de1ddfd-„Z; ejx                  ejz                  «      j|                  Z?dZ@d.e5de5d/e5de1d0e/de1d1e2d2e2d3e2defd4„ZAd5d5d6œd7e5d8e5d9e5d:e5de1de1d2e2d;e2ddfd<„ZBd7e5d8e5d:e5de,de1d2e2ddfd=„ZCde1de,ddfd>„ZDde1de,ddfd?„ZEd@e	e1ef   dAedBe5de	e1ef   fdC„ZF G dD„ dEe«      ZGy)FzTests for updaters.é    N)ÚpartialÚupdate_wrapper)Úascii_lowercase)ÚAnyÚDictÚListÚUnionÚoverload)Úmake_regressioné   )ÚTrainingCallback)Úimport_cupy)ÚBoosterÚDataIterÚDMatrixÚExtMemQuantileDMatrixÚQuantileDMatrix)Úis_pd_cat_dtype)ÚXGBModelÚXGBRegressor)Útrainé   )ÚIteratorForTestÚmake_batchesÚmake_categorical)ÚCatIter)ÚDeviceÚassert_allcloseÚnon_increasingÚmodelÚreturnc                  ó   — y ©N© ©r    s    úb/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/xgboost/testing/updater.pyÚget_basescorer'      s   € Ø36ó    c                  ó   — y r#   r$   r%   s    r&   r'   r'   #   s   € Ø25r(   c                  ó   — y r#   r$   r%   s    r&   r'   r'   '   s   € Ø9<r(   c                 óü   — t        | t        «      r| j                  «       } t        | t        «      r| d   d   d   }n,t	        j
                  | j                  «       «      d   d   d   }t	        j
                  |«      S )z1Get base score from an XGBoost sklearn estimator.ÚlearnerÚlearner_model_paramÚ
base_score)Ú
isinstancer   Úget_boosterÚdictÚjsonÚloadsÚsave_config)r    Ú
jintercepts     r&   r'   r'   +   sv   € ô �%œÔ"Ø×!Ñ!Ó#ˆä�%œÔØ˜9Ñ%Ð&;Ñ<¸\ÑJ‰
ä—Z‘Z × 1Ñ 1Ó 3Ó4°YÑ?Ð@UÑVØñ
ˆ
ô �:‰:�jÓ!Ð!r(   Útree_methodÚweightedÚdevicec                 ó  — ddl m} ddlm} d}d}d}t        j
                  j                  d«      }t        |||¬«      \  }	}
|r|j                  |¬«      }nd	}t        |	|
|¬
«      }t	        j                  ddg«      }t	        j                  |j                  t        j                  ¬«      }i }t        d| |||dœ|||dfg|¬«      }|j                  |d¬«      }t        |d   d   «      sJ ‚|d   d   d   dk  sJ ‚t!        |j"                  «      D �cg c]#  } |t%        t'        ||||   ¬«      |«      «      ‘Œ% }}t	        j(                  |j                  «      }t!        |j                  d   «      D ]·  }||   }t        d| ||||   dœ|||dfg||   |¬«      }t        |d   d   «      sJ ‚|d   d   d   dk  sJ ‚t        j*                  j-                  t	        j                  |d   d   «      t	        j                  |d   d   «      dd¬«       |j                  |«      |d	d	…|f<   Œ¹ t!        |j                  d   «      D ]0  }t        j*                  j-                  |d	d	…|f   |d	d	…|f   «       Œ2 y	c c}w )zTest for quantile loss.r   )Úmean_pinball_loss)Ú_metric_decoratori   é   iÊ  ©Ú	n_samplesÚ
n_featuresÚrandom_state©ÚsizeN©Úweightçš™™™™™¹?ç      à?)ÚshapeÚdtypeúreg:quantileerror)Ú	objectiver6   r8   Úquantile_alphar.   ÚTrain©Únum_boost_roundÚevalsÚevals_resultT)Ústrict_shapeÚquantileéÿÿÿÿg      4@)Úsample_weightÚalpha)rN   rO   Úcustom_metricrP   g      >@r:   g�íµ ÷Æ°>)ÚatolÚrtol)Úsklearn.metricsr:   Úxgboost.sklearnr;   ÚnpÚrandomÚRandomStater   r   ÚarrayÚzerosrG   Úfloat32r   Úpredictr   ÚrangerB   r   r   ÚemptyÚtestingr   )r6   r7   r8   r:   r;   r>   r?   Ún_estimatorsÚrngÚXÚyrD   ÚXyrU   r.   rP   Úbooster_multiÚpredt_multiÚiÚmetricsÚpredtsÚaÚ	booster_is                          r&   Úcheck_quantile_lossrq   <   sÂ  € å1å1à€IØ€JØ€Lä
�)‰)×
Ñ
 Ó
%€CäØØØô�D€A€qñ
 Ø—‘ �Ó+‰àˆä	˜˜A fÔ	-€Bä�H‰H�c˜3�ZÓ €Eô —‘ §¡´2·:±:Ô>€JØ$&€LÜà,Ø&ØØ#Ø$ñ	
ð 	Ø$Ø�Gˆ}ˆoØ!ô€Mð  ×'Ñ'¨¸Ð'Ó>€Kä˜, wÑ/°
Ñ;Ô<Ð<Ð<Ø˜Ñ  Ñ,¨RÑ0°4Ò7Ð7Ð7ô �u—z‘zÓ"öð ñ 	ÜÜÐ)¸ÀuÈQÁxÔPØ!óõ	
ð€Gð ô �X‰X�k×'Ñ'Ó(€FÜ�5—;‘;˜q‘>Ó"ò -ˆØ�!‰Hˆäà0Ø*Ø Ø"#Ø(¨™mñð Ø(Ø˜�=�/Ø! !™*Ø%ô
ˆ	ô ˜l¨7Ñ3°JÑ?Ô@Ð@Ð@Ø˜GÑ$ ZÑ0°Ñ4°tÒ;Ð;Ð;Ü
�
‰
×"Ñ"Ü�H‰H�\ 'Ñ*¨:Ñ6Ó7Ü�H‰H�\ 'Ñ*Ð+>Ñ?Ó@ØØð	 	#ô 	
ð !×(Ñ(¨Ó,ˆŠq�!ˆtŠð3-ô6 �5—;‘;˜q‘>Ó"ò DˆÜ
�
‰
×"Ñ" 6ª!¨Q¨$¡<°ºQÀ¸TÑ1BÕCñDùòMs   Ä(I=Úmulti_strategyc                 ó  ‡— t        ddd¬«      \  }}t        ||«      Šdt        t        t        f   dt        ddfˆfd	„}t        j                  g d
¢«      }d|| ||dœ} ||d«       |j                  d«       d|d<    ||d«       y)z/Test quantile loss with boosting random forest.i   é   iê  r=   ÚparamsÚmetricr!   Nc                 óì   •— i }d| d<   t        | ‰d‰dfg|¬«       i }d| d<   t        | ‰d‰dfg|¬«       t        j                  j                  |d   |   |d   |   «       t	        |d   |   «      sJ ‚y )Nr   Únum_parallel_treer<   rL   rM   r   )r   r[   rd   r   r   )ru   rv   Úevals_result_0Úevals_result_1ri   s       €r&   Úrunz#check_quantile_loss_rf.<locals>.run�   s¦   ø€ Ø*,ˆØ&'ˆÐ"Ñ#ÜØØØØ˜�=�/Ø'õ	
ð +-ˆØ&'ˆÐ"Ñ#ÜØØØØ˜�=�/Ø'õ	
ô 	�
‰
×"Ñ"Ø˜7Ñ# FÑ+¨^¸GÑ-DÀVÑ-Lô	
ô ˜n¨WÑ5°fÑ=Ô>Ð>Ñ>r(   )rE   rF   gÍÌÌÌÌÌì?rI   )rJ   r6   r8   rK   rr   rR   rK   zreg:absoluteerrorrJ   Úmae)r   r   r   Ústrr   r[   r^   Úpop)	r8   r6   rr   rg   rh   r{   rU   ru   ri   s	           @r&   Úcheck_quantile_loss_rfr   •   s™   ø€ ô
  T°bÀtÔL�D€A€qÜ	��A‹€Bð?”Dœœc˜‘Nð ?¬Cð ?°Dõ ?ô6 �H‰H’_Ó%€Eà(Ø"ØØØ(ñ€Fñ ˆ�
Ôð ‡J�JÐÔ Ø-€Fˆ;ÑÙˆ�Õr(   Ún_samples_per_batchr?   Ú	n_batchesc           	      óZ  — t        t        | |||dk7  «      dddœŽ}t        |«      }|d|ddgdœ}t        ||«      }|j	                  «       \  }	}
}t        |	|
|¬	«      }t        ||«      }|j                  |«      }|j                  |«      }t        j                  j                  ||«       y
)z2Check external memory with the quantile objective.ÚcpuÚcacheF©r„   Úon_hostrI   gš™™™™™É?çš™™™™™é?)r6   rJ   r8   rK   rC   N)	r   r   r   r   Ú	as_arraysra   r[   rd   r   )r€   r?   r�   r6   r8   ÚitÚXy_itru   Ú
booster_itrg   rh   Úwri   ÚboosterÚpredt_itÚpredts                   r&   Úcheck_quantile_loss_extmemr�   È   s´   € ô 
Ü	Ð)¨:°yÀ&ÈEÁ/Ó	RØØò
€Bô
 �B‹K€Eà"Ø(ØØ ˜*ñ	€Fô �v˜uÓ%€JØ�l‰l‹n�G€A€qˆ!Ü	��A˜aÔ	 €BÜ�F˜BÓ€Gà×!Ñ! %Ó(€HØ�O‰O˜BÓ€Eä‡J�J×Ñ˜u hÕ/r(   Ún_binsr†   Úis_catc                ó,  — |rt        | ||dddd|d¬«	      }nt        t        | |||dk7  ¬«      d|d	œŽ}t        |||¬
«      }t	        j
                  t        d¬«      5  t        |d|dœ|d¬«      }	ddd«       t        ||dœ|d¬«      }	|rt        | ||dddd|d¬«	      }nt        t        | |||dk7  ¬«      ddiŽ}t        |||¬
«      }
t        ||dœ|
d¬«      }|j                  «       }|
j                  «       }t        j                  j                  |d   |d   «       t        j                  j                  |d   |d   «       |	j                  |«      }|j                  |
«      }t        j                  j                  ||«       y# 1 sw Y   �ŒxY w)z+Basic test for the `ExtMemQuantileDMatrix`.é   ç        rF   Fr„   )	r€   r?   r�   Ún_catsÚsparsityÚ	cat_ratioÚonehotr8   r„   rƒ   ©Úuse_cupyr…   ©Úmax_binÚenable_categoricalzOnly the `hist`)ÚmatchÚapprox)r8   r6   r�   r<   )rN   N)r8   r�   r   r   )r   r   r   r   ÚpytestÚraisesÚ
ValueErrorr   r   Úget_quantile_cutr[   rd   r   ra   )r€   r?   r�   r‘   r8   r†   r’   r‰   rŠ   r‹   ri   r�   Úcut_itÚcutrŽ   r�   s                   r&   Úcheck_extmem_qdmr§   ç   s¶  € ñ ÜØ 3Ø!ØØØØØØØô

‰ô ÜØ# Z°ÀVÈuÁ_ôð Øò
ˆô " "¨fÈÔP€EÜ	�‰”zÐ):Ô	;ñ 
ÜØ¨hÀ6ÑJØØô
ˆ
÷
ô  &°VÑ<¸eÐUVÔW€JÙÜØ 3Ø!ØØØØØØØô

‰ô ÜØ# Z°ÀVÈuÁ_ôð
ð ñ	
ˆô 
˜ VÀÔ	G€BÜ˜v°&Ñ9¸2ÈqÔQ€Gà×#Ñ#Ó%€FØ
×
Ñ
Ó
€CÜ‡J�J×Ñ˜v a™y¨#¨a©&Ô1Ü‡J�J×Ñ˜v a™y¨#¨a©&Ô1à×!Ñ! %Ó(€HØ�O‰O˜BÓ€EÜ‡J�J×Ñ˜x¨Õ/÷K
ñ 
ús   ÁF	Æ	FÚ	n_entriesÚindptrÚdataÚdtypesc                 ó²  — |j                   d   |d   k(  sJ ‚|j                   d   | k(  sJ ‚|j                  t        j                  k(  sJ ‚t	        d|j
                  «      D ]t  }t        ||dz
     «      }t        ||   «      }t	        |dz   |«      D ]A  }||   ||dz
     kD  sJ ‚t        |j                  |dz
     «      sŒ/||   ||dz
     dz   k(  rŒAJ ‚ Œv y)zCheck the cut values.r   rS   r   N)	rG   rH   r[   Úuint64rb   rB   Úintr   Úiloc)r¨   r©   rª   r«   rl   ÚbegÚendÚjs           r&   Ú	check_cutr³   1  sê   € ð �:‰:�a‰=˜F 2™JÒ&Ð&Ð&Ø�:‰:�a‰=˜IÒ%Ð%Ð%à�<‰<œ2Ÿ9™9Ò$Ð$Ð$Ü�1�f—k‘kÓ"ò 2ˆÜ�&˜˜Q™‘-Ó ˆÜ�&˜‘)‹nˆÜ�s˜Q‘w Ó$ò 	2ˆAØ˜‘7˜T ! a¡%™[Ò(Ð(Ð(Ü˜vŸ{™{¨1¨q©5Ñ1Õ2Ø˜A‘w $ q¨1¡u¡+°¡/Ó1Ð1Ð1ñ	2ñ2r(   r›   c                 óœ  — ddl }d}d}d}|j                  t        j                  g|z  «      }t	        j
                  |||¬«      \  }}}	t        |||	|¬«      }
|
j                  «       \  }}t        |dz   |z  |||«       t        |||	¬	«      }
t        | |d
œ|
«       |
j                  «       \  }}t        |dz   |z  |||«       d}d}t        t        ||||«      dddœŽ}t        |«      }t        | |d
œ|
«       |
j                  «       \  }}t        |dz   |z  |||«       d}t        |||dd¬«      \  }}|r0ddl}t        «       }|j!                  |«      }|j#                  |«      }t        |||d¬«      }|j                  «       \  }}t        ||z  |||j$                  «       t        ||d¬«      }t        | |d
œ|«       |j                  «       \  }}t        ||z  |||j$                  «       t        |||ddd¬«      \  }}t'        |j$                  D �cg c]  }t)        |«      sŒd‘Œ c}«      }||z
  }||z  |dz   |z  z   }t        |||d¬«      }|j                  «       \  }}t        ||||j$                  «       t        ||d¬«      }t        | |d
œ|«       |j                  «       \  }}t        ||||j$                  «       yc c}w )zCheck with optional cupy.r   Ni   é   rt   rš   )rD   r�   r   rC   )r6   r�   é   é   r„   Fr…   é    r‡   )r™   r—   Trœ   ©rž   rF   )r™   r—   r˜   )ÚpandasÚSeriesr[   r`   Útmr   r   r¤   r³   r   r   r   r   r   Úcudfr   Úfrom_pandasr^   r«   Úlenr   )r6   r›   Úpdr>   r?   r�   r«   rg   rh   rŒ   ÚXywr©   rª   r�   r€   r‰   ri   Ún_categoriesr½   ÚcprH   Ún_cat_featuresÚn_num_featuresr¨   s                           r&   Úcheck_get_quantile_cut_devicerÆ   B  sÝ  € ãà€IØ€JØ€GØ�Y‰YœŸ
™
�| jÑ0Ó1€Fô × Ñ  ¨JÀÔJ�G€A€qˆ!ä" 1 a°¸7ÔC€CØ×'Ñ'Ó)�L€FˆDÜˆw˜‰{˜jÑ(¨&°$¸Ô?ä
�!�Q˜qÔ
!€CÜ	˜+°'Ñ
:¸CÔ@Ø×'Ñ'Ó)�L€FˆDÜˆw˜‰{˜jÑ(¨&°$¸Ô?à€IØÐÜ	Ü	Ð)¨:°yÀ(Ó	KØØò
€Bô
 ˜"“+€BÜ	˜+°'Ñ
:¸CÔ@Ø×'Ñ'Ó)�L€FˆDÜˆw˜‰{˜jÑ(¨&°$¸Ô?ð €LÜØ�:˜|°EÀCô�D€A€qñ Ûä‹]ˆà×Ñ˜QÓˆØ�H‰H�Q‹Kˆä	˜˜A wÀ4Ô	H€BØ×&Ñ&Ó(�L€FˆDÜˆl˜ZÑ'¨°°q·x±xÔ@ä	��A¨$Ô	/€BÜ	˜+°'Ñ
:¸BÔ?Ø×&Ñ&Ó(�L€FˆDÜˆl˜ZÑ'¨°°q·x±xÔ@ô Ø�:˜|°EÀCÐSVô�D€A€qô ¨¯©ÖL ´_ÀUÕ5Kš!ÒLÓM€NØ .Ñ0€NØ˜~Ñ-°¸1±ÀÑ0NÑN€Iä	˜˜A wÀ4Ô	H€BØ×&Ñ&Ó(�L€FˆDÜˆi˜  q§x¡xÔ0ä	��A¨$Ô	/€BÜ	˜+°'Ñ
:¸BÔ?Ø×&Ñ&Ó(�L€FˆDÜˆi˜  q§x¡xÕ0ùò Ms   ÈK	È(K	c                 ó\   — |j                  d«      }t        | d«       |rt        | d«       yy)zCheck the quantile cut getter.ÚcudaFTN)Ú
startswithrÆ   )r6   r8   r›   s      r&   Úcheck_get_quantile_cutrÊ   ‹  s0   € ð × Ñ  Ó(€HÜ! +¨uÔ5ÙÜ% k°4Õ8ð r(   r>   r–   r—   r™   Úextmemrž   c                ó  — t        t        d| «      d«      }	t        | |	z  ||	|d||||rdnd ¬«	      }
|r7|dk(  rt        |
|¬«      }|S |dk(  rt	        |
|¬«      }|S t        d	|› d
�«      ‚|
j                  «       \  }}t	        |||¬«      }|S )Nr   r   ç      ð?r„   )r�   r—   r˜   r–   r™   r8   r„   Úhistr¹   r    ztree_method z not supported.)ÚmaxÚminr   r   r   r£   Úxy)r>   r?   r–   r8   r—   r6   r™   rË   rž   r�   r‰   ri   ÚcatÚlabels                 r&   Ú_create_dmatrixrÔ   ˜  sÀ   € ô ”C˜˜9Ó% qÓ)€IÜ	Ø�YÑØØØØØØØÙ‰g Tô

€Bñ Ø˜&Ò Ü/ØÐ'9ôˆBð €Ið ˜HÒ$Ü˜Ð0BÔCˆBð €Iô	 ˜|¨K¨=¸ÐHÓIÐIà—U‘U“W‰
ˆˆUÜ�S˜%Ð4FÔGˆØ€Ir(   F)rË   Úmulti_targetÚrowsÚcolsÚroundsÚcatsrÕ   c                 óH  — t        j                  d«      }i }	i }
|t        |dœ}|rEd}d|d<   t        | ||dd|¬«      \  }}t	        |j                  |«      |«      }t	        ||d	¬
«      }n(t        | |||dd	||d¬«	      }t        | |||d|d|d	¬«	      }t        ||||dfg|	¬«       t        ||||dfg|
¬«       t        j                  j                  t        j                  |	d   d   «      t        j                  |
d   d   «      d¬«       t        |
d   d   «      sJ ‚|s�i }t        |d<   d|d<   t        ||||dfg|¬«       |
d   d   }|d   d   }t        ||«      D ]  \  }}||k\  rŒJ ‚ d|d<   i }t        ||d|dfg|¬«       t        |d   d   «      sJ |«       ‚yy)z0Test for one-hot encoding with categorical data.rº   )r6   Úmax_cat_to_onehotr8   r¶   Úmulti_output_treerr   Fr•   )rÂ   r™   r—   Ú	n_targetsTr¹   )r–   r8   r—   r™   r6   rË   rž   )r–   r8   r—   r6   r™   rË   rž   rL   rM   Úrmsegü©ñÒMbP?©rX   rÛ   r   Ú
reg_lambdarÍ   r¸   N)r¡   ÚimportorskipÚ
USE_ONEHOTr   r   Úget_dummiesrÔ   r   r[   rd   r   r^   r   ÚUSE_PARTÚzip)rÖ   r×   rØ   rÙ   r8   r6   rË   rÕ   rÀ   Úby_etl_resultsÚby_builtin_resultsÚ
parametersrÝ   rÒ   rÓ   Ú	Xy_onehotÚXy_catÚby_groupingÚrmse_ohÚ
rmse_groupro   Úbs                         r&   Úcheck_categorical_oherï   ¿  sR  € ô 
×	Ñ	˜XÓ	&€Bà8:€NØ<>Ðð #ä'Øñ	"€Jñ Øˆ	Ø':ˆ
Ð#Ñ$ä%ØØØØØØô
‰
ˆˆUô ˜BŸN™N¨3Ó/°Ó7ˆ	Ü˜˜e¸Ô=‰ä#ØØØØØØØ#ØØ$ô

ˆ	ô !ØØØØØØ#ØØØ#ô

ˆô 
ØØØØ˜7Ð#Ð$Ø#õô 
ØØØØ˜Ð Ð!Ø'õô ‡J�J×ÑÜ
�‰� Ñ(¨Ñ0Ó1Ü
�‰Ð# GÑ,¨VÑ4Ó5Øð ô ô
 Ð,¨WÑ5°fÑ=Ô>Ð>Ð>áØ9;ˆä*2ˆ
Ð&Ñ'Ø#$ˆ
�<Ñ ÜØØØ"Ø˜GÐ$Ð%Ø$õ	
ð % WÑ-¨fÑ5ˆØ  Ñ)¨&Ñ1ˆ
ä˜ Ó,ò 	‰DˆAˆqØ˜“6ˆM�6ð	ð $'ˆ
�<Ñ ØˆÜØØØØ˜GÐ$Ð%Ø$õ	
ô ˜k¨'Ñ2°6Ñ:Ô;ÐH¸[ÓHÑ;ð7 r(   c                ó°   ‡‡‡‡	— |‰dœŠ	t        | ||d‰|d|d¬«	      Š‰j                  «       Šdt        ddfˆˆˆˆ	fd	„} |t        «        |t        «       y)
z+Check categorical data with missing values.©r6   r8   rF   FT)r–   r—   r8   r6   r™   rË   rž   rÛ   r!   Nc                 óÞ   •— | ‰d<   i }t        ‰‰d‰dfg|¬«      }t        |d   d   «      sJ ‚|j                  ‰«      }t        j                  ‰|«      }t        ‰||d   d   d   d¬«       y )	NrÛ   r<   rL   rM   rÞ   rS   gñhãˆµøô>rß   )r   r   ra   r¼   Úroot_mean_squarer   )	rÛ   rP   r�   Úy_predtrÞ   ri   r8   rÓ   rè   s	        €€€€r&   r{   z&check_categorical_missing.<locals>.runO  s‰   ø€ à*;ˆ
Ð&Ñ'à(*ˆÜØØØØ˜�=�/Ø%ô
ˆô ˜l¨7Ñ3°FÑ;Ô<Ð<Ð<Ø—/‘/ "Ó%ˆÜ×"Ñ" 5¨'Ó2ˆÜ˜  l°7Ñ&;¸FÑ&CÀBÑ&GÈdÖSr(   )rÔ   Ú	get_labelr®   râ   rä   )
rÖ   r×   rÙ   r8   r6   rË   r{   ri   rÓ   rè   s
      `   @@@r&   Úcheck_categorical_missingrö   7  so   û€ ð 2=ÈÑ!O€JÜ	ØØØØØØØØØô

€Bð �L‰L‹N€EðTœsð T t÷ Tð Tñ$ Œ
„Oñ Œ…Mr(   c                 óî  — ddl }t        j                  j                  d«      }d}d}|j	                  t        |«      D �cg c]1  }dj                  |j                  t        t        «      d¬«      «      ‘Œ3 c}d¬	«      d| j                  «       }t        d
| |d¬«      }|j	                  t        |«      «      }	|j                  ||	||	fg¬«       t        |j                  «       d   d   «      sJ ‚yc c}w )z6Test data with size smaller than number of categories.r   Néd   r”   Ú r¶   rA   Úcategory)rH   Té
   )rž   r6   r8   re   )rg   rh   Úeval_setÚvalidation_0rÞ   )rº   r[   r\   Údefault_rngr»   rb   ÚjoinÚchoiceÚlistr   Úto_framer   Úfitr   rP   )
r6   r8   rÀ   rf   Ún_catÚnrl   rg   Úregrh   s
             r&   Úrun_max_catr  g  sé   € ãä
�)‰)×
Ñ
 Ó
"€CØ€EØ	€Aà
�	‰	ÜEJÈ5Ã\ÖRÀˆ�‰�—‘œD¤Ó1¸�Ó:Õ	;ÒRØð 	ó 	ð 	€qð	
÷ ‰(‹*ð ô
 ØØØØô	€Cð 	�	‰	”%˜“(Ó€AØ‡G�Gˆa�1  A ˜x€GÔ(Ü˜#×*Ñ*Ó,¨^Ñ<¸VÑDÔEÐEÑEùò 	Ss   Á 6C2c                 óD  — t         j                  j                  «       }|j                  ddd¬«      j	                  dd«      }|j                  ddd¬«      }t        j                  t         j                  «      j                  dz   |d	<   t        ||d
gdz  ¬«      }t        j                  t        «      5  t        | |dœ|«       ddd«       d|d	<   t        ||d
gdz  ¬«      }t        j                  t        «      5  t        | |dœ|«       ddd«       |j                  ddd¬«      j	                  dd«      }|j                  ddd¬«      }t        ||d
gdz  ¬«      }t        j                  t        «      5  t        | |dœ|«       ddd«       |dk(  r[ddl}|j                  |«      |j                  |«      }}t        j                  t        «      5  t!        ||d
gdz  ¬«       ddd«       yy# 1 sw Y   �Œ.xY w# 1 sw Y   ŒòxY w# 1 sw Y   ŒƒxY w# 1 sw Y   yxY w)z%Test with invalid categorical inputs.r   é   iè  )ÚlowÚhighrB   rø   rû   r   )ÚlocÚscalerB   )é   é   Úc)Úfeature_typesrñ   Ni   rÈ   )r[   r\   rþ   ÚintegersÚreshapeÚnormalÚiinfoÚint32rÏ   r   r¡   r¢   r£   r   Úcupyr^   r   )r6   r8   rf   rg   rh   ri   rÃ   s          r&   Úrun_invalid_categoryr    sé  € ä
�)‰)×
Ñ
Ó
!€Cà�‰˜ ¨ˆÓ.×6Ñ6°s¸BÓ?€AØ�
‰
�q ¨ˆ
Ó,€AÜ�x‰xœŸ™Ó!×%Ñ%¨Ñ)€A€e�Hô 
��A c U¨R¡ZÔ	0€BÜ	�‰”zÓ	"ñ BÜ˜k°VÑ<¸bÔA÷Bð €A€e�HÜ	��A c U¨R¡ZÔ	0€BÜ	�‰”zÓ	"ñ BÜ˜k°VÑ<¸bÔA÷Bð 	�
‰
�q ¨ˆ
Ó-×5Ñ5°c¸2Ó>€AØ�
‰
�q ¨ˆ
Ó,€Aä	��A c U¨R¡ZÔ	0€BÜ	�‰”zÓ	"ñ BÜ˜k°VÑ<¸bÔA÷Bð �ÒÛà�x‰x˜‹{˜BŸH™H Q›Kˆ1ˆÜ�]‰]œ:Ó&ñ 	<Ü˜A˜q°°¸±
Õ;÷	<ð 	<ð	 ÷!Bñ Bú÷
Bð Bú÷Bð Bú÷	<ð 	<ús0   Â5G1Ã=G>Å8H
ÇHÇ1G;Ç>HÈ
HÈHÚparamÚdmatÚ
num_roundsc                 ó  — i }t        | |||dfgd|¬«      }|j                  «       |j                  «       k(  sJ ‚|j                  «       |k(  sJ ‚|j                  |j                  k(  sJ ‚|j
                  |j
                  k(  sJ ‚|S )z-Get training result from parameters and data.r   F)rO   Úverbose_evalrP   )r   Únum_featuresÚnum_colÚnum_boosted_roundsÚfeature_namesr  )r  r  r  Úresultr�   s        r&   Útrain_resultr#  ¡  s›   € ð  €FÜØØØØ�gˆÐØØô€Gð ×ÑÓ! T§\¡\£^Ò3Ð3Ð3Ø×%Ñ%Ó'¨:Ò5Ð5Ð5Ø× Ñ  D×$6Ñ$6Ò6Ð6Ð6Ø× Ñ  D×$6Ñ$6Ò6Ð6Ð6à€Mr(   c                   ó(   — e Zd ZdZdedededefd„Zy)ÚResetStrategyz"Callback for testing multi-output.r    ÚepochÚ	evals_logr!   c                 ób   — |dz  dk(  r|j                  ddi«       y|j                  ddi«       y)Nr   r   rr   rÜ   Úone_output_per_treeF)Ú	set_param)Úselfr    r&  r'  s       r&   Úafter_iterationzResetStrategy.after_iteration¹  s=   € Ø�1‰9˜Š>Ø�O‰OÐ-Ð/BÐCÔDð ð �O‰OÐ-Ð/DÐEÔFØr(   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r®   r1   Úboolr,  r$   r(   r&   r%  r%  ¶  s&   „ Ù,ð Wð °Sð ÀTð Èdô r(   r%  )Hr0  r2   Ú	functoolsr   r   Ústringr   Útypingr   r   r   r	   r
   Únumpyr[   r¡   Úsklearn.datasetsr   Úxgboost.testingrd   r¼   Úcallbackr   Úcompatr   Úcorer   r   r   r   r   rª   r   Úsklearnr   r   Útrainingr   r   r   r   Ú	data_iterr   Úutilsr   r   r   Úfloatr'   r}   r1  rq   r   r®   r�   r§   Úndarrayr³   rÆ   rÊ   r  r  rÏ   râ   rä   rÔ   rï   rö   r  r  r#  r%  r$   r(   r&   ú<module>rA     sð  ðÙ ã ß -Ý "ß 3Õ 3ã Û Ý ,å å 'Ý  ÷õ õ #ß ,Ý ß AÑ AÝ ß :Ñ :ð 
Ø 6˜Ð 6 d¨5¡kÒ 6ó 
Ø 6ð 
Ø 5˜Ð 5 T¨%¡[Ò 5ó 
Ø 5ð 
Ø <˜˜c 3˜h™Ð <¨D°©KÒ <ó 
Ø <ð"Ø�˜7 DÐ(Ñ)ð"à	ˆ%�[ó"ð"VD Sð VD°Dð VDÀ&ð VDÈTó VDðr0Øð0Ø!$ð0Ø69ð0à	ó0ðf0Øð0àð0ð ð0ð ð	0ð
 ð0ð 
ó0ð>G0ØðG0àðG0ð ð	G0ð
 ðG0ð ðG0ð ðG0ð ðG0ð 
óG0ðT2Øð2ØŸJ™Jð2Ø.0¯j©jð2ØBEð2à	ó2ð"F1¨sð F1¸dð F1Àtó F1ðR9¨ð 9°Sð 9¸Tó 9ð ˆR�X‰X�b—h‘hÓ×#Ñ#€
Ø€ð$Øð$àð$ð ð	$ð
 ð$ð ð$ð ð$ð ð$ð ð$ð ð$ð ó$ð^ ØòuIà
ðuIð ðuIð ð	uIð
 ðuIð ðuIð ðuIð ðuIð ðuIð 
óuIðp-Ø
ð-à
ð-ð ð-ð
 ð-ð ð-ð ð-ð 
ó-ð`F˜Sð F¨&ð F°Tó Fð0< cð <°6ð <¸dó <ðDØ��S�‰>ðØ!(ðØ69ðà	ˆ#ˆsˆ(�^óô*Ð$õ r(   