
    >[g'                        d Z ddlZddlZddlZddlmZmZmZ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lmZmZmZmZ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#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. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z7 ddl8m9Z9 ddgddgddgddgddgddggZ:g 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                  j                  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e0d!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                  j                  d"d#      ej                  j                  d$dgddgf      ej                  j                  d%d&      d'                             ZCd( ZDej                  j                  d"dd)g      d*        ZEej                  j                  d"dd)g      d+        ZFej                  j                  d,g d-      d.        ZGej                  j                  d/ eHd0            ej                  j                  d1 e#       d!f ed2      d!f ed2      d3f ed2      d!f ed2      d3fg      d4               ZIej                  j                  d5 eHd            d6        ZJej                  j                  d7 ed2       ed2      f      ej                  j                  d/d8      d9               ZKej                  j                  d7 e#        ed2       edddd:       e0d2      f      ej                  j                  d;d<      d=               ZLej                  j                  d>ej                  j                  ej                  j                  ej                  j                  ej                  j                  ej                  j                  ej                  j                  f      d?        ZV G d@ dAee      ZWej                  j                  dB edd C      d$dgidDf e#       dgdEdFdGf ed2      dgdEd3dHdIf ed2      dgdEd dHdIf e#       dgd3dJdKdLf e#       dgd3dMdKdLf e#       dgd3dNdOfg      dP        ZXej                  j                  dQ e#        ed2      g      ej                  j                  d$ddRg      dS               ZYej                  j                  dQ e#        ed2      g      dT        ZZej                  j                  dQ e#        ed2      g      dU        Z[dV Z\dW Z]dX Z^dY Z_ej                  j                  dQ e$dZd[       edd0\      gd]d^g_      ej                  j                  d`d e e-       daD  cg c]  } e@j                  |     c} f e,       dbD  cg c]  } e@j                  |     c} f       e e-       daD  cg c]  } e@j                  |     c} fdcd      gg de_      ej                  j                  d$ddgdaD  cg c]  } e@j                  |     c} gdfdgg_      dh                      Zaej                  j                  didje@j                  d   dkfddgdlfdaD  cg c]  } e@j                  |     c} dlfg dmdlfgg dn_      do        Zbej                  j                  dQ e#        e$        e        e       g      dp        Zcej                  j                  dqe#e?fe$e<fg      dr        Zdej                  j                  dqe#e?fe$e<fg      ds        Zeej                  j                  dQ e#        e$        e        e       g      ej                  j                  dtg du      dv               Zfej                  j                  dqe#e?fe$e<fg      dw        Zgdx Zhdy Zidz Zjyc c} w c c} w c c} w c c} w c c} w ){z,
Testing for the partial dependence module.
    N)BaseEstimatorClassifierMixincloneis_regressor)KMeans)make_column_transformer)	load_irismake_classificationmake_regression)DummyClassifier)GradientBoostingClassifierGradientBoostingRegressorHistGradientBoostingClassifierHistGradientBoostingRegressorRandomForestRegressor)NotFittedError)partial_dependence)_grid_from_X_partial_dependence_brute_partial_dependence_recursion)LinearRegressionLogisticRegressionMultiTaskLasso)r2_score)make_pipeline)PolynomialFeaturesRobustScalerStandardScalerscale)DecisionTreeRegressor)assert_is_subtree)assert_allcloseassert_array_equal)	_IS_32BIT)check_random_state      )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                     |        }t        |d      r|j                  d       |\  \  }}}	|j                  d   }
|j                  ||       t	        ||||||      }||d   }}|	gt        t        |            D cg c]  }| c}}|	|
gt        t        |            D cg c]  }| c}}|dk(  r|j                  j                  |k(  sXJ |dk(  r|j                  j                  |k(  s8J |j                  j                  |k(  sJ |j                  j                  |k(  sJ t        |      |f}|J t        j                  |      j                  |k(  sJ y c c}w c c}w )	Nn_estimatorsr)   )r<   r   )Xr6   methodr7   r3   grid_valuesr8   r9   )hasattr
set_paramsshapefitr   rangelenr8   r9   npasarray)	Estimatorr>   datar3   r6   r7   estr=   yr0   n_instancesresultpdpaxes_expected_pdp_shapeexpected_ice_shapeexpected_axes_shapes                     k/var/www/html/bid-api/venv/lib/python3.12/site-packages/sklearn/inspection/tests/test_partial_dependence.pytest_output_shaperU   B   s   6 +CsN#A&
 FQI''!*KGGAqM
