Ë
    8Ò^jbv  ã            	       óü  — d dl Z d dlZd dlZd dlZd dlmZ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mZmZ d d	lmZ d d
lmZ d„ Zej@                  jC                  d ejD                  g d¢ejF                  ¬«      gdf ejD                  ddejH                  gejJ                  ¬«      gdf ejD                  g d¢e&¬«      gdfdg«      ej@                  jC                  dddg«      ej@                  jC                  dddg«      d„ «       «       «       Z'ej@                  jC                  d ejD                  g d¢ejF                  ¬«      gdf ejD                  g d¢e&¬«      gddgfg«      ej@                  jC                  d ejD                  g d ¢«       ejD                  g d!¢«      g«      ej@                  jC                  dddg«      d"„ «       «       «       Z(ej@                  jC                  d# ejD                  d gd$z  d%gd$z  z   d&gz   gejF                  ¬«      jR                  g d¢gf ejD                  d'gd$z  d(gd$z  z   d)gz   ge&¬«      jR                  g d*¢gfg«      ej@                  jC                  dd+dg«      d,„ «       «       Z*ej@                  jC                  d-g d.¢d/f ejD                  g d0¢g d ¢g«      jR                  d1fg«      d2„ «       Z+d3„ Z,ej@                  jC                  d4d%d5gd$z  d6d7gfg d ¢d8z  d%d5gz   g d9¢fg d:¢d8z  d;d<gz   g d=¢fg«      d>„ «       Z-ej@                  jC                  d?d@dAg«      ej@                  jC                  dddg«      ej@                  jC                  dg dB¢«      dC„ «       «       «       Z.ej@                  jC                  dD ejD                  dEgdFz  «      dEf ejD                  d gdFz  «      d f ejD                  dGgdFz  e&¬«      d fgg dH¢¬I«      ej@                  jC                  dg dJ¢«      dK„ «       «       Z/dL„ Z0dM„ Z1ej@                  jC                  dg dN¢«      dO„ «       Z2ej@                  jC                  ddPdg«      dQ„ «       Z3dR„ Z4dS„ Z5dT„ Z6y)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                 ó<  — t        j                  |t         j                  ¬«      }t        j                  |«      }|dk(  r�t        j                  |«      }t        |«      D ]j  }|| |k(     }|j                  d   }	|	dk(  r|||<   Œ%t        j                  |«      }
|
|z  }|	|	|z   z  }|t        j                  |«      z  d|z
  |z  z   ||<   Œl |S t        |«      D ]?  }|| |k(     }t        j                  |«      ||z  z   }|j                  d   |z   }||z  ||<   ŒA |S )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                  úz/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/sklearn/preprocessing/tests/test_target_encoder.pyÚ_encode_targetr1      s7  € ä—H‘H˜\´·±Ô<€MÜ�W‰W�YÓ€Fà�ÒÜ—V‘V˜IÓ&ˆ
Ü�|Ó$ò 	TˆAØ  ¨a¡Ñ0ˆHØ—.‘. Ñ#ˆCà�aŠxØ#)�˜aÑ Øä "§¡ xÓ 0ÐØ! JÑ.ˆAØ˜S 1™W‘oˆGà&¬¯©°Ó):Ñ:¸aÀ'¹kÈVÑ=SÑSˆM˜!Òð	Tð Ðä�|Ó$ò 	9ˆAØ  ¨a¡Ñ0ˆHÜŸ&™& Ó*¨V°f©_Ñ<ˆKØ"Ÿ.™.¨Ñ+¨fÑ4ˆKØ*¨[Ñ8ˆM˜!Òð		9ð
 Ðó    zcategories, unknown_value©r   r   é   r   é   ç      ð?ç      @ç      @)ÚcatÚdogÚsnakeÚbear)r   é   r$   ç      @r   Útarget_typeÚbinaryÚ
continuousc                 óF  — d}t        j                  dgdz  dgdz  z   dgdz  z   gt         j                  ¬«      j                  }t        j                  g d	¢gt         j                  ¬«      j                  }|j                  d   }| d
k(  r|}	|}
n| d   |   }	| d   |   }
t        j
                  |
