§
    ¨éUgql  ã            	       ó†  — 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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„ Zej                             d	 ej        g d
¢ej        ¬¦  «        gdf ej        ddej        gej        ¬¦  «        gdf ej        g d¢e¬¦  «        gdfdg¦  «        ej                             dddg¦  «        ej                             dddg¦  «        d„ ¦   «         ¦   «         ¦   «         Z ej                             d ej        g d
¢ej        ¬¦  «        gdf ej        g d¢e¬¦  «        gddgfg¦  «        ej                             d ej        g d¢¦  «         ej        g d¢¦  «        g¦  «        ej                             dddg¦  «        d„ ¦   «         ¦   «         ¦   «         Z!ej                             d  ej        d gd!z  d"gd!z  z   d#gz   gej        ¬¦  «        j"        g d
¢gf ej        d$gd!z  d%gd!z  z   d&gz   ge¬¦  «        j"        g d'¢gfg¦  «        ej                             dd(dg¦  «        d)„ ¦   «         ¦   «         Z#ej                             d*g d+¢d,f ej        g d-¢g d¢g¦  «        j"        d.fg¦  «        d/„ ¦   «         Z$d0„ Z%ej                             d1d"d2gd!z  d3d4gfg d¢d5z  d"d2gz   g d6¢fg d7¢d5z  d8d9gz   g d:¢fg¦  «        d;„ ¦   «         Z&ej                             d<d=d>g¦  «        ej                             dddg¦  «        ej                             dg d?¢¦  «        d@„ ¦   «         ¦   «         ¦   «         Z'ej                             dA ej        dBgdCz  ¦  «        dBf ej        d gdCz  ¦  «        d f ej        dDgdCz  e¬¦  «        d fgg dE¢¬F¦  «        ej                             dg dG¢¦  «        dH„ ¦   «         ¦   «         Z(dI„ Z)dJ„ Z*ej                             dg dK¢¦  «        dL„ ¦   «         Z+ej                             ddMdg¦  «        dN„ ¦   «         Z,dO„ Z-dS )Pé    N)Úassert_allcloseÚassert_array_equal)ÚRandomForestRegressor)ÚRidge)ÚKFoldÚShuffleSplitÚStratifiedKFoldÚcross_val_scoreÚtrain_test_split)Úmake_pipeline)ÚKBinsDiscretizerÚLabelBinarizerÚLabelEncoderÚTargetEncoderc                 ó<  — t          j        |t           j        ¬¦  «        }t          j        |¦  «        }|dk    r‘t          j        |¦  «        }t          |¦  «        D ]k}|| |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                  ún/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/preprocessing/tests/test_target_encoder.pyÚ_encode_targetr.      sG  € å”H˜\µ´Ð<Ñ<Ô<€MÝŒW�YÑÔ€Fà�ÒÐÝ”V˜IÑ&Ô&ˆ
Ý�|Ñ$Ô$ð 	Tð 	TˆAØ  ¨a¢Ô0ˆHØ”. Ô#ˆCà�aŠxˆxØ#)�˜aÑ Øå "¤ xÑ 0Ô 0ÐØ! JÑ.ˆAØ˜S 1™W‘oˆGà&­¬°Ñ):Ô):Ñ:¸aÀ'¹kÈVÑ=SÑSˆM˜!ÑÐØÐå�|Ñ$Ô$ð 	9ð 	9ˆAØ  ¨a¢Ô0ˆHÝœ& Ñ*Ô*¨V°f©_Ñ<ˆKØ"œ.¨Ô+¨fÑ4ˆKØ*¨[Ñ8ˆM˜!ÑÐØÐó    zcategories, unknown_value©r   r   é   r   é   ç      ð?ç      @ç      @)ÚcatÚdogÚsnakeÚbear)r   é   r!   ç      @r   Útarget_typeÚbinaryÚ
continuousc                 ó¼  — 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                             |¦  «        }d}|dk    r>|                     dd|¬¦  «        }t          j        ddgt          ¬¦  «        }||         }n"|dk    sJ ‚| 
                    dd|¬¦  «        }|}|                     |¦  «        }||         }|	|         }	||         }||         }|dk    rt          ||d¬¦  «        }nt          ||d¬¦  «        }t          j        |t           j        ¬¦  «        }|                     ||¦  «        D ]>\  }}||df         ||         }}t#          ||||¦  «        }|||df                  ||df<   Œ?t%          || ||¬¦  «        }|                     |	|¦  «        }|j        |k    sJ ‚t+          ||¦  «         t-          |j        ¦  «        dk    sJ ‚|dk    rt1          |j        |¦  «         n	|j        �J ‚t          j        |¦  «        }t#          |dd…df         |||¦  «        }t+          |j        d         |¦  «         |j        t9          j        |¦  «        k    sJ ‚t          j        |t          j        |g¦  «        f¦  «                             dd¦  «        }|                     |