'F }-C#Vc(m@T&U@T1@T&UV $)X#7	8#7a/#7	8
 y{{  $6666		~~##'9999{{  $6666~~##'9999x=/:::d!!%8888! 'V 
9s   ?	E &	E%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
                  j                  d      }d	}|j                  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<   |j                  |       t        || ||      \  }}|j                  ||z  |j                  d   fk(  sJ |d   j                  |fk(  sJ |d   j                  |fk(  sJ y )N皙?ffffff?d   Fr(   r)   r-      r      )   r)   sizer3      90  )
rF   rG   r   r#   TrandomRandomStatenormalrB   shuffle)percentilesr3   is_categoricalr=   gridrO   rngn_unique_valuess           rT   test_grid_from_Xrm      s   
 KOU^N


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


 A	;JD$ ::/O;QWWQZHHHH::d!!a%9999 O"'AoQKKN	;JD$ ::/O;QWWQZHHHH7==_....7==_....    rZ   c                     t        j                  d      }d}dg}|j                  dg di      }t        ||||       \  }}|j                  d|j                  d   fk(  sJ |d	   j                  d
k(  sJ y)jCheck that `_grid_from_X` always sample from categories and does not
    depend from the percentiles.
    pandasrW   Tcat_feature)ABCrs   rt   DEr`   r4   r(   r   )r4   N)pytestimportorskip	DataFramer   rB   )r3   pdrh   ri   r=   rj   rO   s          rT   !test_grid_from_X_with_categoricalr|      s     
		X	&BKVN
m%HIJA	;JD$ ::!QWWQZ(((7==D   rn   c                    t        j                  d      }d}ddg}|j                  g dg dd      }|j                         }t	        ||||       \  }}| d	k(  rC|j
                  d
k(  sJ |d   j
                  d   |d   k(  sJ |d   j
                  d   | k(  sJ y|j
                  dk(  sJ |d   j
                  d   |d   k(  sJ |d   j
                  d   |d   k(  sJ y)rp   rq   rW   TF)
rs   rt   ru   rs   rt   rv   rw   rs   rt   rv   )
r(   r(   r(   r)   r4      r~   r~   r~      )catnumr`   r-   )r\   r)   r   r   r(   )   r)   r   N)rx   ry   rz   nuniquer   rB   )r3   r{   rh   ri   r=   r   rj   rO   s           rT   #test_grid_from_X_heterogeneous_typer      s   
 
		X	&BKE]N
E1	
	A iikG	;JD$ !zzW$$$Aw}}Q75>111Aw}}Q?222zzW$$$Aw}}Q75>111Aw}}Q75>111rn   z%grid_resolution, percentiles, err_msg))r)   )r   g-C6?zpercentiles are too close)rZ   )r(   r)   r-   r[   .'percentiles' must be a sequence of 2 elements)rZ   rb   r   )rZ   )r'   rY   ('percentiles' values must be in \[0, 1\])rZ   )rX   r)   r   )rZ   )g?皙?z+percentiles\[0\] must be strictly less than)r(   rW   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        y # 1 sw Y   y xY w)Nr(   r)   r-   r[   Fmatch)rF   rG   rx   raises
ValueErrorr   )r3   rh   err_msgr=   ri   s        rT   test_grid_from_X_errorr      sN     	

QFQF#$AWN	z	1Q^_E 
2	1	1s   AAtarget_featurer4   zest, methodr,   	recursionc                 <   t        ddd      \  }}||j                         z
  }t        |       j                  ||      } t	        j
                  |gt        j                        }t	        j
                  dgdgg      }|dk(  rt        | |||d	      \  }}nt        | ||      }g }	d