|ggf«      }
t         j                  j                  |«      }d}|dk(  r7|j                  dd|¬«      }t        j                  ddgt        ¬«      }||   }n|dk(  sJ ‚|j                  dd|¬«      }|}|j                  |«      }||   }|	|   }	||   }||   }|dk(  rt        ||d¬«      }nt        ||d¬«      }t        j                  |t         j                  ¬«      }|j!                  ||«      D ].  \  }}||df   ||   }}t#        ||||«      }|||df      ||df<   Œ0 t%        || |¬«      }|j'                  |	|«      }|j(                  |k(  sJ ‚t+        ||«       t-        |j.                  «      dk(  sJ ‚|dk(  rt1        |j2                  «       n|j2                  �J ‚t        j4                  |«      }t#        |dd…df   |||«      }t+        |j.                  d   |«       |j6                  t9        j:                  |«      k(  sJ ‚t        j
                  |t        j                  |g«      f«      j=                  dd«      }|j?                  |
«      }t+        ||«       y)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}   ;   s]  € ð& €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Ô=ˆØ˜yÑ)‰ð ˜lÒ*Ð*Ð*Ø×$Ñ$¨°2¸IÐ$ÓFˆ	Øˆà×'Ñ'¨	Ó2€LØ)¨,Ñ7ÐØ�lÑ#€GØ�lÑ#€GØ˜,Ñ'€Ið �hÒÜØÐ,>Èô
‰ô ˜HÐ3EÈtÔTˆô  "Ÿ}™}Ð->ÄbÇjÁjÔQÐà!Ÿx™xÐ(9¸7ÓCò 
Ñˆ	�8Ø" 9¨a <Ñ0°)¸IÑ2FˆBˆÜ& r¨2¨|¸VÓDˆØ0=Ø˜h¨˜kÑ*ñ1
Ð  ¨1 Ò-ð
ô #ØØØô€Nð %×2Ñ2°7¸GÓD€Oà×&Ñ&¨+Ò5Ð5Ð5Ü�OÐ%=Ô>Üˆ~×(Ñ(Ó)¨QÒ.Ð.Ð.Ø�hÒÜ˜>×2Ñ2°LÕAà×&Ñ&Ð.Ð.Ð.ô �W‰W�YÓ€FÜ'Øš!˜Q˜$Ñ ¨L¸&óÐô �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           
      óš  — t         j                  j                  | «      }d}d}t        j                  |j	                  dd|¬«      «      }t        j                  |j	                  dd|¬«      «      }	|d   |   }
|d   |	   }t        j
                  |
|f«      }t        j
                  ||	f«      }ddgg d¢g}d}t        j                  |j	                  d||¬«      «      }||   }t        «       j                  |«      }d}t        || d¬	«      }t        j                  |j                  d   |j                  d   |z  ft         j                  ¬
«      }t        |«      D ]r  \  }}t        |«      D ]_  }|j                  ||«      D ]H  \  }}|dd…|f   }|||f   ||   }}t        ||t!        |«      |«      }|||z  z   }||||f      |||f<   ŒJ Œa Œt t#        ||¬«      } | j                  ||«      }!| j$                  dk(  sJ ‚t'        |!|«       g }"t        |«      D ]M  \  }}t        |«      D ]:  }|dd…|f   }t        |dd…|f   |t!        |«      |«      }|"j)                  |«       Œ< ŒO t!        | j*                  «      ||z  k(  sJ ‚t        ||z  «      D ]  }#t'        | j*                  |#   |"|#   «       Œ  t-        | j.                  |«       t        j                  ddgddgddgg«      }$|dk(  r|$}%nnt        j0                  |$dd…dd…f   t2        ¬
«      }%t        |$j                  d   «      D ]  }&|d   |$dd…|&f      |%dd…|&f<   Œ t        j4                  |%|f«      }%t        j6                  |d¬«      }'t        j                  |$j                  d   |$j                  d   |z  ft         j                  ¬
«      }(|$j                  d   })g d¢}t        |)dz
  «      D ]'  }*t        |"«      D ]  \  }#}+|+|$|*||#   f      |(|*|#f<   Œ Œ) g d¢},t        ||z  «      D ]  }#|'|,|#      |(|)dz
  |#f<   Œ | j9                  |%«      }-t'        |-|(«       y)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 vÐ.Ó/€GÜ—/‘/ :¨zÐ":Ó;€KØ�q�6š9Ð%€Kà€IÜ—(‘(˜3Ÿ;™;¨1°9À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Ð):Ò;ñ