¦  «        }t+          ||¦  «         dS )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   é   r1   é(   r   r0   r   r=   ©ÚlowÚhighÚsizer6   r7   r>   éöÿÿÿT©Ún_splitsÚrandom_stateÚshuffle)r!   Ú
categoriesÚcvrJ   Néÿÿÿÿ) r   ÚarrayÚint64ÚTr   ÚconcatenateÚrandomÚRandomStateÚrandintÚobjectÚuniformÚpermutationr	   r   Ú
empty_liker   Úsplitr.   r   Úfit_transformÚtarget_type_r   ÚlenÚ
encodings_r   Úclasses_r   Útarget_mean_ÚpytestÚapproxÚreshapeÚ	transform)rL   Úunknown_valueÚglobal_random_seedr!   r<   r    ÚX_train_int_arrayÚX_test_int_arrayÚ	n_samplesÚX_trainÚX_testÚdata_rngrI   r   Útarget_namesÚy_trainÚshuffled_idxrM   Ú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                                 r-   Útest_encodingrz   7   sÚ  € ð& €LÝœ 1 #¨¡(¨a¨S°2©XÑ"5¸¸¸b¹Ñ"@Ð!AÍÌÐRÑRÔRÔTÐÝ”x    µ2´8Ð<Ñ<Ô<Ô>ÐØ!Ô'¨Ô*€Ià�VÒÐØ#ˆØ!ˆˆà˜Q”-Ð 1Ô2ˆØ˜A”Ð/Ô0ˆåŒ^˜V } oÐ%6Ð7Ñ8Ô8€FåŒy×$Ò$Ð%7Ñ8Ô8€HØ€HØ�hÒÐØ×$Ò$¨°¸Ð$ÑCÔCˆ	Ý”x ¨ µfÐ=Ñ=Ô=ˆØ˜yÔ)ˆˆð ˜lÒ*Ð*Ð*Ð*Ø×$Ò$¨°2¸IÐ$ÑFÔFˆ	Øˆà×'Ò'¨	Ñ2Ô2€LØ)¨,Ô7ÐØ�lÔ#€GØ�lÔ#€GØ˜,Ô'€Ið �hÒÐÝØÐ,>Èð
ñ 
ô 
ˆˆõ ˜HÐ3EÈtÐTÑTÔTˆõ  "œ}Ð->ÅbÄjÐQÑQÔQÐà!ŸxšxÐ(9¸7ÑCÔCð 
ð 
Ñˆ	�8Ø" 9¨a <Ô0°)¸IÔ2FˆBˆÝ& r¨2¨|¸VÑDÔDˆØ0=Ø˜h¨˜kÔ*ô1
Ð  ¨1 Ñ-Ð-õ #ØØØØ'ð	ñ ô €Nð %×2Ò2°7¸GÑDÔD€OàÔ&¨+Ò5Ð5Ð5Ð5Ý�OÐ%=Ñ>Ô>Ð>Ýˆ~Ô(Ñ)Ô)¨QÒ.Ð.Ð.Ð.Ø�hÒÐÝ˜>Ô2°LÑAÔAÐAÐAàÔ&Ð.Ð.Ð.õ ŒW�YÑÔ€FÝ'Ø˜!˜!˜!˜Q˜$Ô ¨L¸&ñô Ðõ �NÔ-¨aÔ0Ð2DÑEÔEÐEØÔ&­&¬-¸Ñ*?Ô*?Ò?Ð?Ð?Ð?õ !#¤Ø	�RœX v hÑ/Ô/Ð0ñ!ô !ç‚gˆb�!�n„nð ð &×/Ò/°Ñ7Ô7ÐÝÐ$Ð&?Ñ@Ô@Ð@Ð@Ð@r/   zcategories, unknown_valuesÚrabbitÚtarget_labels)r   r1   r:   )ÚaÚbr%   c           
      óŠ	  — t           j                             | ¦  «        }d}d}t          j        |                     dd|¬¦  «        ¦  «        }t          j        |                     dd|¬¦  «        ¦  «        }	|d         |         }
|d         |	         }t          j        |
|f¦  «        }t          j        ||	f¦  «        }ddgg d¢g}d}t          j        |                     d||¬¦  «        ¦  «        }||         }t          ¦   «                              |¦  «        }d}t          || d¬	¦  «        }t          j	        |j
        d         |j
        d         |z  ft           j        ¬