D ]I  }
|j                         }|
|d d |f<   |	j                  | j                  |      j                                K |d   }|dk(  rdnd}t	        j                  ||	|      sJ y )Nr   r4   )r,   
n_featuresn_informativedtype      ?{   r2   r1   )response_method)r   r   r   r   gMbP?)rtol)r   meanr   rC   rF   arrayintpr   r   copyappendpredictallclose)rJ   r>   r   r=   rK   r6   rj   rN   predictionsmean_predictionsvalX_r   s                rT   test_partial_dependence_helpersr      s   0 aqIDAq 	
AFFHA *..A
C xx(8H88cUSEN#D4xF
[ ,Cx@VVX #1nB 4 4 67 
 a&C [(4dD;;s,4888rn   seedc                 V   t         j                  j                  |       }d}d}|j                  ||      }|j                  |      dz  }||j	                         z
  }d}d}t        dd d||      }t        |      j                  t        j                  t         j                        j                        }	t        ddd||		      }
t        ||	
      }|j                  ||       |
j                  ||       |j                  ||       	 t        |j                  |
d   j                         t        |j                  |d   j                         |j                  d      j%                  dd      }t'        |      D ]  }t        j(                  |gt         j*                        }t-        |||      }t-        |
||      }t-        |||      }t         j.                  j1                  ||       t         j.                  j1                  ||        y # t         $ r t"        sJ d       Y y w xY w)N  r4   r5   r   r(   F)r<   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   )rF   rd   re   randnr   r   r%   randintiinfoint32maxr   r    rC   r!   tree_AssertionErrorr$   reshaperD   r   r   r   testingr"   )r   rk   r+   r   r=   rK   r   	tree_seedforestequiv_random_stategbdttreerj   fr6   
pdp_forestpdp_gbdtpdp_trees                     rT   /test_recursion_decision_tree_vs_forest_and_gbdtr   +  s    ))


%C IJ		)Z(A		)r!A
 	
AFFHA II"F ,I6>>rxx?Q?U?UV$!'D !9CUVD
JJq!HHQNHHQN$**d4j&6&67$**fQioo6 99R=  Q'D:88QCrww/264J
0tXF0tXF


""8X6


"":x8    EEEys   
AH H('H(rJ   )r   r(   r)   r-   r[   r4   c                     t        ddd      \  }}t        j                  |      dk(  sJ t        |       j	                  ||      } t        | ||gddd      }t        | ||gdd	d      }t        |d   |d   d
       y )Nr)   r(   r.   r/   r,   r   decision_functionr   r8   )r   r>   r7   r2   gHz>)atol)r
   rF   r   r   rC   r   r"   )rJ   r   r=   rK   preds_1preds_2s         rT    test_recursion_decision_functionr   r  s     QRSDAq771:
*..A
C 		+G !		+G GI&	(:Frn   )r,   min_samples_leafmax_leaf_nodesmax_iterpower)r(   r)   c                    t         j                  j                  d      }d}d}|j                  |df      }|d d |f   |z  }t	        |       j                  ||      } t        | |g|dd      }|d	   d   j                  d
d      }|d   d   }	t        |      j                  |      }t               j                  ||	      }
t        |	|
j                  |            }|dkD  sJ y )Nr      r)   r4   r^   r   r8   )r6   r=   r3   r7   r?   r'   r(   )degreeGz?)rF   rd   re   rf   r   rC   r   r   r   fit_transformr   r   r   )rJ   r   rk   r+   target_variabler=   rK   rN   new_Xnew_ylrr2s               rT   #test_partial_dependence_easy_targetr     s    ( ))


"CIO

A
'A	!_
&A
*..A
C
'1dC q!))"a0E	N1Ee,::5AE				u	-B	%E*	+B99rn   rH   c                    t        ddd      \  }}t        j                  ||g      j                  } |        }|j	                  ||       t        j                  t        d      5  t        ||dg       d d d        y # 1 sw Y   y xY w)Nr-   r(   r   r   z3Multiclass-multioutput estimators are not supportedr   )	r
   rF   r   rc   rC   rx   r   r   r   )rH   r=   rK   rJ   s       rT   test_multiclass_multioutputr     su     QRSDAq