ñ	ðô #ØØô€Nð %×2Ñ2°7¸GÓD€Oà×&Ñ&¨,Ò6Ð6Ð6Ü�OÐ%=Ô>ð ÐÜ  Ó-ò 8‰ˆˆtÜ˜9Ó%ò 	8ˆEØ!¢! U (Ñ+ˆGÜ-ØšA˜u˜HÑ% w´°D³	¸6ó Ðð ×%Ñ%Ð&6Õ7ñ	8ð8ô ˆ~×(Ñ(Ó)¨Z¸)Ñ-CÒCÐCÐCÜ�: 	Ñ)Ó*ò MˆÜ˜×1Ñ1°!Ñ4Ð6HÈÑ6KÕLðMä�~×.Ñ.°Ô>ô —‘˜A˜q˜6 A q 6¨A¨q¨6Ð2Ó3€JØ˜ÒØ‰ä—‘˜z¨#¨2¨#ªq¨&Ñ1¼Ô@ˆÜ 
× 0Ñ 0°Ñ 3Ó4ò 	OˆJØ$.¨q¡M°*¸S¸b¸SÀ*¸_Ñ2MÑ$NˆF’1�j�=Ò!ð	Oô —‘˜F NÐ3Ó4ˆä�W‰W�[ qÔ)€FÜ "§¡Ø	×	Ñ	˜!Ñ	˜j×.Ñ.¨qÑ1°IÑ=Ð>Ü�j‰jô!Ðð ×Ñ˜aÑ €FÚ€Eä˜ !™Ó$ò WˆÜÐ 2Ó3ò 	W‰FˆAˆsØ47¸
À7ÈEÐRSÉHÐCTÑ8UÑ4VÐ% g¨q jÒ1ñ	WðWò "€HÜ�9˜zÑ)Ó*ò GˆØ39¸(À1¹+Ñ3FÐ! &¨1¡*¨a -Ò0ðGð &×/Ñ/°Ó7ÐÜÐ$Ð&?Õ@r2   zX, categoriesé
   r   r=   r9   r:   r;   )r:   r9   Úcowç      @c                 óÊ  — t         j                  j                  d«      }|j                  dd| j                  d   ¬«      }t        ||d¬«      j                  | |«      }|j                  «       }|j                  | dd «      }|d   t        j                  |«      k(  sJ ‚t        |j                  «      d	k(  sJ ‚|j                  d   d   t        j                  |«      k(  sJ ‚y)
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Ü
 :°fÈ1Ô
M×
QÑ
QÐRSÐUVÓ
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                 óà   — t        j                  g d¢g«      j                  }t        «       }t	        j
                  t        |¬«      5  |j                  || «       ddd«       y# 1 sw Y   yxY w)zCheck invalidate input.)r   r   r   ©ÚmatchN)r   rR   rT   r   rd   ÚraisesÚ