¦  «        }t          |¦  «        D ]�\  }}t          |¦  «        D ]x}|                     ||¦  «        D ]_\  }}|dd…|f         }|||f         ||         }}t          ||t!          |¦  «        |¦  «        }|||z  z   }||||f                  |||f<   Œ`ŒyŒŽt#          ||| ¬¦  «        } |                      ||¦  «        }!| j        dk    sJ ‚t'          |!|¦  «         g }"t          |¦  «        D ]a\  }}t          |¦  «        D ]L}|dd…|f         }t          |dd…|f         |t!          |¦  «        |¦  «        }|"                     |¦  «         ŒMŒbt!          | 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|$}%nyt          j        |$dd…dd…f         t2          ¬
¦  «        }%t          |$j
        d         ¦  «        D ]!}&|d         |$dd…|&f                  |%dd…|&f<   Œ"t          j        |%|f¦  «        }%t          j        |d¬¦  «        }'t          j	        |$j
        d         |$j
        d         |z  ft           j        ¬
¦  «        }(|$j
        d         })g d¢}t          |)dz
  ¦  «        D ]2}*t          |"¦  «        D ] \  }#}+|+|$|*||#         f                  |(|*|#f<   Œ!Œ3g d¢},t          ||z  ¦  «        D ]}#|'|,|#                  |(|)dz
  |#f<   Œ|                      |%¦  «        }-t'          |-|(¦  «         dS )z&Check encoding for multiclass targets.éP   r1   r   rC   r:   r   r0   TrH   r   N©r!   rM   rJ   Ú
multiclassr2   é   r   rN   ©Úaxis)r   r   r   r   r   r   )r   r   r1   r   r   r1   )r   rS   rT   rO   rU   Úcolumn_stackr   r[   r	   Úemptyr   r   Ú	enumerater   rZ   r.   r]   r   r\   r   Úappendr^   r   r_   rY   rV   Úvstackr   rd   ).rf   rL   Úunknown_valuesr|   r!   Úrngri   Ú
n_featuresÚ
feat_1_intÚ
feat_2_intÚfeat_1Úfeat_2rj   ÚX_train_intÚcategories_Ú	n_classesÚy_train_intrn   Úy_train_encrI   rM   rp   Úf_idxÚcatsÚc_idxrq   rr   Úy_classrs   rt   Úcurrent_encodingÚexp_idxru   rv   rw   ÚiÚ
X_test_intrk   Ú
column_idxr#   rx   Ún_rowsÚrow_idxÚencÚmean_idxry   s.                                                 r-   Útest_encoding_multiclassr¤   ¢   s   € õ Œ)×
Ò
Ð 2Ñ
3Ô
3€Cà€IØ€JÝ”˜#Ÿ+š+¨!°!¸)˜+ÑDÔDÑEÔE€JÝ”˜#Ÿ+š+¨!°!¸)˜+ÑDÔDÑEÔE€JØ˜Œ]˜:Ô&€FØ˜Œ]˜:Ô&€FÝŒo˜v vÐ.Ñ/Ô/€GÝ”/ :¨zÐ":Ñ;Ô;€KØ�q�6˜9˜9˜9Ð%€Kà€IÝ”(˜3Ÿ;š;¨1°9À9˜;ÑMÔMÑNÔN€KØ˜KÔ(€GÝ Ñ"Ô"×0Ò0°Ñ9Ô9€Kà€HÝ	ØÐ(:ÀDð
ñ 
ô 
€Bõ
  "œxØ	Ô	˜1Ô	˜{Ô0°Ô3°iÑ?Ð@ÝŒjð ñ  ô  Ðõ ! Ñ-Ô-ð ð ‰ˆˆtÝ˜9Ñ%Ô%ð 	ð 	ˆEØ')§x¢x°¸Ñ'AÔ'Að 
ð 
Ñ#�	˜8Ø% a a a¨ hÔ/�Ø$ Y°Ð%5Ô6¸À	Ô8J�B�Ý#1°"°b½#¸d¹)¼)ÀVÑ#LÔ#LÐ ð   5¨9Ñ#4Ñ5�Ø>NØ ¨% Ô0ô?Ð(¨°7Ð):Ñ;Ð;ð
ð	õ #ØØØ'ðñ ô €Nð
 %×2Ò2°7¸GÑDÔD€OàÔ&¨,Ò6Ð6Ð6Ð6Ý�OÐ%=Ñ>Ô>Ð>ð ÐÝ  Ñ-Ô-ð 8ð 8‰ˆˆtÝ˜9Ñ%Ô%ð 	8ð 	8ˆEØ! ! ! ! U (Ô+ˆGÝ-Ø˜A˜A˜A˜u˜HÔ% wµ°D±	´	¸6ñ ô  Ðð ×%Ò%Ð&6Ñ7Ô7Ð7Ð7ð	8õ ˆ~Ô(Ñ)Ô)¨Z¸)Ñ-CÒCÐCÐCÐCÝ�: 	Ñ)Ñ*Ô*ð Mð MˆÝ˜Ô1°!Ô4Ð6HÈÔ6KÑLÔLÐLÐLÝ�~Ô.°Ñ>Ô>Ð>õ ”˜A˜q˜6 A q 6¨A¨q¨6Ð2Ñ3Ô3€JØ˜ÒÐØˆˆå”˜z¨#¨2¨#¨q¨q¨q¨&Ô1½Ð@Ñ@Ô@ˆÝ 
Ô 0°Ô 3Ñ4Ô4ð 	Oð 	OˆJØ$.¨q¤M°*¸S¸b¸SÀ*¸_Ô2MÔ$NˆF�1�1�1�j�=Ñ!Ð!å”˜F NÐ3Ñ4Ô4ˆåŒW�[ qÐ)Ñ)Ô)€FÝ "¤Ø	Ô	˜!Ô	˜jÔ.¨qÔ1°IÑ=Ð>ÝŒjð!ñ !ô !Ðð Ô˜aÔ €FØÐÐ€Eå˜ !™Ñ$Ô$ð Wð WˆÝÐ 2Ñ3Ô3ð 	Wð 	W‰FˆAˆsØ47¸
À7ÈEÐRSÌHÐCTÔ8UÔ4VÐ% g¨q jÑ1Ð1ð	Wð "Ð!Ð!€HÝ�9˜zÑ)Ñ*Ô*ð Gð GˆØ39¸(À1¼+Ô3FÐ! &¨1¡*¨a -Ñ0Ð0à%×/Ò/°Ñ7Ô7ÐÝÐ$Ð&?Ñ@Ô@Ð@Ð@Ð@r/   zX, categoriesé
   r   r:   r6   r7   r8   )r7   r6   Úcowç      @c                 ó  — t           j                             d¦  «        }|                     dd| j        d         ¬¦  «        }t          ||d¬¦  «                             | |¦  «        }|                     ¦   «         }|                     | dd…         ¦  «        }|d         t          j
        |¦  «        k    sJ ‚t          |j        ¦  «        d	k    sJ ‚|j        d         d         t          j
        |¦  «        k    sJ ‚dS )
zHCustom categories with unknown categories that are not in training data.r   rG   r@   rC   )rL   r!   rJ   rN   N)r   r   r   )r   rS   rT   rW   r   r   Úfitr   rd   ra   rb   r]   r^   )ÚXrL   r!   rŒ   Úyr¢   r#   ÚX_transs           r-   Útest_custom_categoriesr­     së   € õ$ Œ)×
Ò
 Ñ
"Ô
"€CØ�Š˜ "¨1¬7°1¬:ˆÑ6Ô6€AÝ
 :°fÈ1Ð
MÑ
MÔ
M×
QÒ
QÐRSÐUVÑ
WÔ
W€Cð �VŠV‰XŒX€FØ�mŠm˜A˜b˜c˜cœFÑ#Ô#€GØ�4Œ=�FœM¨&Ñ1Ô1Ò1Ð1Ð1Ð1åˆsŒ~ÑÔ !Ò#Ð#Ð#Ð#àŒ>˜!Ô˜RÔ ¥F¤M°&Ñ$9Ô$9Ò9Ð9Ð9Ð9Ð9Ð9r/   zy, msg)r   r1   r   r   z'Found input variables with inconsistent)r   r1   r   z7Target type was inferred to be 'multiclass-multioutput'c                 óî   — t          j        g d¢g¦  «        j        }t          ¦   «         }t	          j        t          |¬¦  «        5  |                     || ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zCheck invalidate input.)r   r   r   ©ÚmatchN)r   rO   rQ   r   ra   ÚraisesÚ
ValueErrorr[   )r«   Úmsgrª   r¢   s       r-   Útest_errorsr´   5  s´   € õ 	Œ�)�)�)�ÑÔÔ€Aå
‰/Œ/€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð  ð  Ø×Ò˜!˜QÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   ÁA*Á*A.Á1A.c                  óÂ  — t          j        g d¢g¦  «        j        } t          j        g d¢¦  «        }t          d¬¦  «        }t	          j        t          t          j        d¦  «        ¬¦  «        5  | 	                    | |¦  «         ddd¦  «         n# 1 swxY w Y   |j
        dk    sJ ‚t          dd	¬
¦  «        }| 	                    | |¦  «         |j
        d	k    sJ ‚dS )z@Check inferred and specified `target_type` on regression target.)r   r   r   r   r   r   )r3   ç       @r4   r¶   r4   r§   r1   ©rM   zQThe least populated class in y has only 1 members, which is less than n_splits=2.r¯   Nr‚   r>   )rM   r<   )r   rO   rQ   r   ra   ÚwarnsÚUserWarningÚreÚescaper[   r\   )rª   r«   r¢   s      r-   Útest_use_regression_targetr¼   H  s7  € å
ŒÐ$Ð$Ð$Ð%Ñ&Ô&Ô(€AÝ
ŒÐ/Ð/Ð/Ñ0Ô0€Aå
˜1Ð
Ñ
Ô
€CÝ	ŒÝÝŒiðñ
ô 
ð
ñ 
ô 
ð  ð  ð 	×Ò˜!˜QÑÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð Ô˜|Ò+Ð+Ð+Ð+å
˜1¨,Ð
7Ñ
7Ô
7€CØ×Ò�a˜ÑÔÐØÔ˜|Ò+Ð+Ð+Ð+Ð+Ð+s   Á0BÂBÂBzy, feature_namesr1   Ú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¦  «        }|                     ddgdz  ddgdz  dœ¦  «        }t          ddd	¬
¦  «        }|                     d¬¦  «         t          ddd	¬
¦  «        }|                     d¬¦  «         |                     || ¦  «        }|                     || ¦  «        }t          |                     ¦   «         |¦  «         t          | 	                    ¦   «         |¦  «         t          | 	                    ¦   «         |j
        ¦  «         dS )z*Check TargetEncoder works with set_output.Úpandasr}   r~   r¥   r   r1   )r½   r¾   r4   r   ©rM   r!   rJ   Údefault)rd   N)ra   ÚimportorskipÚ	DataFramer   Ú
set_outputr[   r   Úto_numpyr   Úget_feature_names_outÚcolumns)r«   Úfeature_namesÚpdÚX_dfÚenc_defaultÚ
enc_pandasÚ	X_defaultÚX_pandass           r-   Ú!test_feature_names_out_set_outputrà   ]  s  € õ 
Ô	˜XÑ	&Ô	&€Bà�<Š<˜s C˜j¨2™o°Q¸°F¸R±KÐ@Ð@ÑAÔA€Då 1¨S¸qÐAÑAÔA€KØ×Ò YÐÑ/Ô/Ð/Ý !¨C¸aÐ@Ñ@Ô@€JØ×Ò HÐÑ-Ô-Ð-à×)Ò)¨$°Ñ2Ô2€IØ×'Ò'¨¨aÑ0Ô0€Hå�H×%Ò%Ñ'Ô'¨Ñ3Ô3Ð3Ý�z×7Ò7Ñ9Ô9¸=ÑIÔIÐIÝ�z×7Ò7Ñ9Ô9¸8Ô;KÑLÔLÐLÐLÐLr/   Ú	to_pandasTF)úbinary-intsú
binary-strr>   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    rJt          j        g d¢¦  «        }t          ¦   «                              |¦  «        }t          ddd¬¦  «        }n†|d	k    rJt          j        g d
¢¦  «        }t          ¦   «                              |¦  «        }t          ddd¬¦  «        }n6t          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        ¬¦  «        }	| r†t          j
        d¦  «        }
|
                     |dd…df         t          j        ddgt          ¬¦  «        |dd…df                  dœ¦  «        }|
                     |	dd…df         g d¢dœ¦  «        }	n|}t          j        |t           j        ¬¦  «        }t          |¦  «        D ]g\  }}|                     ||¦  «        D ]K\  }}|||f         ||         }}t#          ||t%          |¦  «        |¦  «        }||||f                  |||f<   ŒLŒhg }t          |¦  «        D ]C\  }}t#          |dd…|f         |t%          |¦  «        |¦  «        }|                     |¦  «         ŒDt          j        |d         d         |d         d         g||d         d         g|d         d         |ggt           j        ¬¦  «        }t)          |dd¬¦  «        }|                     ||¦  «        }t+          ||¦  «         t%          |j        ¦  «        dk    sJ ‚t/          d¦  «        D ]#}t+          |j        |         ||         ¦  «         Œ$|                     |	¦  «        }t+          ||¦  «         dS )z,Check target encoder with multiple features.r   r   r1   r   rã   )r}   r~   r}   r}   r~   r~   r}   r~   T)rJ   rK   râ   )r:   r2   r:   r:   r:   r2   r2   r2   )r4   gffffff@g333333@g      @gffffff@g      @çš™™™™™$@g333333@r0   r:   r¥   rÐ   Nr6   r7   )Úfeat0Úfeat1)r7   r6   r8   r�   )r   rO   rP   r   r[   r	   Úfloat32r   r   ra   rÓ   rÔ   rV   rY   r   rˆ   rZ   r.   r]   r‰   r   r   r^   r   rd   )rá   r!   r<   r   rn   Ú	y_integerrM   r#   rL   rk   rÚ   rj   rp   r—   r˜   rq   rr   rs   rt   r›   rw   rx   r¢   rv   r�   ry   s                             r-   Útest_multiple_features_quickrê   {  sX  € õ
 ”Ø
ˆQˆ�!�Q�˜!˜Q˜ ! Q ¨!¨Q¨°!°Q°¸!¸Q¸À!ÀQÀÐHÕPRÔPXðñ ô €Ið �lÒ"Ð"Ý”(ÐCÐCÐCÑDÔDˆÝ ‘N”N×0Ò0°Ñ9Ô9ˆ	Ý˜Q¨Q¸Ð=Ñ=Ô=ˆˆØ	˜Ò	%Ð	%Ý”(Ð3Ð3Ð3Ñ4Ô4ˆÝ ‘N”N×0Ò0°Ñ9Ô9ˆ	Ý˜Q¨Q¸Ð=Ñ=Ô=ˆˆå”(ÐDÐDÐDÍBÌJÐWÑWÔWˆØˆ	Ý�1 1¨dÐ3Ñ3Ô3ˆÝŒW�YÑÔ€FØ�)�)˜a ˜VÐ$€JåŒXà�ˆFØ�ˆFØ�ˆGð	
õ
 Œhðñ ô €Fð ð ÝÔ  Ñ*Ô*ˆà—,’,à" 1 1 1 a 4œÝœ 5¨% .½Ð?Ñ?Ô?À	È!È!È!ÈQÈ$ÄÔPðð ñ
ô 
ˆð —’¨¨q¨q¨q°!¨t¬Ð?VÐ?VÐ?VÐWÐWÑXÔXˆˆàˆõ  "œ}¨Y½b¼jÐIÑIÔIÐÝ  Ñ,Ô,ð ð ‰ˆˆtØ#%§8¢8¨I°yÑ#AÔ#Að 	ð 	ÑˆI�xØ˜y¨%Ð/Ô0°)¸IÔ2F�ˆBÝ-¨b°"µc¸$±i´iÀÑHÔHÐØ8HØ˜( E˜/Ô*ô9Ð$ X¨u _Ñ5Ð5ð	ð ÐÝ  Ñ,Ô,ð 4ð 4‰ˆˆtÝ)Ø�a�a�a˜�hÔ ­C°©I¬I°vñ
ô 
Ðð 	×!Ò!Ð"2Ñ3Ô3Ð3Ð3å "¤à Ô" 1Ô%Ð'9¸!Ô'<¸QÔ'?Ð@ØÐ'¨Ô*¨1Ô-Ð.Ø Ô" 1Ô% vÐ.ð	
õ
 Œjð!ñ !ô !Ðõ ˜v¨!¸!Ð
<Ñ
<Ô
<€CØ×'Ò'¨°Ñ9Ô9€OÝ�OÐ%=Ñ>Ô>Ð>åˆsŒ~ÑÔ !Ò#Ð#Ð#Ð#Ý�1‰XŒXð Bð BˆÝ˜œ qÔ)Ð+=¸aÔ+@ÑAÔAÐAÐAà—}’} VÑ,Ô,ÐÝÐ$Ð&?Ñ@Ô@Ð@Ð@Ð@r/   z	y, y_meang333333@r@   r}   )r>   r=   zbinary-string)Úids)r   r§   ç        c                 ó6  — t          j        dgdz  g¦  «        j        }|j        d         }t	          d|d¬¦  «        }|                     || ¦  «        }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¦  «        }|                     |¦  «        }t          |t          j        |ggdd¬¦  «        ¦  «         dS )z5Check edge case where feature and target is constant.r   r@   r   r1   rÑ   r„   N)r   rO   rQ   r   r   r[   r   Úrepeatr^   ra   rb   r`   rd   )	r«   r#   r!   rª   ri   r¢   r¬   rk   ÚX_test_transs	            r-   Ú test_constant_target_and_featurerð   Ð  s  € õ 	Œ�1�#˜‘(�ÑÔÔ€AØ”˜”
€Iå
˜1 V¸!Ð
<Ñ
<Ô
<€CØ×Ò  1Ñ%Ô%€GÝ�G�RœY¨¨ z°9À1ÐEÑEÔEÑFÔFÐFØŒ>˜!Ô˜QÔ¥6¤=°Ñ#8Ô#8Ò8Ð8Ð8Ð8ØÔ�vœ}¨VÑ4Ô4Ò4Ð4Ð4Ð4åŒX˜�s˜Q˜C�jÑ!Ô!€FØ—=’= Ñ(Ô(€LÝ�L¥"¤)¨f¨X¨J¸ÀÐ"BÑ"BÔ"BÑCÔCÐCÐCÐCr/   c                 óú  — d}d}t           j                             | ¦  «        }|                     |¬¦  «        }|                     d||¬¦  «                             dd¦  «        }|                     ¦   «         }||         }||         }t          d| ¬¦  «        }|                     ||¦  «        }t          d	¬
¦  «        }|                     ||¦  «        }	t          dd| ¬¦  «        }
t          d| ¬¦  «        }t          |
|||¬¦  «                             ¦   «         dk     sJ ‚t          |
|||¬¦  «                             ¦   «         dk     sJ ‚t          |
|	||¬¦  «                             ¦   «         dk    sJ ‚d S )NrA   i¸  ©rF   r   rN   r   T)rK   rJ   F)rK   r¥   r@   )Ún_estimatorsÚmin_samples_leafrJ   é2   )rI   rJ   r·   çš™™™™™¹?ç      à?)r   rS   rT   ÚnormalrU   rc   Úargsortr   r[   r   r   r
   r   )rf   Úcardinalityri   rŒ   rn   rj   Úy_sorted_indicesru   ÚX_encoded_train_shuffledÚX_encoded_train_no_shuffledÚ	regressorrM   s               r-   ÚFtest_fit_transform_not_associated_with_y_if_ordinal_categorical_is_notrÿ   ê  s²  € ð €KØ€IÝ
Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ�jŠj˜iˆjÑ(Ô(€GØ�kŠk˜!˜[¨yˆkÑ9Ô9×AÒAÀ"ÀaÑHÔH€Gð —’Ñ(Ô(ÐØÐ&Ô'€GØÐ&Ô'€Gå"¨4Ð>PÐQÑQÔQ€NØ-×;Ò;¸GÀWÑMÔMÐå"¨5Ð1Ñ1Ô1€NØ"0×">Ò">¸wÈÑ"PÔ"PÐõ &Ø¨"Ð;Mðñ ô €Iõ 
˜rÐ0BÐ	CÑ	CÔ	C€BÝ˜9 g¨w¸2Ð>Ñ>Ô>×CÒCÑEÔEÈÒKÐKÐKÐKå˜	Ð#;¸WÈÐLÑLÔL×QÒQÑSÔSØ
ò	ð 	ð 	ð 	õ 	˜	Ð#>ÀÈBÐOÑOÔO×TÒTÑVÔVØ
ò	ð 	ð 	ð 	ð 	ð 	r/   c                  óz  — t          j        g d¢g¦  «        j        } t          j        g d¢¦  «        }t          ddd¬¦  «        }|                     | |¦  «        }t          |d         t          j        |dd	…         ¦  «        ¦  «         t          |d
         t          j        |d	d…         ¦  «        ¦  «         d	S )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ÍÌÌÌÌÌ@r3   g      "@rå   gffffff,@gš™™™™™*@g      .@rì   Fr1   )r!   rK   rM   r   rƒ   NrN   )r   rO   rQ   r   r[   r   r   )rª   r«   r¢   r¬   s       r-   Útest_smooth_zeror    s¯   € å