!QA
+CGGAqM	O
 	3A3'
 
 
s   'A??Bc                       e Zd Zd Zy) NoPredictProbaNoDecisionFunctionc                     ddg| _         | S )Nr   r(   )classes_)selfr=   rK   s      rT   rC   z$NoPredictProbaNoDecisionFunction.fit  s    Arn   N)__name__
__module____qualname__rC    rn   rT   r   r     s    rn   r   zestimator, params, err_msg)r,   n_initz4'estimator' must be a fitted regressor or classifierpredict_proba)r6   r   z7The response_method parameter is ignored for regressors)r6   r   r>   zC'recursion' method, the response_method must be 'decision_function'r9   )r6   r>   r7   zCThe 'recursion' method only applies when 'kind' is set to 'average'r:   )r6   r>   z=Only the following estimators support the 'recursion' method:c                     t        d      \  }}t        |       j                  ||      } t        j                  t
        |      5  t        | |fi | d d d        y # 1 sw Y   y xY w)Nr   r   r   r
   r   rC   rx   r   r   r   )	estimatorparamsr   r=   rK   s        rT   test_partial_dependence_errorr     sS    Z A.DAqi $$Q*I	z	19a262 
2	1	1s   AA&r   i'  c                     t        d      \  }}t        |       j                  ||      } d}t        j                  t
        |      5  t        | ||g       d d d        y # 1 sw Y   y xY w)Nr   r   zall features must be inr   r   )r   r6   r=   rK   r   s        rT   /test_partial_dependence_unknown_feature_indicesr     sV    
 A.DAqi $$Q*I'G	z	19a(4 
2	1	1s   A  A)c                 (   t        j                  d      }t        d      \  }}|j                  |      }t	        |       j                  ||      } dg}d}t        j                  t        |      5  t        | ||       d d d        y # 1 sw Y   y xY w)Nrq   r   r   rd   z/A given column is not a column of the dataframer   )	rx   ry   r
   rz   r   rC   r   r   r   )r   r{   r=   rK   dfr6   r   s          rT   .test_partial_dependence_unknown_feature_stringr   &  sx     
		X	&BA.DAq	aBi $$R+IzH?G	z	19b(3 
2	1	1s   1BBc                     t        d      \  }}t        |       j                  ||      } t        | t	        |      dgd       y )Nr   r   r8   )r7   )r
   r   rC   r   list)r   r=   rK   s      rT   test_partial_dependence_X_listr   5  s=    
 A.DAqi $$Q*Iy$q'A3Y?rn   c                  v   t        t               d      } | j                  t        t               t        j                  t        d      5  t        | t        dgdd       d d d        t        j                  t        d      5  t        | t        dgdd       d d d        y # 1 sw Y   CxY w# 1 sw Y   y xY w)Nr   )initr,   z9Using recursion method with a non-constant init predictorr   r   r8   )r>   r7   )	r   r   rC   r=   rK   rx   warnsUserWarningr   )gbcs    rT   (test_warning_recursion_non_constant_initr   ?  s     %/*;!
LCGGAqM	V
 	3A3{K

 
V
 	3A3{K
 

 


 
s   B#B/#B,/B8c                     d} t         j                  j                  d      }|j                  d| t              }|j                  |       }|j                         }||     || <   t         j                  ||f   }t        j                  |       }d||<   t        dd      }|j                  |||	       t        ||dgd
      }t        j                  |d
   |d         d   dkD  sJ y )Nr   i@ r)   )r_   r   g     @@r5   r(   )r<   r,   sample_weightr8   )r6   r7   r?   )r   r(   r   )rF   rd   re   r   boolrandr   c_onesr   rC   r   corrcoef)	Nrk   maskxrK   r=   r   clfrN   s	            rT   9test_partial_dependence_sample_weight_of_fitted_estimatorr  Q  s    
 	A
))