ValueErrorr^   )r®   Úmsgr­   r¥   s       r0   Útest_errorsr·   7  sT   € ô 	�‰’)�Ó×Ñ€Aä
‹/€CÜ	�‰”z¨Ô	-ñ  Ø×Ñ˜!˜QÔ÷ ÷  ñ  ús   ÁA$Á$A-c                  óº  — t        j                  g d¢g«      j                  } t        j                  g d¢«      }t        d¬«      }t	        j
                  t        t        j                  d«      ¬«      5  |j                  | |«       ddd«       |j                  dk(  sJ ‚t        dd	¬
«      }|j                  | |«       |j                  d	k(  sJ ‚y# 1 sw Y   ŒKxY w)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ðó
ô
ñ  ð 	×Ñ˜!˜QÔ÷ ð ×Ñ˜|Ò+Ð+Ð+ä
˜1¨,Ô
7€CØ×Ñ�a˜ÔØ×Ñ˜|Ò+Ð+Ñ+÷ ð  ús   Á4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                 óú  — t        j                  d«      }|j                  ddgdz  ddgdz  dœ«      }t        ddd	¬
«      }t	        |d¬«      }|j                  d¬«       t	        |d¬«      }|j                  d¬«       |j                  || «      }|j                  || «      }t        |j                  «       |«       t        |j                  «       |«       t        |j                  «       |j                  «       y)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Ø×'Ñ'¨¨aÓ0€Hä�H×%Ñ%Ó'¨Ô3Ü�z×7Ñ7Ó9¸=ÔIÜ�z×7Ñ7Ó9¸8×;KÑ;KÕLr2   Ú	to_pandasTF)úbinary-intsú
binary-strrA   c                 ó¸  — t        j                  ddgddgddgddgddgddgddgddggt         j                  ¬«      }|dk(  r?t        j                  g d¢«      }t        «       j	                  |«      }t        ddd¬«      }n{|d	k(  r?t        j                  g d
¢«      }t        «       j	                  |«      }t        ddd¬«      }n7t        j                  g d¢t         j                  ¬«      }|}t        ddd¬«      }t        j                  |«      }g d¢ddgg}t        j                  ddgddgddggt         j                  ¬«      }	| rst        j                  d«      }
|
j                  |dd…df   t        j                  ddgt        ¬«      |dd…df      dœ«      }|
j                  |	dd…df   g d¢dœ«      }	n|}t        j                  |t         j                  ¬«      }t        |«      D ]Q  \  }}|j!                  ||«      D ]7  \  }}|||f   ||   }}t#        ||t%        |«      |«      }||||f      |||f<   Œ9 ŒS g }t        |«      D ]4  \  }}t#        |dd…|f   |t%        |«      |«      }|j'                  |«       Œ6 t        j                  |d   d   |d   d   g||d   d   g|d   d   |ggt         j                  ¬«      }t)        ||¬«      }|j	                  ||«      }t+        ||«       t%        |j,                  «      dk(  sJ ‚t/        d«      D ]  }t+        |j,                  |   ||   «       Œ  |j1                  |	«      }t+        ||«       y)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í   ~  s„  € ô
 —‘Ø
ˆ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ÐÜ  Ó,ò ‰ˆˆtØ#%§8¡8¨I°yÓ#Aò 	ÑˆI�xØ˜y¨%Ð/Ñ0°)¸IÑ2F�ˆBÜ-¨b°"´c¸$³iÀÓHÐØ8HØ˜( E˜/Ñ*ñ9Ð$ X¨u _Ò5ñ	ðð ÐÜ  Ó,ò 4‰ˆˆtÜ)Ø’a˜�hÑ ¬C°«I°vó
Ðð 	×!Ñ!Ð"2Õ3ð	4ô !#§¡à Ñ" 1Ñ%Ð'9¸!Ñ'<¸QÑ'?Ð@ØÐ'¨Ñ*¨1Ñ-Ð.Ø Ñ" 1Ñ% vÐ.ð	
ô
 �j‰jô!Ðô ˜v¨"Ô
