ó
    Û£jhy  ã            
       óÆ  • S SK r S SKrS SKrS SKrS SKJrJr  S SKJ	r	  S SK
Jr  S SKJr  S SKJrJrJrJrJr  S SKJr  S SKJrJrJrJr  S S	KJr  S S
KJr  S r\R@                  RC                  S\RD                  " / SQ\RF                  S9/S4\RD                  " SS\RH                  /\RJ                  S9/S4\RD                  " / SQ\&S9/S4S/5      \R@                  RC                  SSS/5      \R@                  RC                  SSS/5      S 5       5       5       r'\R@                  RC                  S\RD                  " / SQ\RF                  S9/S4\RD                  " / SQ\&S9/SS/4/5      \R@                  RC                  S\RD                  " / S Q5      \RD                  " / S!Q5      /5      \R@                  RC                  SSS/5      S" 5       5       5       r(\R@                  RC                  S#\RD                  " S /S$-  S%/S$-  -   S&/-   /\RF                  S9RR                  / SQ/4\RD                  " S'/S$-  S(/S$-  -   S)/-   /\&S9RR                  / S*Q/4/5      \R@                  RC                  SS+S/5      S, 5       5       r*\R@                  RC                  S-/ S.QS/4\RD                  " / S0Q/ S Q/5      RR                  S14/5      S2 5       r+S3 r,\R@                  RC                  S4S%S5/S$-  S6S7/4/ S QS8-  S%S5/-   / S9Q4/ S:QS8-  S;S</-   / S=Q4/5      S> 5       r-\R@                  RC                  S?S@SA/5      \R@                  RC                  SSS/5      \R@                  RC                  S/ SBQ5      SC 5       5       5       r.\R@                  RC                  SD\RD                  " SE/SF-  5      SE4\RD                  " S /SF-  5      S 4\RD                  " SG/SF-  \&S9S 4// SHQSI9\R@                  RC                  S/ SJQ5      SK 5       5       r/SL r0SM r1\R@                  RC                  S/ SNQ5      SO 5       r2\R@                  RC                  SSPS/5      SQ 5       r3SR r4SS r5ST r6g)Ué    N)Úassert_allcloseÚassert_array_equal)Úmake_regression)ÚRandomForestRegressor)ÚRidge)ÚKFoldÚShuffleSplitÚStratifiedKFoldÚcross_val_scoreÚtrain_test_split)Úmake_pipeline)ÚKBinsDiscretizerÚLabelBinarizerÚLabelEncoderÚTargetEncoder)Úparse_version)Útype_of_targetc                 ó>  • [         R                  " U[         R                  S9n[         R                  " U5      nUS:X  a‘  [         R                  " U5      n[        U5       Hj  nXU:H     nUR                  S   n	U	S:X  a  XTU'   M%  [         R                  " U5      n
X¦-  nX™U-   -  nU[         R                  " U5      -  SU-
  U-  -   XG'   Ml     U$ [        U5       H=  nXU:H     n[         R                  " U5      XS-  -   nUR                  S   U-   nXÞ-  XG'   M?     U$ )z0Simple Python implementation of target encoding.©ÚdtypeÚautor   é   )ÚnpÚzerosÚfloat64ÚmeanÚvarÚrangeÚshapeÚsum)Ú	X_ordinalÚ	y_numericÚn_categoriesÚsmoothÚcur_encodingsÚy_meanÚ
y_varianceÚcÚy_subsetÚn_iÚy_subset_varianceÚmÚlambda_Úcurrent_sumÚcurrent_cnts                  Ú½C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\sklearn/preprocessing/tests/test_target_encoder.pyÚ_encode_targetr1      s  € ä—H’H˜\´·±Ñ<€MÜ�WŠW�YÓ€Fà�ÓÜ—V’V˜IÓ&ˆ
Ü�|Ö$ˆAØ ¨a¡Ñ0ˆHØ—.‘. Ñ#ˆCà�a‹xØ#)˜aÑ Ùä "§¢ xÓ 0ÐØ!Ñ.ˆAØ 1™W‘oˆGà&¬¯ª°Ó):Ñ:¸aÀ'¹kÈVÑ=SÑSˆMÓñ %ð Ðä�|Ö$ˆAØ ¨a¡Ñ0ˆHÜŸ&š& Ó*¨V©_Ñ<ˆKØ"Ÿ.™.¨Ñ+¨fÑ4ˆKØ*Ñ8ˆMÓñ	 %ð
 Ðó    zcategories, unknown_value©r   r   é   r   é   ç      ð?ç      @ç      @)ÚcatÚdogÚsnakeÚbear)r   é   r$   ç      @r   Útarget_typeÚbinaryÚ
