
    _ndu                     &   d Z ddlZddlZddlZddlmZ ddlmZm	Z	m
Z
 ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlm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" ddl!m#Z# ddl!m$Z$ ddl!m%Z% ddl&m'Z' ddl(m)Z) ddl*m+Z+m,Z,m-Z- ddl.m/Z/ ddl0m1Z1 ddl0m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8 d d!gd!d!gd!d gd"d"gd"d#gd#d"ggZ9g d$Z: ed%d&          d"fZ; ed%d'd"d(          d'fZ< ed%d&          d"fZ= ed%d#d)          d#fZ> e            Z?ej@        A                    d*ed+e;fed+e<fed,e;fed,e<fed+e=fed,e=fed,e=fed,e=fed,e>fed,e;fed,e<fed,e>fg          ej@        A                    d-d.          ej@        A                    d/d"gd"d#gf          ej@        A                    d0d1          d2                                                 ZBd3 ZCej@        A                    d-d#d4g          d5             ZDej@        A                    d-d'd4g          d6             ZEej@        A                    d7g d8          d9             ZFej@        A                    d: eGd;                    ej@        A                    d< e            d,f ed=          d,f ed=          d>f ed=          d,f ed=          d>fg          d?                         ZHej@        A                    d@ eGd"                    dA             ZIej@        A                    dB ed=           ed=          f          ej@        A                    d:dC          dD                         ZJej@        A                    dB e             ed=           edd"dd"E           ed=          f          ej@        A                    dFdG          dH                         ZKej@        A                    dIejL        jM        ejL        jN        ejO        jP        ejQ        jR        ejQ        jS        ejO        jT        f          dJ             ZU G dK dLe,e+          ZVej@        W                    dM          ej@        A                    dN edd+O          d/dgidPf e            dgdQdRdSf ed=          dgdQd>dTdUf ed=          dgdQd+dTdUf ed=          dgdVdRdWf eV            dgd+dRdXf eV            dgdQdRdYf eV            dgdZdRd[f e            dgdVd\d]f e            dgd>d^d_d`f e            dgd>dad_d`f e            dgd>d\dbfg          dc                         ZXej@        A                    dddedfg          dg             ZYej@        A                    dh e             ed=          g          ej@        A                    d/d!dig          dj                         ZZej@        A                    dh e             ed=          g          dk             Z[ej@        A                    dh e             ed=          g          dl             Z\dm Z]dn Z^do Z_dp Z`ej@        A                    dh edqdr           edd;s          gdtdugv          ej@        A                    dwd e e#            dx dyD             f e$            dz d{D             f           e e#            d| dyD             fd}~          gg dv          ej@        A                    d/dd#gd dyD             gddgv          d                                     Zaej@        A                    dde?jb        d         dfdd#gdfd dyD             dfg ddfgg dv          d             Zcej@        A                    dh e             e             e             e            g          d             Zdej@        A                    dee>fee;fg          d             Zed ZfdS )z,
Testing for the partial dependence module.
    N)partial_dependence)_grid_from_X_partial_dependence_brute_partial_dependence_recursion)GradientBoostingClassifier)GradientBoostingRegressor)RandomForestRegressor)HistGradientBoostingClassifier)HistGradientBoostingRegressor)LinearRegression)LogisticRegression)MultiTaskLasso)DecisionTreeRegressor)	load_iris)make_classificationmake_regression)KMeans)make_column_transformer)r2_score)PolynomialFeatures)StandardScaler)RobustScaler)scale)make_pipeline)DummyClassifier)BaseEstimatorClassifierMixinclone)NotFittedError)assert_allclose)assert_array_equal)	_IS_32BIT)check_random_state)assert_is_subtree      )r&   r&   r&   r'   r'   r'   2   )	n_samplesrandom_state   )r*   	n_classesn_clusters_per_classr+   )r*   	n_targetsr+   zEstimator, method, dataautobrutegrid_resolution)   
   featureskind)average