ŒÐ0Ð0Ð0Ð1Ñ2Ô2Ô4€AÝ
ŒÐGÐGÐGÑHÔH€Aå
˜s¨E°aÐ
8Ñ
8Ô
8€CØ×Ò  1Ñ%Ô%€Gõ �G˜A”J¥¤¨¨!¨"¨"¬¡¤Ñ/Ô/Ð/õ �G˜B”K¥¤¨¨2¨A¨2¬¡¤Ñ0Ô0Ð0Ð0Ð0r/   )rì   g     @�@r   c                 óÞ  — t           j                             |¦  «        }|                     d¬¦  «        }d}t	          |d¬¦  «                             |                     dd¦  «        ¦  «        }t          |||¬¦  «        \  }}}}	|                     |¦  «        }
|
| 	                    t           j
        ¦  «                 }|
| 	                    t           j
        ¦  «                 }t          | |¬	¦  «        }|                     ||¦  «        }|                     |¦  «        }|                     ||¦  «        }|                     |¦  «        }t          ||¦  «         t          ||¦  «         d S )
Niè  rò   rA   Úordinal)Ún_binsÚencoderN   r   ©rJ   ©r!   rJ   )r   rS   rT   rø   r   r[   rc   r   rX   ÚastypeÚint32r   rd   r   )r!   rf   rŒ   r«   r    rª   rj   rk   rn   Úy_testÚpermutated_labelsÚX_train_permutedÚX_test_permutedru   ÚX_train_encodedÚX_test_encodedÚX_train_permuted_encodedÚX_test_permuted_encodeds                     r-   Ú3test_invariance_of_encoding_under_label_permutationr  )  sa  € õ
 Œ)×