continuousc                 ó(  • Sn[         R                  " S/S-  S/S-  -   S/S-  -   /[         R                  S9R                  n[         R                  " / S	Q/[         R                  S9R                  nUR                  S   nU S
:X  a  Un	Un
OU S   U   n	U S   U   n
[         R
                  " X¡//45      n
[         R                  R                  U5      nSnUS:X  a1  UR                  SSUS9n[         R                  " SS/[        S9nXí   nOUS:X  d   eUR                  SSUS9nUnUR                  U5      nUU   nU	U   n	UU   nUU   nUS:X  a  [        XÂSS9nO
[        XÂSS9n[         R                  " U[         R                  S9nUR!                  Xo5       H.  u  nnUUS4   UU   nn[#        UUXS5      nUUUS4      UUS4'   M0     [%        UU US9nUR'                  XŸ5      nUR(                  U:X  d   e[+        UU5        [-        UR.                  5      S:X  d   eUS:X  a  [1        UR2                  W5        OUR2                  b   e[         R4                  " U5      n[#        USS2S4   XÕU5      n[+        UR.                  S   U5        UR6                  [8        R:                  " U5      :X  d   e[         R
                  " U[         R                  " U/5      45      R=                  SS5      nUR?                  U
5      n[+        UU5        g)zÝCheck encoding for binary and continuous targets.

Compare the values returned by `TargetEncoder.fit_transform` against the
expected encodings for cv splits from a naive reference Python
implementation in _encode_target.
r=   r   é   r   é   r4   é(   r   r3   r   r@   ©ÚlowÚhighÚsizer9   r:   rA   éöÿÿÿT©Ún_splitsÚrandom_stateÚshuffle)r$   Ú
categoriesÚcvNéÿÿÿÿ) r   ÚarrayÚint64ÚTr   ÚconcatenateÚrandomÚRandomStateÚrandintÚobjectÚuniformÚpermutationr
   r   Ú
empty_liker   Úsplitr1   r   Úfit_transformÚtarget_type_r   ÚlenÚ
encodings_r   Úclasses_r   Útarget_mean_ÚpytestÚapproxÚreshapeÚ	transform)rO   Úunknown_valueÚglobal_random_seedr$   r?   r#   ÚX_train_int_arrayÚX_test_int_arrayÚ	n_samplesÚX_trainÚX_testÚdata_rngrL   r"   Útarget_namesÚy_trainÚshuffled_idxrP   Úexpected_X_fit_transformÚ	train_idxÚtest_idxÚX_Úy_r%   Útarget_encoderÚX_fit_transformr&   Úexpected_encodingsÚexpected_X_test_transformÚX_test_transforms                                 r0   Útest_encodingr}   ;   sG  € ð& €LÜŸš 1 #¨¡(¨a¨S°2©XÑ"5¸¸¸b¹Ñ"@Ð!AÌÏÉÑR×TÑTÐÜ—x’x¢ ´2·8±8Ñ<×>Ñ>ÐØ!×'Ñ'¨Ñ*€Ià�VÓØ#ˆØ!‰à˜Q‘-Ð 1Ñ2ˆØ˜A‘Ð/Ñ0ˆä�^Š^˜V oÐ%6Ð7Ó8€Fä�y‰y×$Ñ$Ð%7Ó8€HØ€HØ�hÓØ×$Ñ$¨°¸Ð$ÐCˆ	Ü—x’x ¨ ´fÑ=ˆØÑ)‰ð ˜lÓ*Ð*Ð*Ø×$Ñ$¨°2¸IÐ$ÐFˆ	Øˆà×'Ñ'¨	Ó2€LØ)¨,Ñ7ÐØ�lÑ#€GØ�lÑ#€GØ˜,Ñ'€Ið �hÓÜØÈñ
‰ô ˜HÈtÑTˆô  "Ÿ}š}Ð->ÄbÇjÁjÑQÐà!Ÿx™xÐ(9ÖCÑˆ	�8Ø" 9¨a <Ñ0°)¸IÑ2FˆBˆÜ& r¨2¨|ÓDˆØ0=Ø˜h¨˜kÑ*ñ1
Ð  ¨1 Ó-ñ  Dô #ØØØñ€Nð %×2Ñ2°7ÓD€Oà×&Ñ&¨+Ó5Ð5Ð5Ü�OÐ%=Ô>Üˆ~×(Ñ(Ó)¨QÓ.Ð.Ð.Ø�hÓÜ˜>×2Ñ2°LÕAà×&Ñ&Ñ.Ð.Ð.ô �WŠW�YÓ€FÜ'Øš!˜Q˜$Ñ ¸&óÐô �N×-Ñ-¨aÑ0Ð2DÔEØ×&Ñ&¬&¯-ª-¸Ó*?Ó?Ð?Ð?ô !#§¢Ø	œRŸXšX v hÓ/Ð0ó!ç�gˆb�!ƒnð ð &×/Ñ/°Ó7ÐÜÐ$Ð&?Õ@r2   zcategories, unknown_valuesÚrabbitÚtarget_labels)r   r4   r=   )ÚaÚbr(   c           
      óœ  • [         R                  R                  U 5      nSnSn[         R                  " UR	                  SSUS95      n[         R                  " UR	                  SSUS95      n	US   U   n
US   U	   n[         R
                  " X«45      n[         R
                  " X‰45      nSS// SQ/nSn[         R                  " UR	                  SXöS95      nUU   n[        5       R                  U5      nSn[        UU SS	9n[         R                  " UR                  S   UR                  S   U-  4[         R                  S
9n[        U5       Hw  u  nn[        U5       Hb  nUR                  UU5       HI  u  nnUSS2U4   nUUU4   UU   nn[        UU[!        U5      U5      nUUU-  -   nUUUU4      UUU4'   MK     Md     My     [#        UUS9n U R                  UU5      n!U R$                  S:X  d   e['        U!U5        / n"[        U5       HP  u  nn[        U5       H;  nUSS2U4   n[        USS2U4   U[!        U5      U5      nU"R)                  U5        M=     MR     [!        U R*                  5      X-  :X  d   e[        X-  5       H  n#['        U R*                  U#   U"U#   5        M!     [-        U R.                  U5        [         R                  " SS/SS/SS//5      n$US:X  a  U$n%Oo[         R0                  " U$SS2SS24   [2        S
9n%[        U$R                  S   5       H  n&US   U$SS2U&4      U%SS2U&4'   M     [         R4                  " U%U45      n%[         R6                  " USS9n'[         R                  " U$R                  S   U$R                  S   U-  4[         R                  S
9n(U$R                  S   n)/ SQn[        U)S-
  5       H*  n*[        U"5       H  u  n#n+U+U$U*UU#   4      U(U*U#4'   M     M,     / SQn,[        X÷-  5       H  n#U'U,U#      U(U)S-
  U#4'   M     U R9                  U%5      n-['        U-U(5        g)z&Check encoding for multiclass targets.éP   r4   r   rF   r=   r   r3   TrK   r   N©r$   rP   Ú
multiclassr5   é   r   rQ   ©Úaxis)r   r   r   r   r   r   )r   r   r4   r   r   r4   )r   rV   rW   rR   rX   Úcolumn_stackr   r^   r
   Úemptyr   r   Ú	enumerater   r]   r1   r`   r   r_   r   Úappendra   r   rb   r\   rY   Úvstackr   rg   ).ri   rO   Úunknown_valuesr   r$   Úrngrl   Ú
n_featuresÚ
feat_1_intÚ
feat_2_intÚfeat_1Úfeat_2rm   ÚX_train_intÚcategories_Ú	n_classesÚy_train_intrq   Úy_train_encrL   rP   rs   Úf_idxÚcatsÚc_idxrt   ru   Úy_classrv   rw   Úcurrent_encodingÚexp_idxrx   ry   rz   ÚiÚ
X_test_intrn   Ú
column_idxr&   r{   Ún_rowsÚrow_idxÚencÚmean_idxr|   s.                                                 r0   Útest_encoding_multiclassr§   ¥   sŒ  € ô �)‰)×
Ñ
Ð 2Ó
3€Cà€IØ€JÜ—’˜#Ÿ+™+¨!°!¸)˜+ÐDÓE€JÜ—’˜#Ÿ+™+¨!°!¸)˜+ÐDÓE€JØ˜‰]˜:Ñ&€FØ˜‰]˜:Ñ&€FÜ�oŠo˜vÐ.Ó/€GÜ—/’/ :Ð":Ó;€KØ�q�6š9Ð%€Kà€IÜ—(’(˜3Ÿ;™;¨1°9˜;ÐMÓN€KØ˜KÑ(€GÜ Ó"×0Ñ0°Ó9€Kà€HÜ	ØÐ(:ÀDñ
€Bô
  "ŸxšxØ	×	Ñ	˜1Ñ	˜{×0Ñ0°Ñ3°iÑ?Ð@Ü�j‰jñ Ðô ! Ö-‰ˆˆtÜ˜9Ö%ˆEØ')§x¡x°¸Ö'AÑ#�	˜8Ø%¢a¨ hÑ/�Ø$ Y°Ð%5Ñ6¸À	Ñ8J�B�Ü#1°"°b¼#¸d»)ÀVÓ#LÐ ð   5¨9Ñ#4Ñ5�Ø>NØ ¨% Ñ0ñ?Ð(¨°7Ð):Ó;ó (Bó &ñ .ô #ØØñ€Nð %×2Ñ2°7¸GÓD€Oà×&Ñ&¨,Ó6Ð6Ð6Ü�OÐ%=Ô>ð ÐÜ  Ö-‰ˆˆtÜ˜9Ö%ˆEØ!¢! U (Ñ+ˆGÜ-ØšA˜u˜HÑ% w´°D³	¸6ó Ðð ×%Ñ%Ð&6Ö7ó &ñ .ô ˆ~×(Ñ(Ó)¨ZÑ-CÓCÐCÐCÜ�:Ñ)Ö*ˆÜ˜×1Ñ1°!Ñ4Ð6HÈÑ6KÖLñ +ä�~×.Ñ.°Ô>ô —’˜A˜q˜6 A q 6¨A¨q¨6Ð2Ó3€JØ˜ÓØ‰ä—’˜z¨#¨2¨#ªq¨&Ñ1¼Ñ@ˆÜ 
× 0Ñ 0°Ñ 3Ö4ˆJØ$.¨q¡M°*¸S¸b¸SÀ*¸_Ñ2MÑ$NˆF’1�j�=Ó!ñ 5ô —’˜F NÐ3Ó4ˆä�WŠW�[ qÑ)€FÜ "§¢Ø	×	Ñ	˜!Ñ	˜j×.Ñ.¨qÑ1°IÑ=Ð>Ü�j‰jñ!Ðð ×Ñ˜aÑ €FÚ€Eä˜ !™Ö$ˆÜÐ 2Ö3‰FˆAˆsØ47¸
À7ÈEÐRSÉHÐCTÑ8UÑ4VÐ% g¨q jÓ1ó 4ñ %ò "€HÜ�9Ñ)Ö*ˆØ39¸(À1¹+Ñ3FÐ! &¨1¡*¨a -Ó0ñ +ð &×/Ñ/°Ó7ÐÜÐ$Ð&?Õ@r2   zX, categoriesé
   r   r=   r9   r:   r;   )r:   r9   Úcowç      @c                 óÄ  • [         R                  R                  S5      nUR                  SSU R                  S   S9n[        XSS9R                  X5      nUR                  5       nUR                  U SS 5      nUS   [        R                  " U5      :X  d   e[        UR                  5      S	:X  d   eUR                  S   S   [        R                  " U5      :X  d   eg)
zHCustom categories with unknown categories that are not in training data.r   rJ   rC   rF   )rO   r$   rM   rQ   N)r   r   r   )r   rV   rW   rZ   r   r   Úfitr   rg   rd   re   r`   ra   )ÚXrO   r$   r�   Úyr¥   r&   ÚX_transs           r0   Útest_custom_categoriesr°     sÄ   € ô$ �)‰)×
Ñ
 Ó
"€CØ�‰˜ "¨1¯7©7°1©:ˆÐ6€AÜ
 :È1Ñ
M×
QÑ
QÐRSÓ
W€Cð �V‰V‹X€FØ�m‰m˜A˜b˜c˜FÓ#€GØ�4‰=œFŸMšM¨&Ó1Ó1Ð1Ð1äˆs�~‰~Ó !Ó#Ð#Ð#à�>‰>˜!Ñ˜RÑ ¤F§M¢M°&Ó$9Ó9Ð9Ñ9r2   zy, msg)r   r4   r   r   z'Found input variables with inconsistent)r   r4   r   z7Target type was inferred to be 'multiclass-multioutput'c                 óæ   • [         R                  " / SQ/5      R                  n[        5       n[        R
                  " [        US9   UR                  X 5        SSS5        g! , (       d  f       g= f)zCheck invalidate input.)r   r   r   ©ÚmatchN)r   rR   rT   r   rd   ÚraisesÚ
ValueErrorr^   )r®   Úmsgr­   r¥   s       r0   Útest_errorsr·   7  sI   € ô 	�Š’)�Ó×Ñ€Aä
‹/€CÜ	�Š”z¨Ó	-Ø×Ñ˜!Ô÷ 
.×	-Ö	-ús   ÁA"Á"
A0c                  óº  • [         R                  " / SQ/5      R                  n [         R                  " / SQ5      n[        SS9n[        R
                  " [        [        R                  " S5      S9   UR                  X5        SSS5        UR                  S:X  d   e[        SS	S
9nUR                  X5        UR                  S	:X  d   eg! , (       d  f       NN= f)z@Check inferred and specified `target_type` on regression target.)r   r   r   r   r   r   )r6   ç       @r7   r¹   r7   rª   r4   ©rP   zQThe least populated class in y has only 1 members, which is less than n_splits=2.r²   Nr…   rA   )rP   r?   )r   rR   rT   r   rd   ÚwarnsÚUserWarningÚreÚescaper^   r_   )r­   r®   r¥   s      r0   Útest_use_regression_targetr¿   J  s·   € ä
�ŠÒ$Ð%Ó&×(Ñ(€AÜ
�ŠÒ/Ó0€Aä
˜1Ñ
€CÜ	�ŠÜÜ�iŠiðó
ó
ð 	×Ñ˜!Ô÷
ð ×Ñ˜|Ó+Ð+Ð+ä
˜1¨,Ñ
7€CØ×Ñ�aÔØ×Ñ˜|Ó+Ð+Ñ+÷
õ 
ús   Á2CÃ
Czy, feature_namesr4   ÚAÚBé   )ÚA_1ÚA_2ÚA_3ÚB_1ÚB_2ÚB_3)Úy1Úy2Úy3rÉ   rÊ   )ÚA_y1ÚA_y2ÚA_y3ÚB_y1ÚB_y2ÚB_y3c                 óÚ  • [         R                  " S5      nUR                  SS/S-  SS/S-  S.5      n[        SSS	S
9n[	        USS9nUR                  SS9  [	        USS9nUR                  SS9  UR                  X05      nUR                  X05      n[        UR                  5       U5        [        UR                  5       U5        [        UR                  5       UR                  5        g)z*Check TargetEncoder works with set_output.Úpandasr€   r�   r¨   r   r4   )rÀ   rÁ   r   TrK   r7   ©rP   r$   Údefault)rg   N)rd   ÚimportorskipÚ	DataFramer
   r   Ú
set_outputr^   r   Úto_numpyr   Úget_feature_names_outÚcolumns)	r®   Úfeature_namesÚpdÚX_dfrP   Úenc_defaultÚ
enc_pandasÚ	X_defaultÚX_pandass	            r0   Ú!test_feature_names_out_set_outputrã   _  sÞ   € ô 
×	Ò	˜XÓ	&€Bà�<‰<˜s C˜j¨2™o°Q¸°F¸R±KÑ@ÓA€Dä	 !°!¸TÑ	B€BÜ 2¨cÑ2€KØ×Ñ YÐÑ/Ü "¨SÑ1€JØ×Ñ HÐÑ-à×)Ñ)¨$Ó2€IØ×'Ñ'¨Ó0€Hä�H×%Ñ%Ó'¨Ô3Ü�z×7Ñ7Ó9¸=ÔIÜ�z×7Ñ7Ó9¸8×;KÑ;KÕLr2   Ú	to_pandasTF)úbinary-intsú
binary-strrA   c                 ó¢  • [         R                  " SS/SS/SS/SS/SS/SS/SS/SS//[         R                  S9nUS:X  a=  [         R                  " / SQ5      n[        5       R	                  U5      n[        SSSS9nOuUS	:X  a=  [         R                  " / S
Q5      n[        5       R	                  U5      n[        SSSS9nO2[         R                  " / SQ[         R                  S9nUn[        SSSS9n[         R                  " U5      n/ SQSS//n[         R                  " SS/SS/SS//[         R                  S9n	U (       ar  [        R                  " S5      n
U
R                  USS2S4   [         R                  " SS/[        S9USS2S4      S.5      nU
R                  U	SS2S4   / SQS.5      n	OUn[         R                  " U[         R                  S9n[        U5       HP  u  pÞUR!                  X55       H6  u  nnX?U4   X_   nn[#        UU[%        U5      U5      nUUUU4      UUU4'   M8     MR     / n[        U5       H4  u  pÞ[#        USS2U4   U[%        U5      U5      nUR'                  U5        M6     [         R                  " US   S   US   S   /UUS   S   /US   S   U//[         R                  S9n[)        XS9nUR	                  X´5      n[+        UU5        [%        UR,                  5      S:X  d   e[/        S5       H  n[+        UR,                  U   UU   5        M!     UR1                  U	5      n[+        UU5        g)z,Check target encoder with multiple features.r   r   r4   r   ræ   )r€   r�   r€   r€   r�   r�   r€   r�   T)rM   rN   rå   )r=   r5   r=   r=   r=   r5   r5   r5   )r7   gffffff@g333333@g      @gffffff@g      @çš™™™™™$@g333333@r3   r=   r¨   rÓ   Nr9   r:   )Úfeat0Úfeat1)r:   r9   r;   r„   )r   rR   rS   r   r^   r
   Úfloat32r   r   rd   rÖ   r×   rY   r\   r   r‹   r]   r1   r`   rŒ   r   r   ra   r   rg   )rä   r$   r?   r!   rq   Ú	y_integerrP   r&   rO   rn   rÝ   rm   rs   rš   r›   rt   ru   rv   rw   rž   rz   r{   r¥   ry   r    r|   s                             r0   Útest_multiple_features_quickrí   ~  sa  € ô
 —’Ø
ˆQˆ�!�Q�˜!˜Q˜ ! Q ¨!¨Q¨°!°Q°¸!¸Q¸À!ÀQÀÐHÔPR×PXÑPXñ€Ið �lÓ"Ü—(’(ÒCÓDˆÜ “N×0Ñ0°Ó9ˆ	Ü˜Q¨Q¸Ñ=‰Ø	˜Ó	%Ü—(’(Ò3Ó4ˆÜ “N×0Ñ0°Ó9ˆ	Ü˜Q¨Q¸Ñ=‰ä—(’(ÒDÌBÏJÉJÑWˆØˆ	Ü�1 1¨dÑ3ˆÜ�WŠW�YÓ€FÚ˜a ˜VÐ$€Jä�XŠXà�ˆFØ�ˆFØ�ˆGð	
ô
 �h‰hñ€Fö Ü× Ò  Ó*ˆà—,‘,à"¢1 a 4™ÜŸš 5¨% .¼Ñ?À	Ê!ÈQÈ$ÁÑPñó
ˆð —‘¨ªq°!¨t©Ò?VÑWÓX‰àˆô  "Ÿ}š}¨Y¼b¿j¹jÑIÐÜ  Ö,‰ˆØ#%§8¡8¨IÖ#AÑˆI�xØ¨%Ð/Ñ0°)Ñ2F�ˆBÜ-¨b°"´c¸$³iÀÓHÐØ8HØ˜( E˜/Ñ*ñ9Ð$ X¨u _Ó5ó $Bñ -ð ÐÜ  Ö,‰ˆÜ)Ø’a˜�hÑ ¬C°«I°vó
Ðð 	×!Ñ!Ð"2Ö3ñ	 -ô !#§¢à Ñ" 1Ñ%Ð'9¸!Ñ'<¸QÑ'?Ð@ØÐ'¨Ñ*¨1Ñ-Ð.Ø Ñ" 1Ñ% vÐ.ð	
ô
 �j‰jñ!Ðô ˜vÑ
-€CØ×'Ñ'¨Ó9€OÜ�OÐ%=Ô>äˆs�~‰~Ó !Ó#Ð#Ð#Ü�1ŽXˆÜ˜Ÿ™ qÑ)Ð+=¸aÑ+@ÖAñ ð —}‘} VÓ,ÐÜÐ$Ð&?Õ@r2   z	y, y_meang333333@rC   r€   )rA   r@   zbinary-string)Úids)r   rª   ç        c           	      ón  • [         R                  " S/S-  /5      R                  nUR                  S   n[	        U 5      S:X  a  [        SSSS9nO[        SSSS9n[        XRS9nUR                  X05      n[        U[         R                  " U//USS	95        UR                  S   S   [        R                  " U5      :X  d   eUR                  [        R                  " U5      :X  d   e[         R                  " S/S//5      nUR                  U5      n	[        U	[         R                  " U//SSS	95        g
)z5Check edge case where feature and target is constant.r   rC   r   rA   r4   TrK   rÔ   r‡   N)r   rR   rT   r   r   r   r
   r   r^   r   Úrepeatra   rd   re   rc   rg   )
r®   r&   r$   r­   rl   rP   r¥   r¯   rn   ÚX_test_transs
             r0   Ú test_constant_target_and_featureró   Ó  s  € ô 	�Š�1�#˜‘(�Ó×Ñ€AØ—‘˜‘
€Iä�aÓ˜LÓ(Ü˜A¨A°tÑ<‰ä a°aÀÑFˆÜ
˜2Ñ
-€CØ×Ñ Ó%€GÜ�GœRŸYšY¨¨ z°9À1ÑEÔFØ�>‰>˜!Ñ˜QÑ¤6§=¢=°Ó#8Ó8Ð8Ð8Ø×ÑœvŸ}š}¨VÓ4Ó4Ð4Ð4ä�XŠX˜�s˜Q˜C�jÓ!€FØ—=‘= Ó(€LÜ�L¤"§)¢)¨f¨X¨J¸ÀÑ"BÕCr2   c                 ó@  • SnSn[         R                  R                  U 5      nUR                  US9nUR	                  SXS9R                  SS5      nUR                  5       nXF   nXV   n[        [        SU SS	9S
9nUR                  XT5      n[        [        SSS9S
9nUR                  XT5      n	[        SSU S9n
[        SU S9n[        X¥XKS
9R                  5       S:  d   e[        X¨XKS
9R                  5       S:  d   e[        X©XKS
9R                  5       S:”  d   eg )NrD   i¸  ©rI   r   rQ   r   r4   TrK   rº   F©rL   rN   r¨   rC   )Ún_estimatorsÚmin_samples_leafrM   é2   ©rL   rM   çš™™™™™¹?ç      à?)r   rV   rW   ÚnormalrX   rf   Úargsortr   r   r^   r   r	   r   r   )ri   Úcardinalityrl   r�   rq   rm   Úy_sorted_indicesrx   ÚX_encoded_train_shuffledÚX_encoded_train_no_shuffledÚ	regressorrP   s               r0   ÚFtest_fit_transform_not_associated_with_y_if_ordinal_categorical_is_notr  ñ  sJ  € ð €KØ€IÜ
�)‰)×
Ñ
Ð 2Ó
3€CØ�j‰j˜iˆjÐ(€GØ�k‰k˜!˜[ˆkÐ9×AÑAÀ"ÀaÓH€Gð —‘Ó(ÐØÑ'€GØÑ'€Gä"Ü˜!Ð*<ÀdÑKñ€Nð  .×;Ñ;¸GÓMÐä"¤e°QÀÑ&FÑG€NØ"0×">Ñ">¸wÓ"PÐô &Ø¨"Ð;Mñ€Iô 
˜rÐ0BÑ	C€BÜ˜9¨wÑ>×CÑCÓEÈÓKÐKÐKä˜	¸WÑL×QÑQÓSØ
ó	ðð	ô 	˜	ÀÑO×TÑTÓVØ
ó	ðñ	r2   c                  óX  • [         R                  " / SQ/5      R                  n [         R                  " / SQ5      n[        S[	        SSS9S9nUR                  X5      n[        US   [         R                  " US	S
 5      5        [        US   [         R                  " US
S	 5      5        g
)zECheck edge case with zero smoothing and cv does not contain category.)
r   r   r   r   r   r   r   r   r   r   )
gÍÌÌÌÌÌ @g333333@g333333ó?gÍÌÌÌÌÌ@r6   g      "@rè   gffffff,@gš™™™™™*@g      .@rï   r4   Frö   r„   r   r†   NrQ   )r   rR   rT   r   r   r^   r   r   )r­   r®   r¥   r¯   s       r0   Útest_smooth_zeror  !  sˆ   € ä
�ŠÒ0Ð1Ó2×4Ñ4€AÜ
�ŠÒGÓH€Aä
˜s¤u°aÀÑ'GÑ
H€CØ×Ñ Ó%€Gô �G˜A‘J¤§¢¨¨!¨"¨£Ô/ô �G˜B‘K¤§¢¨¨2¨A¨£Õ0r2   )rï   g     @�@r   c           	      óV  • [         R                  R                  U5      nUR                  SS9nSn[	        USSS9R                  UR                  SS5      5      n[        XSUS	9u  pgp‰UR                  U5      n
X¦R                  [         R                  5         nX§R                  [         R                  5         n[        U [        S
SUS9S9nUR                  Xh5      nUR                  U5      nUR                  X¸5      nUR                  U5      n[        UU5        [        UU5        g )Niè  rõ   rD   Úaveraged_inverted_cdfÚordinal)Ún_binsÚquantile_methodÚencoderQ   r   ©rM   r4   T)rL   rN   rM   r„   )r   rV   rW   rý   r   r^   rf   r   r[   ÚastypeÚint32r   r   rg   r   )r$   ri   r�   r®   r#   r­   rm   rn   rq   Úy_testÚpermutated_labelsÚX_train_permutedÚX_test_permutedrx   ÚX_train_encodedÚX_test_encodedÚX_train_permuted_encodedÚX_test_permuted_encodeds                     r0   Ú3test_invariance_of_encoding_under_label_permutationr  2  s"  € ô
 �)‰)×
Ñ
Ð 2Ó
3€Cð 	�
‰
˜ˆ
Ð€AØ€LÜØÐ-DÈYñ	ç�m�A—I‘I˜b !Ó$Ó%ð ô (8Ø	Ð-ñ(Ñ$€G�Wð Ÿ™¨Ó5ÐØ(¯©¼¿¹Ó)AÑBÐØ'¯©´b·h±hÓ(?Ñ@€Oä"ØÜ˜! TÐ8JÑKñ€Nð %×2Ñ2°7ÓD€OØ#×-Ñ-¨fÓ5€Nà-×;Ñ;Ð<LÓVÐØ,×6Ñ6°ÓGÐä�OÐ%=Ô>Ü�NÐ$;Õ<r2   rï   c                 óœ  • [        SSSS9nSn[        R                  R                  U5      nUR	                  U5      nSUR	                  U5      -  nSn[        USS	US
9R                  XV-   R                  SS5      5      nUR                  U5      n	X˜R                  [        R                  5         nUR                  U5      n
UR                  [        SU-  5      USS9R                  SS5      n[        R                  " XŠU/SS9n[        XÅSS9u  pÞnnUR                  Xß5      nUR!                  Xß5      S:  d   eUR!                  UU5      S:  d   e[#        SUS9n[%        ['        U US9U5      R                  Xß5      nUS   R(                  nUR!                  Xß5      S:”  d   U5       eUR!                  UU5      S:”  d   U5       eUS   [*        R,                  " SSS9:X  d   e[        R.                  " USS  5      S:  R1                  5       (       d   e['        U US9R                  Xß5      nUR3                  U5      nUR3                  U5      nUR                  UU5      nUR(                  nUR!                  UU5      S:”  d   U5       eUR!                  UU5      S:  d   U5       e[/        US   5      [/        US   5      :  d   eg )Ng�íµ ÷Æ°>ÚlsqrF)ÚalphaÚsolverÚfit_interceptiPÃ  gš™™™™™é?éd   r	  rZ   )r
  r  ÚstrategyrM   rQ   r   gÍÌÌÌÌÌì?T)rI   Úreplacer‡   r   r  rû   )rN   rM   r„   rü   g{®Gáz„?)Úabsgš™™™™™É?gffffffæ?r4   )r   r   rV   rW   Úrandnr   r^   rf   r[   r  r  ÚchoiceÚintrU   r   r¬   Úscorer   r   r   Úcoef_rd   re   r!  Úallrg   )r$   ri   Úlinear_regressionrl   r�   r®   Únoiser#   ÚX_informativer  Ú
X_shuffledÚX_near_unique_categoriesr­   rm   rn   rq   r  Ú	raw_modelrP   Úmodel_with_cvÚcoefrx   ÚX_enc_no_cv_trainÚX_enc_no_cv_testÚmodel_no_cvs                            r0   Ú*test_target_encoding_for_linear_regressionr3  Y  sð  € ô  D°ÀuÑMÐð €IÜ
�)‰)×
Ñ
Ð 2Ó
3€CØ�	‰	�)Ó€Að
 �#—)‘)˜IÓ&Ñ&€EØ€LÜ$ØØØØñ	÷
 �m�Q‘Y×'Ñ'¨¨AÓ.Ó/ð ð Ÿ™¨Ó5ÐØ%×&:Ñ&:¼2¿8¹8Ó&DÑE€Mð —‘ Ó/€Jð  #Ÿz™zÜˆC�)‰OÓ 9°dð  *ð  ç�gˆb�!ƒnð ô
 	�ŠØ	Ð$<Ð=Øñ	€Aô (8¸È1Ñ'MÑ$€G�W˜fð
 "×%Ñ% gÓ7€IØ�?‰?˜7Ó,¨sÓ2Ð2Ð2Ø�?‰?˜6 6Ó*¨SÓ0Ð0Ð0ô 
�t¨#Ñ	.€BÜ!Ü˜V¨Ñ+Ð->óç	�cˆ'Óð ð ˜Ñ×"Ñ"€DØ×Ñ˜wÓ0°3Ó6Ð<¸Ó<Ð6Ø×Ñ˜v vÓ.°Ó4Ð:°dÓ:Ð4ð �‰7”f—m’m A¨4Ñ0Ó0Ð0Ð0Ü�FŠF�4˜˜�8Ó˜sÑ"×'Ñ'×)Ñ)Ð)Ð)ô #¨&°RÑ8×<Ñ<¸WÓN€NØ&×0Ñ0°Ó9ÐØ%×/Ñ/°Ó7ÐØ#×'Ñ'Ð(9¸7ÓC€Kð ×Ñ€DØ×ÑÐ.°Ó8¸3Ó>ÐDÀÓDÐ>Ø×ÑÐ-¨vÓ6¸Ó<ÐB¸dÓBÐ<ô
 ˆt�A‰w‹<œ#˜d 1™g›,Ó&Ð&Ñ&r2   c                  óB  • [         R                  " SSS9n [        U R                  5      [        S5      :¼  a9  U R	                  / SQ/ SQS.5      n[        SS	9R                  US
/   US   5        g[        R                  " 5          Sn[        R                  " SU[        S9  U R                  SS5         U R	                  / SQ/ SQS.5      n[        SS	9R                  US
/   US   5        SSS5        SSS5        g! , (       d  f       N= f! , (       d  f       g= f)z¨
Test target-encoder cython code when y is read-only.

The numpy array underlying df["y"] is read-only when copy-on-write is enabled.
Non-regression test for gh-27879.
rÓ   z2.0)Ú
minversionz4.0)r€   r�   r�   )rª   r>   r8   )Úxr®   rA   )r?   r6  r®   zU.*Copy-on-Write can no longer be disabled.*This option will be removed in pandas 4\.0Úignore)ÚmessageÚcategoryzmode.copy_on_writeTN)rd   rÖ   r   Ú__version__r×   r   r¬   ÚwarningsÚcatch_warningsÚfilterwarningsÚDeprecationWarningÚoption_context)rÝ   ÚdfÚexpected_messages      r0   Útest_pandas_copy_on_writerB  Ë  só   € ô 
×	Ò	˜X°%Ñ	8€Bô
 �R—^‘^Ó$¬°eÓ(<Ó<Ø�\‰\¢²oÑFÓGˆÜ ,Ñ/×3Ñ3°B¸°u±I¸rÀ#¹wÕGä×$Ò$Õ&ð.ð ô ×#Ò#ØØ(Ü+òð
 ×"Ñ"Ð#7¸Õ>Ø—\‘\ªºoÑ"NÓO�Ü¨,Ñ7×;Ñ;¸BÀ¸u¹IÀrÈ#ÁwÔO÷ ?÷ 'Ð&÷ ?Õ>ú÷ 'Õ&ús$   Â/DÂ59C?Ã.DÃ?
D	Ä	DÄ
Dc                 óT  • [        SSSS9u  p[        5       R                  X5      n[        US9nUR	                  X5        [        SU S9R                  X5      n[        US9nSn[        R                  " [        US	9   UR	                  X5        S
S
S
5        g
! , (       d  f       g
= f)zB
Test that `TargetEncoder` raises if `cv` has overlapping splits.
r  r=   r   ©rl   r�   rM   rº   r†   rú   zFValidation indices from `cv` must cover each sample index exactly oncer²   N)	r   r   r]   r   r^   r	   rd   r´   rµ   )ri   r­   r®   Únon_overlapping_iterableÚencoderÚoverlapping_iterabler¶   s          r0   Ú%test_target_encoder_raises_cv_overlaprH  ê  s”   € ô  S°QÀQÑG�D€Aä$›wŸ}™}¨QÓ2ÐÜÐ7Ñ8€GØ×Ñ˜!Ôä'ØÐ!3ñç�eˆAƒkð ô Ð3Ñ4€GØ
R€CÜ	�Š”z¨Ó	-Ø×Ñ˜aÔ#÷ 
.×	-Ö	-ús   Á>BÂ
B'c                  óV  • [        SSSS9u  pSn[        R                  " [        US9   [	        SS9nUR                  X5        S S S 5        [        R                  " [        US9   [	        SS	9nUR                  X5        S S S 5        g ! , (       d  f       NK= f! , (       d  f       g = f)
Nr  r=   r   rD  zG`TargetEncoder.shuffle` and `TargetEncoder.random_state` are deprecatedr²   F)rN   r  )r   rd   r»   ÚFutureWarningr   r^   )r­   r®   r¶   rF  s       r0   Ú3test_target_encoder_shuffle_random_state_deprecatedrK  þ  s„   € Ü S°QÀQÑG�D€AØ
S€CÜ	�Š”m¨3Ó	/Ü¨Ñ.ˆØ×Ñ˜aÔ#÷ 
0ô 
�Š”m¨3Ó	/Ü¨QÑ/ˆØ×Ñ˜aÔ#÷ 
0Ð	/÷ 
0Õ	/ú÷ 
0Õ	/ús   ©B	Á%BÂ	
BÂ
B()7r½   r;  Únumpyr   rd   Únumpy.testingr   r   Úsklearn.datasetsr   Úsklearn.ensembler   Úsklearn.linear_modelr   Úsklearn.model_selectionr   r	   r
   r   r   Úsklearn.pipeliner   Úsklearn.preprocessingr   r   r   r   Úsklearn.utils.fixesr   Úsklearn.utils.multiclassr   r1   ÚmarkÚparametrizerR   rS   Únanr   rY   r}   r§   rT   r°   r·   r¿   rã   rí   ró   r  r  r  r3  rB  rH  rK  © r2   r0   Ú<module>rZ     sÁ  ðÛ 	Û ã Û ß =å ,Ý 2Ý &÷õ õ +÷ó õ .Ý 3òð< ‡�×ÑØà
�(Š(’9 B§H¡HÑ
-Ð	.°Ð2Ø
�(Š(�C˜˜bŸf™fÐ%¨R¯Z©ZÑ
8Ð	9¸3Ð?Ø
�(Š(Ò*°&Ñ
9Ð	:¸FÐCØð	óð ‡�×Ñ˜ C¨ =Ó1Ø‡�×Ñ˜¨°<Ð(@ÓAñ\Aó Bó 2óð\Að~ ‡�×ÑØ à
�(Š(’9 B§H¡HÑ
-Ð	.°Ð7Ø
�(Š(Ò*°&Ñ
9Ð	:¸VÀXÐ<NÐOðóð ‡�×ÑØ�b—h’hšyÓ)¨2¯8ª8²OÓ+DÐEóð ‡�×Ñ˜ C¨ =Ó1ñdAó 2óóðdAðN ‡�×ÑØð �HŠH�q�c˜B‘h !  r¡Ñ)¨Q¨CÑ/Ð0¸¿¹ÑA×CÑCÚˆKð	
ð
 �HŠHØ�˜2‘  ¨"¡Ñ,°¨yÑ8Ð9Àñç‰aÚ"Ð#ð		
ðóð ‡�×Ñ˜ C¨ =Ó1ñ:ó 2óð :ð  ‡�×ÑØâ	Ð@ÐAà�HŠH’i¢Ð+Ó,×.Ñ.ØEð	
ðó	ñ ó	ð ò,ð* ‡�×ÑØà
ˆQˆ�"‰�s˜C�jÐ!Ú	�Q‰˜!˜Q˜Ñ	Ò!KÐLâ Ñ" d¨D \Ñ1Ú<ð	
ðó
ñMó
ðMð( ‡�×Ñ˜ t¨U mÓ4Ø‡�×Ñ˜ C¨ =Ó1Ø‡�×Ñ˜Ò(SÓTñOAó Uó 2ó 5ðOAðd ‡�×ÑØà	�Š�3�%˜"‘*Ó	˜sÐ#Ø	�Š�1�#˜‘(Ó	˜QÐØ	�Š�3�%˜"‘* FÑ	+¨QÐ/ðò
 	2ð ð ð ‡�×Ñ˜Ò#5Ó6ñDó 7óðDò(-ò`1ð" ‡�×Ñ˜Ò#5Ó6ñ#=ó 7ð#=ðL ‡�×Ñ˜ C¨ =Ó1ñn'ó 2ðn'òbPò>$ó($r2   