-€CØ×'Ñ'¨°Ó9€OÜ�OÐ%=Ô>äˆs�~‰~Ó !Ò#Ð#Ð#Ü�1‹Xò BˆÜ˜Ÿ™ qÑ)Ð+=¸aÑ+@ÕAðBð —}‘} VÓ,ÐÜÐ$Ð&?Õ@r2   z	y, y_meang333333@rC   r€   )rA   r@   zbinary-string)Úids)r   rª   ç        c                 ó~  — t        j                  dgdz  g«      j                  }|j                  d   }t	        | «      dk(  rt        ddd¬«      }nt        ddd¬«      }t        ||¬«      }|j                  || «      }t        |t        j                  |gg|d¬	«      «       |j                  d   d   t        j                  |«      k(  sJ ‚|j                  t        j                  |«      k(  sJ ‚t        j                  dgdgg«      }|j                  |«      }	t        |	t        j                  |ggdd¬	«      «       y
)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 fÔ
-€CØ×Ñ  1Ó%€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                 ó’  — d}d}t         j                  j                  | «      }|j                  |¬«      }|j	                  d||¬«      j                  dd«      }|j                  «       }||   }||   }t        t        d| d¬	«      ¬
«      }|j                  ||«      }t        t        dd¬«      ¬
«      }|j                  ||«      }	t        dd| ¬«      }
t        d| ¬«      }t        |
|||¬
«      j                  «       dk  sJ ‚t        |
|||¬
«      j                  «       dk  sJ ‚t        |
|	||¬
«      j                  «       dkD  sJ ‚y )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  ñ  sd  € ð €KØ€IÜ
�)‰)×
Ñ
Ð 2Ó
3€CØ�j‰j˜iˆjÓ(€GØ�k‰k˜!˜[¨yˆkÓ9×AÑAÀ"ÀaÓH€Gð —‘Ó(ÐØÐ&Ñ'€GØÐ&Ñ'€Gä"Ü˜!Ð*<ÀdÔKô€Nð  .×;Ñ;¸GÀWÓMÐä"¤e°QÀÔ&FÔG€NØ"0×">Ñ">¸wÈÓ"PÐô &Ø¨"Ð;Mô€Iô 
˜rÐ0BÔ	C€BÜ˜9 g¨w¸2Ô>×CÑCÓEÈÒKÐKÐKä˜	Ð#;¸WÈÔL×QÑQÓSØ
ò	ðð	ô 	˜	Ð#>ÀÈBÔO×TÑTÓVØ
ò	ðñ	r2   c                  ó^  — t        j                  g d¢g«      j                  } t        j                  g d¢«      }t        dt	        dd¬«      ¬«      }|j                  | |«      }t        |d   t        j                  |d	d
 «      «       t        |d   t        j                  |d
d	 «      «       y
)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Ø×Ñ  1Ó%€Gô �G˜A‘J¤§¡¨¨!¨"¨£Ô/ô �G˜B‘K¤§¡¨¨2¨A¨£Õ0r2   )rï   g     @�@r   c                 ó‚  — t         j                  j                  |«      }|j                  d¬«      }d}t	        |dd¬«      j                  |j                  dd«      «      }t        |||¬	«      \  }}}}	|j                  |«      }
|
|j                  t         j                  «         }|
|j                  t         j                  «         }t        | t        d
d|¬«      ¬«      }|j                  ||«      }|j                  |«      }|j                  ||«      }|j                  |«      }t        ||«       t        ||«       y )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  s0  € ô
 �)‰)×
Ñ
Ð 2Ó
3€Cð 	�
‰
˜ˆ
Ó€AØ€LÜØÐ-DÈYô	ç�m�A—I‘I˜b !Ó$Ó%ð ô (8Ø	ˆ1Ð-ô(Ñ$€GˆV�W˜fð Ÿ™¨Ó5ÐØ(¨¯©¼¿¹Ó)AÑBÐØ'¨¯©´b·h±hÓ(?Ñ@€Oä"ØÜ˜! TÐ8JÔKô€Nð %×2Ñ2°7¸GÓD€OØ#×-Ñ-¨fÓ5€Nà-×;Ñ;Ð<LÈgÓVÐØ,×6Ñ6°ÓGÐä�OÐ%=Ô>Ü�NÐ$;Õ<r2   rï   c                 óÆ  — t        ddd¬«      }d}t        j                  j                  |«      }|j	                  |«      }d|j	                  |«      z  }d}t        |dd	|¬
«      j                  ||z   j                  dd«      «      }|j                  |«      }	|	|j                  t        j                  «         }|j                  |«      }
|j                  t        d|z  «      |d¬«      j                  dd«      }t        j                  ||
|gd¬«      }t        ||d¬«      \  }}}}|j                  ||«      }|j!                  ||«      dk  sJ ‚|j!                  ||«      dk  sJ ‚t#        d|¬«      }t%        t'        | |¬«      |«      j                  ||«      }|d   j(                  }|j!                  ||«      dkD  sJ |«       ‚|j!                  ||«      dkD  sJ |«       ‚|d   t+        j,                  dd¬«      k(  sJ ‚t        j.                  |dd  «      dk  j1                  «       sJ ‚t'        | |¬«      j                  ||«      }|j3                  |«      }|j3                  |«      }|j                  ||«      }|j(                  }|j!                  ||«      dkD  sJ |«       ‚|j!                  ||«      dk  sJ |«       ‚t/        |d   «      t/        |d   «      k  sJ ‚y )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ÐØ% m×&:Ñ&:¼2¿8¹8Ó&DÑE€Mð —‘ Ó/€Jð  #Ÿz™zÜˆC�)‰OÓ 9°dð  *ó  ç�gˆb�!ƒnð ô
 	�‰Ø	˜