'C;;qq;-DA	A4%yAteH
dAgAGGAJM M$
#!
DCGGAqG.
S!qc	
BC;;s9~s='9:4@4GGGrn   c            	         t        d      } | j                  t        t        t	        j
                  t        t                           t        j                  t        d      5  t        | t        dg       d d d        y # 1 sw Y   y xY w)Nr(   r   r   z#does not support partial dependencer   r6   )r   rC   r=   rK   rF   r   rE   rx   r   NotImplementedErrorr   )r  s    rT   test_hist_gbdt_sw_not_supportedr	  k  s\    
'Q
7CGGAqAG0	#H
 	3QC0
 
 
s   $BB
c                  4   t               } t               }t        d      }t        ||      }|j	                  |j                  | j                        | j                         |j	                  | j                  | j                         d}t        || j                  |gdd      }t        ||j                  | j                        |gdd      }t        |d   |d          t        |d   d   |d   d   |j                  |   z  |j                  |   z          y )N*   r   r   r5   r8   r6   r3   r7   r?   )r	   r   r   r   rC   r   rI   targetr   	transformr"   scale_mean_)irisscalerr  piper6   pdp_pipepdp_clfs          rT    test_partial_dependence_pipeliner  v  s    ;DF
r
*C%DGGF  +T[[9HHTYY$H!dii8*byH !#G HY');<"q!FMM($;;fll8>TTrn   r   r   r,   )r,   r<   zestimator-brutezestimator-recursion)idspreprocessorr   r)   r(   r-   passthrough)	remainder)Nonezcolumn-transformerzcolumn-transformer-passthroughzfeatures-integerzfeatures-stringc                    t        j                  d      }|j                  t        t        j
                        t        j                        }t        |t        |             }|j                  |t        j                         t        |||dd      }|t        |      j                  |      }ddg}n|}ddg}t        |       j                  |t        j                        }	t        |	||d	dd
      }
t        |d   |
d          |H|j                  d   }t        |d   d   |
d   d   |j                  d   z  |j                   d   z          y t        |d   d   |
d   d          y )Nrq   columnsr5   r8   r  r   r(   r)   r2   )r6   r>   r3   r7   standardscalerr?   )rx   ry   rz   r   r  rI   feature_namesr   r   rC   r  r   r   r"   named_transformers_r  r  )r   r  r6   r{   r   r  r  X_procfeatures_clfr  r  r  s               rT   !test_partial_dependence_dataframer'    sb   > 
		X	&B	eDII&0B0B	CBuY'78DHHR!b8RiH |$22261v1v
	


vt{{
3C G HY');<112BC]#A&M"1%a(886<<?J	

 	/2GM4J14MNrn   zfeatures, expected_pd_shape)r   r-   r5   r(  )r-   r5   r5   )TFTF)z