Ò
Ð 2Ñ
3Ô
3€Cð 	�
Š
˜ˆ
ÑÔ€AØ€LÝ °YÐ?Ñ?Ô?×MÒMØ	�	Š	�"�aÑÔñ	ô 	€Aõ (8Ø	ˆ1Ð-ð(ñ (ô (Ñ$€GˆV�W˜fð Ÿš¨Ñ5Ô5ÐØ(¨¯ª½¼Ñ)AÔ)AÔBÐØ'¨¯ªµb´hÑ(?Ô(?Ô@€Oå"¨&Ð?QÐRÑRÔR€NØ$×2Ò2°7¸GÑDÔD€OØ#×-Ò-¨fÑ5Ô5€Nà-×;Ò;Ð<LÈgÑVÔVÐØ,×6Ò6°ÑGÔGÐå�OÐ%=Ñ>Ô>Ð>Ý�NÐ$;Ñ<Ô<Ð<Ð<Ð<r/   rì   c                 óÖ  — t          ddd¬¦  «        }d}t          j                             |¦  «        }|                     |¦  «        }d|                     |¦  «        z  }d}t          |dd	|¬
¦  «                             ||z                        dd¦  «        ¦  «        }|                     |¦  «        }	|	| 	                    t          j
        ¦  «                 }|                     |¦  «        }