individualbothc                 v    |             }|\  \  }}}	|j         d         }
|                    ||           t          |||||          }||d         }}|	gfdt          t	          |                    D             R }|	|
gfdt          t	          |                    D             R }|dk    r|j        j         |k    sJ n=|dk    r|j        j         |k    sJ n$|j        j         |k    sJ |j        j         |k    sJ t	          |          f}|J t          j        |          j         |k    sJ d S )Nr   )Xr5   methodr6   r2   valuesc                     g | ]}S  r?   .0_r2   s     Plib/python3.11/site-packages/sklearn/inspection/tests/test_partial_dependence.py
<listcomp>z%test_output_shape.<locals>.<listcomp>q   s    &U&U&U1&U&U&U    c                     g | ]}S r?   r?   r@   s     rC   rD   z%test_output_shape.<locals>.<listcomp>u   s    	8	8	8a/	8	8	8rE   r7   r8   )	shapefitr   rangelenr7   r8   npasarray)	Estimatorr<   datar2   r5   r6   estr;   yr/   n_instancesresultpdpaxesexpected_pdp_shapeexpected_ice_shapeexpected_axes_shapes      `             rC   test_output_shaperX   C   s   6 )++C
 FQI'!*KGGAqMMM
'  F x(C#V&U&U&U&Uc(mm@T@T&U&U&UVV 
9	8	8	85X#7#7	8	8	8 
 y{ $666666			~#'999999{ $66666~#'99999x==/::d!%8888888rE   c                     d} d}ddg}t          j        ddgddgg          }t          || ||          \  }}t          |ddgddgddgddgg           t          ||j                   t           j                            d          }d	}|                    d
          }t          || ||          \  }}|j        ||z  |j        d         fk    sJ t          j        |          j        d|fk    sJ d}d||dz
  d df<   |	                    |           t          || ||          \  }}|j        ||z  |j        d         fk    sJ |d         j        |fk    sJ |d         j        |fk    sJ d S )N皙?ffffff?d   Fr'   r(   r,      r      )   r(   sizer2      90  )
rK   rL   r   r!   TrandomRandomStatenormalrG   shuffle)percentilesr2   is_categoricalr;   gridrT   rngn_unique_valuess           rC   test_grid_from_Xrp      s   
 KOU^N

QFQF#$$AanoNNJD$tq!fq!fq!fq!f=>>>tQS!!! )


"
"CO 	


  A	;  JD$ :/O;QWQZHHHHH:d!a%99999 O"'AoQKKNNN	;  JD$ :/O;QWQZHHHHH7=_.....7=_.......rE   r]   c                     t          j        d          }d}dg}|                    dg di          }t          ||||           \  }}|j        d|j        d         fk    sJ |d	         j        d
k    sJ dS )jCheck that `_grid_from_X` always sample from categories and does not
    depend from the percentiles.
    pandasrZ   Tcat_feature)ABCru   rv   DErc   r3   r'   r   )r3   N)pytestimportorskip	DataFramer   rG   )r2   pdrk   rl   r;   rm   rT   s          rC   !test_grid_from_X_with_categoricalr~      s     
	X	&	&BKVN
m%H%H%HIJJA	;  JD$ :!QWQZ((((7=D      rE   c                    t          j        d          }d}ddg}|                    g dg dd          }|                                }t	          ||||           \  }}| d	k    rG|j        d
k    sJ |d         j        d         |d         k    sJ |d         j        d         | k    sJ dS |j        dk    sJ |d         j        d         |d         k    sJ |d         j        d         |d         k    sJ dS )rr   rs   rZ   TF)
ru   rv   rw   ru   rv   rx   ry   ru   rv   rx   )
r'   r'   r'   r(   r3      r   r   r      )catnumrc   r,   )r_   r(   r   r   r'   )   r(   r   N)rz   r{   r|   nuniquer   rG   )r2   r}   rk   rl   r;   r   rm   rT   s           rC   #test_grid_from_X_heterogeneous_typer      s<   
 
	X	&	&BKE]N
EEE111	
 	
	 	A iikkG	;  JD$ !zW$$$$Aw}Q75>1111Aw}Q?222222zW$$$$Aw}Q75>1111Aw}Q75>111111rE   z%grid_resolution, percentiles, err_msg))r(   )r   g-C6?zpercentiles are too close)r]   )r'   r(   r,   r^   .'percentiles' must be a sequence of 2 elements)r]   re   r   )r]   )r&   r\   ('percentiles' values must be in \[0, 1\])r]   )r[   r(   r   )r]   )g?皙?z+percentiles\[0\] must be strictly less than)r'   rZ   z1'grid_resolution' must be strictly greater than 1c                     t          j        ddgddgg          }dg}t          j        t          |          5  t          ||||            d d d            d S # 1 swxY w Y   d S )Nr'   r(   r,   r^   Fmatch)rK   rL   rz   raises
ValueErrorr   )r2   rk   err_msgr;   rl   s        rC   test_grid_from_X_errorr      s     	
QFQF#$$AWN	z	1	1	1 F FQ^_EEEF F F F F F F F F F F F F F F F F Fs   AA Atarget_featurer3   zest, methodr+   	recursionc                 l   t          ddd          \  }}||                                z
  }|                     ||           t          j        |gt          j                  }t          j        dgdgg          }|dk    rt          | |||d	          \  }}nt          | ||          }g }	d
D ]Y}
|                                }|
|d d |f<   |		                    | 
                    |                                                     Z|d         }|dk    rdnd}t          j        ||	|          sJ d S )Nr   r3   )r+   
n_featuresn_informativedtype      ?{   r1   r0   )response_method)r   r   r   r   gMbP?)rtol)r   meanrH   rK   arrayint32r   r   copyappendpredictallclose)rO   r<   r   r;   rP   r5   rm   rS   predictionsmean_predictionsvalX_r   s                rC   test_partial_dependence_helpersr      sZ   0 aqIIIDAq 	
AFFHHAGGAqMMM x(999H8cUSEN##D4xF
 
 
[[ ,Cx@@ 8 8VVXX #111nB 4 4 6 67777
a&C [((44dD;s,488888888rE   seedc                    t           j                            |           }d}d}|                    ||          }|                    |          dz  }||                                z
  }d}d}t          dd d||          }t          |                              t          j        t           j	                  j
                  }	t          ddd||		          }
t          ||	
          }|                    ||           |
                    ||           |                    ||           	 t          |j        |
d         j                   t          |j        |d         j                   n"# t           $ r t"          s
J d            Y d S w xY w|                    d                              dd          }t'          |          D ]}t          j        |gt           j	                  }t+          |||          }t+          |
||          }t+          |||          }t           j                            ||           t           j                            ||           d S )N  r3   r4   r   r'   F)n_estimatorsmax_features	bootstrap	max_depthr+   squared_error)r   learning_rate	criterionr   r+   )r   r+   )r   r   z)this should only fail on 32 bit platformsr)   r&   r   )rK   rg   rh   randnr   r	   r#   randintiinfor   maxr   r   rH   r$   tree_AssertionErrorr"   reshaperI   r   r   testingr    )r   rn   r*   r   r;   rP   r   	tree_seedforestequiv_random_stategbdttreerm   fr5   
pdp_forestpdp_gbdtpdp_trees                     rC   /test_recursion_decision_tree_vs_forest_and_gbdtr   (  s]    )


%
%C IJ		)Z((A		)r!A
 	
AFFHHA II"  F ,I66>>rx?Q?Q?UVV$!'  D !9CUVVVD
JJq!HHQNNNHHQNNN$*d4j&6777$*fQio6666    EEEEEE 99R==  Q''D: 9 98QCrx000264JJ
0tXFF0tXFF

""8X666

"":x88889 9s   ,A E- -FFrO   )r   r'   r(   r,   r^   r3   c                 $   t          ddd          \  }}t          j        |          dk    sJ |                     ||           t	          | ||gddd          }t	          | ||gdd	d          }t          |d         |d         d
           d S )Nr(   r'   r-   r.   r+   r   decision_functionr   r7   )r   r<   r6   r1   gHz>)atol)r   rK   r   rH   r   r    )rO   r   r;   rP   preds_1preds_2s         rC    test_recursion_decision_functionr   o  s     QRSSSDAq71::GGAqMMM 		+  G !		+  G GI&	(:FFFFFFrE   )r+   min_samples_leafmax_leaf_nodesmax_iterpower)r'   r(   c                 0   t           j                            d          }d}d}|                    |df          }|d d |f         |z  }|                     ||           t          | |g|dd          }|d	         d                             d
d          }|d         d         }	t          |                              |          }t                                          ||	          }
t          |	|
                    |                    }|dk    sJ d S )Nr      r(   r3   ra   r   r7   )r5   r;   r2   r6   r=   r&   r'   )degreeGz?)rK   rg   rh   ri   rH   r   r   r   fit_transformr   r   r   )rO   r   rn   r*   target_variabler;   rP   rS   new_Xnew_ylrr2s               rC   #test_partial_dependence_easy_targetr     s   ( )


"
"CIO

A
''A	!!!_
&AGGAqMMM
'1d  C M!$$R++E	N1Ee,,,::5AAE					u	-	-B	%E**	+	+B999999rE   rM   c                 2   t          ddd          \  }}t          j        ||g          j        } |             }|                    ||           t          j        t          d          5  t          ||dg           d d d            d S # 1 swxY w Y   d S )Nr,   r'   r   r   z3Multiclass-multioutput estimators are not supportedr   )	r   rK   r   rf   rH   rz   r   r   r   )rM   r;   rP   rO   s       rC   test_multiclass_multioutputr     s     QRSSSDAq
!QA
)++CGGAqMMM	O
 
 
 ( ( 	3A3'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   ,BBBc                       e Zd Zd ZdS ) NoPredictProbaNoDecisionFunctionc                     ddg| _         | S )Nr   r'   )classes_)selfr;   rP   s      rC   rH   z$NoPredictProbaNoDecisionFunction.fit  s    ArE   N)__name__
__module____qualname__rH   r?   rE   rC   r   r     s#            rE   r   zignore:A Bunch will be returnedzestimator, params, err_msg)r+   n_initz4'estimator' must be a fitted regressor or classifierpredict_proba)r5   r   z7The response_method parameter is ignored for regressors)r5   r   r<   zC'recursion' method, the response_method must be 'decision_function'blahblahz=response_method blahblah is invalid. Accepted response_methodzBThe estimator has no predict_proba and no decision_function methodz*The estimator has no predict_proba method.r   z.The estimator has no decision_function method.)r5   r<   zEblahblah is invalid. Accepted method names are brute, recursion, autor8   )r5   r<   r6   zCThe 'recursion' method only applies when 'kind' is set to 'average'r9   z=Only the following estimators support the 'recursion' method:c                     t          d          \  }}|                     ||           t          j        t          |          5  t          | |fi | d d d            d S # 1 swxY w Y   d S )Nr   r   r   r   rH   rz   r   r   r   )	estimatorparamsr   r;   rP   s        rC   test_partial_dependence_errorr     s    N A...DAqMM!Q	z	1	1	1 3 39a2262223 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3s   A!!A%(A%zwith_dataframe, err_msg)T'Only array-like or scalar are supported)Fr   c           
      p   t          d          \  }}| r)t          j        d          }|                    |          }t	                                          ||          }t          j        t          |          5  t          ||t          ddd                     d d d            d S # 1 swxY w Y   d S )Nr   r   rs   r   r(   r'   r5   )
r   rz   r{   r|   r   rH   r   	TypeErrorr   slice)with_dataframer   r;   rP   r}   r   s         rC   #test_partial_dependence_slice_errorr   0  s    A...DAq  **LLOO"$$((A..I	y	0	0	0 B B9a%1a..AAAAB B B B B B B B B B B B B B B B B Bs   <"B++B/2B/r   i'  c                     t          d          \  }}|                     ||           d}t          j        t          |          5  t          | ||g           d d d            d S # 1 swxY w Y   d S )Nr   r   zall features must be inr   r   )r   r5   r;   rP   r   s        rC   /test_partial_dependence_unknown_feature_indicesr   B  s    
 A...DAqMM!Q'G	z	1	1	1 5 59a(4445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5s   A''A+.A+c                 >   t          j        d          }t          d          \  }}|                    |          }|                     ||           dg}d}t          j        t          |          5  t          | ||           d d d            d S # 1 swxY w Y   d S )Nrs   r   r   rg   z/A given column is not a column of the dataframer   )rz   r{   r   r|   rH   r   r   r   )r   r}   r;   rP   dfr5   r   s          rC   .test_partial_dependence_unknown_feature_stringr   O  s     
	X	&	&BA...DAq	aBMM"azH?G	z	1	1	1 4 49b(3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4s   3BBBc                     t          d          \  }}|                     ||           t          | t          |          dgd           d S )Nr   r   r7   )r6   )r   rH   r   list)r   r;   rP   s      rC   test_partial_dependence_X_listr   ^  sQ    
 A...DAqMM!Qy$q''A3Y??????rE   c                     t          t                      d          } |                     t          t                     t          j        t          d          5  t          | t          dgdd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          | t          dgdd           d d d            d S # 1 swxY w Y   d S )Nr   )initr+   z9Using recursion method with a non-constant init predictorr   r   r7   )r<   r6   )	r   r   rH   r;   rP   rz   warnsUserWarningr   )gbcs    rC   (test_warning_recursion_non_constant_initr  h  s    %/*;*;!
L
L
LCGGAqMMM	V
 
 
 L L 	3A3{KKKKL L L L L L L L L L L L L L L
 
V
 
 
 L L 	3A3{KKKKL L L L L L L L L L L L L L L L L Ls$   B  BB&CCCc                     d} t           j                            d          }|                    d| t                    }|                    |           }|                                }||           || <   t           j        ||f         }t          j        |           }d||<   t          dd          }|
                    |||	           t          ||dgd
          }t          j        |d
         |d                   d         dk    sJ d S )Nr   i@ r(   )rb   r   g     @@r4   r'   )r   r+   sample_weightr7   )r5   r6   r=   )r   r'   r   )rK   rg   rh   r   boolrandr   c_onesr   rH   r   corrcoef)	Nrn   maskxrP   r;   r  clfrS   s	            rC   %test_partial_dependence_sample_weightr  z  s    
 	A
)


'
'C;;qq;--DA	A4%yAteH
dAgAGAJJM M$
#!
D
D
DCGGAqG...
S!qc	
B
B
BC;s9~s8}55d;dBBBBBBrE   c            	      J   t          d          } |                     t          t          t	          j        t          t                                         t          j        t          d          5  t          | t          dg           d d d            d S # 1 swxY w Y   d S )Nr'   r   r  z#does not support partial dependencer   r   )r   rH   r;   rP   rK   r  rJ   rz   r   NotImplementedErrorr   )r  s    rC   test_hist_gbdt_sw_not_supportedr    s    
'Q
7
7
7CGGAqAG000	#H
 
 
 1 1 	3QC00001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   2BBBc                  v   t                      } t                      }t          d          }t          ||          }|                    |                    | j                  | j                   |                    | j        | j                   d}t          || j        |gdd          }t          ||	                    | j                  |gdd          }t          |d         |d                    t          |d         d         |d         d         |j        |         z  |j        |         z              d S )N*   r   r   r4   r7   r5   r2   r6   r=   )r   r   r   r   rH   r   rN   targetr   	transformr    scale_mean_)irisscalerr  piper5   pdp_pipepdp_clfs          rC    test_partial_dependence_pipeliner    s<   ;;DF
r
*
*
*C%%DGGF  ++T[999HHTY$$$H!di8*by  H !##  G HY');<<<1!v}X66h9OO    rE   r   r   r+   )r+   r   zestimator-brutezestimator-recursion)idspreprocessorc                 2    g | ]}t           j        |         S r?   r  feature_namesrA   is     rC   rD   rD          FFF! 21 5FFFrE   r   r(   c                 2    g | ]}t           j        |         S r?   r#  r%  s     rC   rD   rD     s     DDDd03DDDrE   r'   r,   c                 2    g | ]}t           j        |         S r?   r#  r%  s     rC   rD   rD     r'  rE   passthrough)	remainder)Nonezcolumn-transformerzcolumn-transformer-passthroughc                 2    g | ]}t           j        |         S r?   r#  r%  s     rC   rD   rD     s     444d #444rE   zfeatures-integerzfeatures-stringc                 :   t          j        d          }|                    t          t          j                  t          j                  }t          ||           }|                    |t          j	                   t          |||dd          }|'t          |                              |          }ddg}n|}ddg}t          |                               |t          j	                  }	t          |	||d	dd
          }
t          |d         |
d                    |S|j        d         }t          |d         d         |
d         d         |j        d         z  |j        d         z              d S t          |d         d         |
d         d                    d S )Nrs   columnsr4   r7   r  r   r'   r(   r1   )r5   r<   r2   r6   standardscalerr=   )rz   r{   r|   r   r  rN   r$  r   rH   r  r   r   r   r    named_transformers_r  r  )r   r!  r5   r}   r   r  r  X_procfeatures_clfr  r  r  s               rC   !test_partial_dependence_dataframer7    s   > 
	X	&	&B	eDI&&0B	C	CBy11DHHR!b8Ri  H |$$222661v1v
	



vt{
3
3C   G HY');<<<12BCXq!Ha 6=#33fl1oE	
 	
 	
 	
 	

 	*1-wx/@/CDDDDDrE   zfeatures, expected_pd_shape)r   r,   r4   r8  )r,   r4   r4   c                 2    g | ]}t           j        |         S r?   r#  r%  s     rC   rD   rD   	  s     	0	0	0A$
Q
	0	0	0rE   )TFTF)z
scalar-intz
scalar-strzlist-intzlist-strr  c                 <   t          j        d          }|                    t          j        t          j                  }t          t                      d dD             ft                      d dD             f          }t          |t          dd	                    }|                    |t          j                   t          ||| d
d          }|d         j        |k    sJ t          |d                   t          |d         j                  dz
  k    sJ d S )Nrs   r1  c                 2    g | ]}t           j        |         S r?   r#  r%  s     rC   rD   z8test_partial_dependence_feature_type.<locals>.<listcomp>  s     BBBaD.q1BBBrE   r(  c                 2    g | ]}t           j        |         S r?   r#  r%  s     rC   rD   z8test_partial_dependence_feature_type.<locals>.<listcomp>  s     @@@A$,Q/@@@rE   r*  r   r   r  r4   r7   r  r=   r'   )rz   r{   r|   r  rN   r$  r   r   r   r   r   rH   r  r   rG   rJ   )r5   expected_pd_shaper}   r   r!  r  r  s          rC   $test_partial_dependence_feature_typer>    s%    
	X	&	&B	di);	<	<B*			BB6BBBC	@@@@@A L ($QGGG D 	HHR!b8Ri  H I$(99999x!""c(9*=*C&D&Dq&HHHHHHHrE   c                    t           j        }t          t                      ddgft	                      ddgf          }t          ||           }t          j        t          d          5  t          ||ddgd           d d d            n# 1 swxY w Y   t          j        t          d          5  t          | |ddgd           d d d            d S # 1 swxY w Y   d S )	Nr   r(   r'   r,   zis not fitted yetr   r4   )r5   r2   )
r  rN   r   r   r   r   rz   r   r   r   )r   r;   r!  r  s       rC    test_partial_dependence_unfittedr@  "  s    		A*			Aq6"\^^aV$< L y11D	~-@	A	A	A I I4aVRHHHHI I I I I I I I I I I I I I I	~-@	A	A	A N N9a1a&"MMMMN N N N N N N N N N N N N N N N N Ns$   (B

BB0CCCzEstimator, datac                     |             }|\  \  }}}|                     ||           t          ||ddgd          }t          ||ddgd          }t          j        |d         d          }t	          ||d                    d S )Nr'   r(   r7   )r;   r5   r6   r8   )axis)rH   r   rK   r   r    )	rM   rN   rO   r;   rP   r/   pdp_avgpdp_indavg_inds	            rC   +test_kind_average_and_average_of_individualrF  7  s     )++CFQIGGAqMMM QFKKKG QFNNNGggl+!444GGWY/00000rE   c                     t          j        dddt           j        gt                                        dd          } t          j        g d          }dd	lm} t           |d
          t                                	                    | |          }t          j        t          d          5  t          || dg           ddd           dS # 1 swxY w Y   dS )znCheck that we raise a proper error when a column has mixed types and
    the sorting of `np.unique` will fail.ru   rv   rw   r   r&   r'   )r   r'   r   r'   r   )OrdinalEncoder)encoded_missing_valuez'The column #0 contains mixed data typesr   r   N)rK   r   nanobjectr   sklearn.preprocessingrH  r   r   rH   rz   r   r   r   )r;   rP   rH  r  s       rC   test_mixed_type_categoricalrM  I  s%    	#sC(777??AFFA
A444444
R000  
c!Qii  
z)R	S	S	S 1 13QC00001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1s   /CCC)g__doc__numpyrK   rz   sklearnsklearn.inspectionr   &sklearn.inspection._partial_dependencer   r   r   sklearn.ensembler   r   r	   r
   r   sklearn.linear_modelr   r   r   sklearn.treer   sklearn.datasetsr   r   r   sklearn.clusterr   sklearn.composer   sklearn.metricsr   rL  r   r   r   r   sklearn.pipeliner   sklearn.dummyr   sklearn.baser   r   r   sklearn.exceptionsr   sklearn.utils._testingr    r!   sklearn.utilsr"   sklearn.utils.validationr#   sklearn.tree.tests.test_treer$   r;   rP   binary_classification_datamulticlass_classification_dataregression_datamultioutput_regression_datar  markparametrizerX   rp   r~   r   r   rI   r   r   r   r   r   DecisionTreeClassifierExtraTreeClassifierensembleExtraTreesClassifier	neighborsKNeighborsClassifierRadiusNeighborsClassifierRandomForestClassifierr   r   filterwarningsr   r   r   r   r   r  r  r  r  r7  r$  r>  r@  rF  rM  r?   rE   rC   <module>rq     s{          1 1 1 1 1 1         
 8 7 7 7 7 7 6 6 6 6 6 6 2 2 2 2 2 2 ; ; ; ; ; ; : : : : : : 1 1 1 1 1 1 3 3 3 3 3 3 / / / / / / . . . . . . & & & & & & A A A A A A A A " " " " " " 3 3 3 3 3 3 $ $ $ $ $ $ 4 4 4 4 4 4 0 0 0 0 0 0 . . . . . . ' ' ' ' ' ' * * * * * * ) ) ) ) ) ) > > > > > > > > > > - - - - - - 2 2 2 2 2 2 5 5 5 5 5 5 # # # # # # 7 7 7 7 7 7 : : : : : : 	"XBx"bAq6Aq6Aq6: 21BQOOOQRS    	"  #?Ra@@@!DObAA>>>  y{{ 	#V-GH	#V-KL	#W.HI	#W.LM	"FO<	"G_=	9	7O4	7$?@	W&@A	W&DE	"=> " *G44qcAq6]33!BCC*9 *9 DC 43 54# (*9Z$/ $/ $/N 	 ! ! ! *QH552 2 6528 +   F F F )558844				W%	"	"	2	2	2G<	"	"	2	2	2K@	&	&A	6	6	6@	&	&A	6	6	6D	 	)9 )9	 	 54)9X q**C9 C9 +*C9L 	""222&&A666  )+=>>G G ?> G< 	!!q111%%Qta	
 	
 	
 	1---
 
 &))  *)
 
> +(-.3/
 
( (
 
(         =>>  F&111!B	
 AAE	
 '&A666C#2% 
 R	
 '&A666FSSQ	
 '&A666<<K	
 -,..88P	
 -,..AA8	
 -,..1DEE<	
 
33S	
 \JJQ	
 VDDQ	
 44K	
yAD DJ3 3KD D ?>L3 9: B B B ""$$&@&@a&P&P&PQ  b%[115 5 21 5 ""$$&@&@a&P&P&PQ 	4 	4 	4 ""$$&@&@a&P&P&PQ @ @ @L L L$C C C41 1 1  : Dq999""BBB 
12    ^FFvFFFG\^^DDVDDDE	
 	
 	 ^FFvFFFG#	
 	
 	

 	IHH    V44V4445	./   
(E (E   8(EV !		A	(
Q	0	0	0	0	0+>	#	#	#[1 	EDD  
 
I I
 
I( !!##""$$	 	N 	N 	N 	67	78 1 1 11 1 1 1 1rE   