scalar-intz
scalar-strzlist-intzlist-strr  c           	      j   t        j                  d      }|j                  t        j                  t        j
                        }t        t               dD cg c]  }t        j
                  |    c}ft               dD cg c]  }t        j
                  |    c}f      }t        |t        dd            }|j                  |t        j                         t        ||| dd	
      }|d	   j                  |k(  sJ t        |d         t        |d	   j                        dz
  k(  sJ y c c}w c c}w )Nrq   r   r  r  r   r   r  r5   r8   r  r?   r(   )rx   ry   rz   r  rI   r#  r   r   r   r   r   rC   r  r   rB   rE   )r6   expected_pd_shaper{   r   ir  r  r  s           rT   $test_partial_dependence_feature_typer,    s    
		X	&B	dii););	<B*		6B6aD..q16BC	@A$,,Q/@AL ($QGD 	HHR!b8RiH I$$(9999x&'3x	/B/H/H+IA+MMMM C@s   D+
D0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        t        j                  t        d      5  t        | |ddgd       d d d        y # 1 sw Y   ?xY w# 1 sw Y   y xY w)	Nr   r)   r(   r-   zis not fitted yetr   r5   )r6   r3   )
r  rI   r   r   r   r   rx   r   r   r   )r   r=   r  r  s       rT    test_partial_dependence_unfittedr.    s     			A*		Aq6"\^aV$<L y1D	~-@	A4aVRH 
B	~-@	A9a1a&"M 
B	A 
B	A	A	As   B,B8,B58CzEstimator, datac                      |        }|\  \  }}}|j                  ||       t        ||ddgd      }t        ||ddgd      }t        j                  |d   d      }t	        ||d          y )Nr(   r)   r8   r=   r6   r7   r9   )axis)rC   r   rF   r   r"   )	rH   rI   rJ   r=   rK   r0   pdp_avgpdp_indavg_inds	            rT   +test_kind_average_and_average_of_individualr5    sr     +CFQIGGAqM QFKG QFNGgggl+!4GGWY/0rn   c                     |        }|\  \  }}}t        j                  |j                  d         }|j                  ||       t	        ||ddgd      }t	        ||ddgd|      }t        |d   |d          t        |d   |d          y)	zDCheck that `sample_weight` does not have any effect on reported ICE.r   r(   r)   r9   r0  )r=   r6   r7   r   r?   N)rF   arangerB   rC   r   r"   )	rH   rI   rJ   r=   rK   r0   r   pdp_nswpdp_sws	            rT   =test_partial_dependence_kind_individual_ignores_sample_weightr:     s     +CFQIIIaggaj)MGGAqM QFNGqAq6MF GL)6,+?@GM*F=,ABrn   non_null_weight_idx)r   r(   r'   c                     t         j                  t         j                  }}t        t	               ddgft               ddgf      }t        |t        |             j                  ||      }t        j                  |      }d||<   t        ||ddgd|d      }t        ||ddgdd	      }t        |      rdnt        t        j                  |            }	t        |	      D ]  }
t!        |d   |
   |   |d   |
           y
)a   Check that if we pass a `sample_weight` of zeros with only one index with
    sample weight equals one, then the average `partial_dependence` with this
    `sample_weight` is equal to the individual `partial_dependence` of the
    corresponding index.
    r   r)   r(   r-   r8   r5   )r7   r   r3   r9   )r7   r3   N)r  rI   r  r   r   r   r   r   rC   rF   
zeros_liker   r   rE   uniquerD   r"   )r   r;  r=   rK   r  r  r   r9  r3  
output_dimr+  s              rT   +test_partial_dependence_non_null_weight_idxr@  6  s      99dkkqA*		Aq6"\^aV$<L uY'78<<QBDMM!$M)*M%&		
A#F !q1a&|UWXG"4(c"))A,.?J:L!!$%899a 	
 rn   c                     |        }|\  \  }}}|j                  ||       d|ddgdd}}t        |fi |d|i}t        j                  t	        |            }t        |fi |d|i}	t        |d   |	d          dt        j                  t	        |            z  }t        |fi |d|i}
t        |d   |
d          y)zFCheck that `sample_weight=None` is equivalent to having equal weights.Nr(   r)   r8   r0  r   )rC   r   rF   r   rE   r"   )rH   rI   rJ   r=   rK   r0   r   r   pdp_sw_nonepdp_sw_unitpdp_sw_doublings              rT   7test_partial_dependence_equivalence_equal_sample_weightrE  _  s     +CFQIGGAqM 1vy"Q6M$SPFP-PKGGCFOM$SPFP-PKK	*K	,BCA'M(TTmTOK	*OI,FGrn   c            	         t               } t        \  \  }}}t        j                  |      }| j	                  ||       t        j                  t        d      5  t        | |dg|dd d       ddd       y# 1 sw Y   yxY w)zjCheck that we raise an error when the size of `sample_weight` is not
    consistent with `X` and `y`.
    zsample_weight.shape ==r   r   r(   Nr5   )r6   r   r3   )	r   binary_classification_datarF   	ones_likerC   rx   r   r   r   rJ   r=   rK   r0   r   s        rT   0test_partial_dependence_sample_weight_size_errorrJ  w  sm     