|                     t          d|z  ¦  «        |d¬¦  «                             dd¦  «        }t          j        ||
|gd¬¦  «        }t          ||d¬¦  «        \  }}}}|                     ||¦  «        }|                     ||¦  «        dk     sJ ‚|                     ||¦  «        dk     sJ ‚t#          t%          | |¬¦  «        |¦  «                             ||¦  «        }|d         j        }|                     ||¦  «        dk    s
J |¦   «         ‚|                     ||¦  «        dk    s
J |¦   «         ‚|d         t)          j        dd¬¦  «        k    sJ ‚t          j        |dd …         ¦  «        dk                          ¦   «         sJ ‚t%          | |¬¦  «                             ||¦  «        }|                     |¦  «        }|                     |¦  «        }|                     ||¦  «        }|j        }|                     ||¦  «        dk    s
J |¦   «         ‚|                     ||¦  «        dk     s
J |¦   «         ‚t-          |d         ¦  «        t-          |d         ¦  «        k     sJ ‚d S )Ng�íµ ÷Æ°>ÚlsqrF)ÚalphaÚsolverÚfit_interceptiPÃ  gš™™™™™é?éd   r  rW   )r  r  ÚstrategyrJ   rN   r   gÍÌÌÌÌÌì?T)rF   Úreplacer„   r   r  rö   r  r÷   g{®Gáz„?)Úabsgš™™™™™É?gffffffæ?r1   )r   r   rS   rT   Úrandnr   r[   rc   rX   r  r	  ÚchoiceÚintrR   r   r©   Úscorer   r   Úcoef_ra   rb   r  Úallrd   )r!   rf   Úlinear_regressionri   rŒ   r«   Únoiser    ÚX_informativer  Ú
X_shuffledÚX_near_unique_categoriesrª   rj   rk   rn   r
  Ú	raw_modelÚmodel_with_cvÚcoefru   ÚX_enc_no_cv_trainÚX_enc_no_cv_testÚmodel_no_cvs                           r-   Ú*test_target_encoding_for_linear_regressionr-  M  s¢  € õ  D°ÀuÐMÑMÔMÐð €IÝ
Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ�	Š	�)ÑÔ€Að
 �#—)’)˜IÑ&Ô&Ñ&€EØ€LÝ$ØØØØð	ñ ô ÷
 ‚m�Q˜‘Y×'Ò'¨¨AÑ.Ô.Ñ/Ô/ð ð Ÿš¨Ñ5Ô5ÐØ% m×&:Ò&:½2¼8Ñ&DÔ&DÔE€Mð —’ Ñ/Ô/€Jð  #ŸzšzÝˆC�)‰OÑÔ 9°dð  *ñ  ô  ç‚gˆb�!�n„nð õ
 	ŒØ	˜