Ð$<Ð=Øô	€Aô (8¸¸1È1Ô'MÑ$€GˆV�W˜fð
 "×%Ñ% g¨wÓ7€IØ�?‰?˜7 GÓ,¨sÒ2Ð2Ð2Ø�?‰?˜6 6Ó*¨SÒ0Ð0Ð0ô 
�t¨#Ô	.€BÜ!Ü˜V¨Ô+Ð->óç	�cˆ'�7Óð ð ˜Ñ×"Ñ"€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ÀgÓ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                  ó>  — t        j                  dd¬«      } t        | j                  «      t        d«      k\  r<| j	                  g d¢g d¢dœ«      }t        d¬	«      j                  |d
g   |d   «       yt        j                  «       5  d}t        j                  d|t        ¬«       | j                  dd«      5  | j	                  g d¢g d¢dœ«      }t        d¬	«      j                  |d
g   |d   «       ddd«       ddd«       y# 1 sw Y   ŒxY w# 1 sw Y   yxY w)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ä×$Ñ$Ó&ñ 	Pð.ð ô ×#Ñ#ØØ(Ü+õð
 ×"Ñ"Ð#7¸Ó>ñ PØ—\‘\ªºoÑ"NÓO�Ü¨,Ô7×;Ñ;¸BÀ¸u¹IÀrÈ#ÁwÔO÷P÷	Pð 	P÷Pð Pú÷	Pð 	Pús$   Â	1DÂ:<DÃ6DÄD	ÄDÄDc                 óp  — t        ddd¬«      \  }}t        «       j                  ||«      }t        |¬«      }|j	                  ||«       t        d| ¬«      j                  ||«      }t        |¬«      }d}t        j                  t        |¬	«      5  |j	                  ||«       d
d
d
«       y
# 1 sw Y   y
xY w)zJ
    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€qä$›wŸ}™}¨Q°Ó2ÐÜÐ7Ô8€GØ×Ñ˜!˜QÔä'ØÐ!3ôç�eˆAˆqƒkð ô Ð3Ô4€GØ
R€CÜ	�‰”z¨Ô	-ñ $Ø×Ñ˜a Ô#÷$÷ $ñ $ús   ÂB,Â,B5c                  ób  — t        ddd¬«      \  } }d}t        j                  t        |¬«      5  t	        d¬«      }|j                  | |«       d d d «       t        j                  t        |¬«      5  t	        d¬	«      }|j                  | |«       d d d «       y # 1 sw Y   ŒLxY w# 1 sw Y   y xY w)
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€qØ
S€CÜ	�‰”m¨3Ô	/ñ $Ü¨Ô.ˆØ×Ñ˜a Ô#÷$ô 
�‰”m¨3Ô	/ñ $Ü¨QÔ/ˆØ×Ñ˜a Ô#÷$ð $÷$ð $ú÷$ð $ús   ¯BÁ1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ðóð ‡�×ÑØ�h�b—h‘hšyÓ)¨8¨2¯8©8²OÓ+DÐEóð ‡�×Ñ˜ C¨ =Ó1ñdAó 2óóðdAðN ‡�×ÑØð ˆB�H‰H�q�c˜B‘h !  r¡Ñ)¨Q¨CÑ/Ð0¸¿¹ÔA×CÑCÚˆKð	
ð
 ˆB�H‰HØ�˜2‘  ¨"¡Ñ,°¨yÑ8Ð9Àôç‰aÚ"Ð#ð		
ðóð ‡�×Ñ˜ C¨ =Ó1ñ:ó 2óð :ð  ‡�×ÑØâ	Ð@ÐAàˆB�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   