C2FQILLOMGGAqM	z)A	BaSab0ASU	
 
C	B	Bs   A77B c                     t               } t        \  \  }}}t        j                  |      }| j	                  |||       t        j                  t        d      5  t        | |dgd|       ddd       y# 1 sw Y   yxY w)zaCheck that we raise an error when `sample_weight` is provided with
    `"recursion"` method.
    r   z+'recursion' method can only be applied whenr   r   r   )r6   r>   r   N)	r   regression_datarF   rH  rC   rx   r   r   r   rI  s        rT   4test_partial_dependence_sample_weight_with_recursionrM    sj      
!C'FQILLOMGGAqG.	z)V	WaSM	
 
X	W	Ws   A66A?c                     t        j                  dddt         j                  gt              j	                  dd      } t        j                  g d      }dd	lm} t         |d
      t                     j                  | |      }t        j                  t        d      5  t        || dg       ddd       y# 1 sw Y   yxY w)znCheck that we raise a proper error when a column has mixed types and
    the sorting of `np.unique` will fail.rs   rt   ru   r   r'   r(   )r   r(   r   r(   r   )OrdinalEncoder)encoded_missing_valuez'The column #0 contains mixed data typesr   r  N)rF   r   nanobjectr   sklearn.preprocessingrO  r   r   rC   rx   r   r   r   )r=   rK   rO  r  s       rT   test_mixed_type_categoricalrT    s     	#sC(7??AFA
A4
R0 
c!Qi  
z)R	S3QC0 
T	S	Ss   !B::C)k__doc__numpyrF   rx   sklearnsklearn.baser   r   r   r   sklearn.clusterr   sklearn.composer   sklearn.datasetsr	   r
   r   sklearn.dummyr   sklearn.ensembler   r   r   r   r   sklearn.exceptionsr   sklearn.inspectionr   &sklearn.inspection._partial_dependencer   r   r   sklearn.linear_modelr   r   r   sklearn.metricsr   sklearn.pipeliner   rS  r   r   r   r   sklearn.treer    sklearn.tree.tests.test_treer!   sklearn.utils._testingr"   r#   sklearn.utils.fixesr$   sklearn.utils.validationr%   r=   rK   rG  multiclass_classification_datarL  multioutput_regression_datar  markparametrizerU   rm   r|   r   r   rD   r   r   r   r   r   DecisionTreeClassifierExtraTreeClassifierensembleExtraTreesClassifier	neighborsKNeighborsClassifierRadiusNeighborsClassifierRandomForestClassifierr   r   r   r   r   r   r   r  r	  r  r#  r'  r,  r.  r5  r:  r@  rE  rJ  rM  rT  )r+  s   0rT   <module>ru     s	      L L " 3 L L )  . 1 
 V U $ *  / : F ) 7 	"XBx"bAq6Aq6Aq6: 2BQOQRS  	"  #Ra@!DbAA>  { 	#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qcAq6]3!BC,9 D 4 5#(,9^$/N 	!! *QH52 628 +FF )584		W%	"	2G<	"	2K@	&A	6@	&A	6D	+9	 5+9\ q*C9 +C9L 	"2&A6 )+=>G ?G< 	!q1%Qta	
 	1-
 &) *
> ++((--..33//
(
(     &1!B	
 AE	
 'A6C#2%
 R	
 'A6FSQ	
 \JQ	
 VDQ	
 4K	
G(+X3Y+X3 "$&@a&PQ b%[15 25 "$&@a&PQ	4	4 "$&@a&PQ@@L$H41: Dq9"B 
12   vFv! 2 21 5vFG^VDVd003VDE	
 	 vFv! 2 21 5vFG#	

 	I   VV4Vd  #V45	./  
(O8(OV !			A	(
Q)/	0A$

Q
	0+>	#[1 	E  
N
N( !#"$		N	N 	67	7811 	67	78CC "$	 .
;
 <
> 	67	78HH"

1k  GD  G 5h 
1s   (__$4_)9_._3