Ð$<Ð=Øð	ñ 	ô 	€Aõ (8¸¸1È1Ð'MÑ'MÔ'MÑ$€GˆV�W˜fð
 "×%Ò% g¨wÑ7Ô7€IØ�?Š?˜7 GÑ,Ô,¨sÒ2Ð2Ð2Ð2Ø�?Š?˜6 6Ñ*Ô*¨SÒ0Ð0Ð0Ð0õ "Ý˜V°#Ð6Ñ6Ô6Ð8Iñô ç	‚cˆ'�7ÑÔð ð ˜ÔÔ"€DØ×Ò˜w¨Ñ0Ô0°3Ò6Ð6Ð6¸Ñ6Ô6Ð6Ø×Ò˜v vÑ.Ô.°Ò4Ð4Ð4°dÑ4Ô4Ð4ð �Œ7•f”m A¨4Ð0Ñ0Ô0Ò0Ð0Ð0Ð0ÝŒF�4˜˜˜”8ÑÔ˜sÒ"×'Ò'Ñ)Ô)Ð)Ð)Ð)õ #¨&¸sÐCÑCÔC×GÒGØ�ñô €Nð '×0Ò0°Ñ9Ô9ÐØ%×/Ò/°Ñ7Ô7ÐØ#×'Ò'Ð(9¸7ÑCÔC€Kð Ô€DØ×ÒÐ.°Ñ8Ô8¸3Ò>Ð>Ð>ÀÑ>Ô>Ð>Ø×ÒÐ-¨vÑ6Ô6¸Ò<Ð<Ð<¸dÑ<Ô<Ð<õ
 ˆt�AŒw‰<Œ<�#˜d 1œg™,œ,Ò&Ð&Ð&Ð&Ð&Ð&r/   c                  ó*  — t          j        dd¬¦  «        } |                      dd¦  «        5  |                      g d¢g d¢dœ¦  «        }t	          d	¬
¦  «                             |dg         |d         ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )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mode.copy_on_writeT)r}   r~   r~   )r§   r;   r5   )Úxr«   r>   )r<   r0  r«   N)ra   rÓ   Úoption_contextrÔ   r   r©   )rÚ   Údfs     r-   Útest_pandas_copy_on_writer3  À  sô   € õ 
Ô	˜X°%Ð	8Ñ	8Ô	8€BØ	×	Ò	Ð/°Ñ	6Ô	6ð Hð HØ�\Š\   °o°o°oÐFÐFÑGÔGˆÝ ,Ð/Ñ/Ô/×3Ò3°B¸°u´I¸rÀ#¼wÑGÔGÐGðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hð Hð Hs   ­ABÂBÂB).rº   Únumpyr   ra   Únumpy.testingr   r   Úsklearn.ensembler   Úsklearn.linear_modelr   Úsklearn.model_selectionr   r   r	   r
   r   Úsklearn.pipeliner   Úsklearn.preprocessingr   r   r   r   r.   ÚmarkÚparametrizerO   rP   Únanr   rV   rz   r¤   rQ   r­   r´   r¼   rà   rê   rð   rÿ   r  r  r-  r3  © r/   r-   ú<module>r?     sÕ  ðØ 	€	€	€	à Ð Ð Ð Ø €€€Ø =Ð =Ð =Ð =Ð =Ð =Ð =Ð =à 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø &Ð &Ð &Ð &Ð &Ð &ðð ð ð ð ð ð ð ð ð ð ð ð ð ð +Ð *Ð *Ð *Ð *Ð *ðð ð ð ð ð ð ð ð ð ð ð ðð ð ð< „×ÒØà
ˆ"Œ(�9�9�9 B¤HÐ
-Ñ
-Ô
-Ð	.°Ð2Ø
ˆ"Œ(�C˜˜bœfÐ%¨R¬ZÐ
8Ñ
8Ô
8Ð	9¸3Ð?Ø
ˆ"Œ(Ð*Ð*Ð*°&Ð
9Ñ
9Ô
9Ð	:¸FÐCØð	ñô ð „×Ò˜ C¨ =Ñ1Ô1Ø„×Ò˜¨°<Ð(@ÑAÔAð]Að ]Añ BÔAñ 2Ô1ñô ð]Að@ „×ÒØ à
ˆ"Œ(�9�9�9 B¤HÐ
-Ñ
-Ô
-Ð	.°Ð7Ø
ˆ"Œ(Ð*Ð*Ð*°&Ð
9Ñ
9Ô
9Ð	:¸VÀXÐ<NÐOðñô ð „×ÒØ�h�b”h˜y˜y˜yÑ)Ô)¨8¨2¬8°O°O°OÑ+DÔ+DÐEñô ð „×Ò˜ C¨ =Ñ1Ô1ðeAð eAñ 2Ô1ñô ñô ðeAðP „×ÒØð ˆBŒH�q�c˜B‘h !  r¡Ñ)¨Q¨CÑ/Ð0¸¼ÐAÑAÔAÔCØˆYˆYˆKð	
ð
 ˆBŒHØ�˜2‘  ¨"¡Ñ,°¨yÑ8Ð9Àðñ ô äØ"Ð"Ð"Ð#ð		
ðñô ð „×Ò˜ C¨ =Ñ1Ô1ð:ð :ñ 2Ô1ñô ð :ð  „×ÒØà	ˆˆÐ@ÐAàˆBŒH�i�i�i   Ð+Ñ,Ô,Ô.ØEð	
ðñ	ô 	ð ð  ñ	ô 	ð ð,ð ,ð ,ð* „×ÒØà
ˆQˆ�"‰�s˜C�jÐ!Ø	ˆˆ�Q‰˜!˜Q˜Ñ	Ð!KÐ!KÐ!KÐLàÐÐ Ñ" d¨D \Ñ1Ø<Ð<Ð<ð	
ðñ
ô 
ðMð Mñ
ô 
ðMð& „×Ò˜ t¨U mÑ4Ô4Ø„×Ò˜ C¨ =Ñ1Ô1Ø„×Ò˜Ð(SÐ(SÐ(SÑTÔTðOAð OAñ UÔTñ 2Ô1ñ 5Ô4ðOAðd „×ÒØà	ˆŒ�3�%˜"‘*Ñ	Ô	˜sÐ#Ø	ˆŒ�1�#˜‘(Ñ	Ô	˜QÐØ	ˆŒ�3�%˜"‘* FÐ	+Ñ	+Ô	+¨QÐ/ðð
 	2Ð1Ð1ð ñ ô ð „×Ò˜Ð#5Ð#5Ð#5Ñ6Ô6ðDð Dñ 7Ô6ñô ðDð +ð +ð +ð\1ð 1ð 1ð" „×Ò˜Ð#5Ð#5Ð#5Ñ6Ô6ð =ð  =ñ 7Ô6ð =ðF „×Ò˜ C¨ =Ñ1Ô1ðo'ð o'ñ 2Ô1ðo'ðd
Hð 
Hð 
Hð 
Hð 
Hr/   