Ë
    íì�i   ã                   ó®  — d Z ddlZddl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! 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/m0Z0m1Z1m2Z2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9m:Z: ddl;m<Z< ddl=m>Z> 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ZA edddd¬«      dfZB edd¬«      dfZC eddd¬«      dfZD e«       ZEejŒ                  j�                  d ed!eAfed!eBfed"eAfed"eBfed!eCfed"eCfe5d"eCfe'd"eCfe'd"eDfe(d"eAfe(d"eBfe)d"eDfg«      ejŒ                  j�                  d#d$«      ejŒ                  j�                  d%dgddgf«      ejŒ                  j�                  d&d'«      ejŒ                  j�                  d(d)d*g«      d+„ «       «       «       «       «       ZHd,„ ZIejŒ                  j�                  d#dd-g«      d.„ «       ZJejŒ                  j�                  d#dd-g«      d/„ «       ZKejŒ                  j�                  d0g d1¢«      d2„ «       ZLejŒ                  j�                  d3 eMd4«      «      ejŒ                  j�                  d5 e'«       d"f ed¬6«      d"f ed¬6«      d7f ed¬6«      d"f ed¬6«      d7fg«      d8„ «       «       ZNejŒ                  j�                  d9 eMd«      «      d:„ «       ZOejŒ                  j�                  d; ed¬6«       ed¬6«      f«      ejŒ                  j�                  d3d<«      d=„ «       «       ZPejŒ                  j�                  d; e'«        ed¬6«       edddd¬>«       e5d¬6«      f«      ejŒ                  j�                  d?d@«      dA„ «       «       ZQejŒ                  j�                  dBej¤                  j¦                  ej¤                  j¨                  ejª                  j¬                  ej®                  j°                  ej®                  j²                  ejª                  j´                  f«      dC„ «       Z[ G dD„ dEe	e«      Z\ejŒ                  j�                  dF edd!¬G«      d%dgidHf e'«       dgdIdJœdKf ed¬6«      dgdId7dLœdMf ed¬6«      dgdId!dLœdMf e'«       dgd7dNdOœdPf e'«       dgd7dQdOœdPf e'«       dgd7dRœdSf e'«       ddgg dT¢ ejº                  dU«      dVœdWœdXfg«      dY„ «       Z^ejŒ                  j�                  dZ e'«        ed¬6«      g«      ejŒ                  j�                  d%dd[g«      d\„ «       «       Z_ejŒ                  j�                  dZ e'«        ed¬6«      g«      d]„ «       Z`ejŒ                  j�                  dZ e'«        ed¬6«      g«      d^„ «       Zad_„ Zbd`„ Zcda„ Zddb„ ZeejŒ                  j�                  dcddgdedefddgddfg«      df„ «       ZfejŒ                  j�                  dgddgddg dh¢idifddgdddjdkgidfddgdddjgidfg«      dl„ «       ZgejŒ                  j�                  dgdmgdmdddmgidfdmgdmddgidfdddmgdjdkgdddmgdnœdifg«      do„ «       ZhejŒ                  j�                  dZ e(dpd¬q«       edd4¬r«      gdsdtg¬u«      ejŒ                  j�                  dvd e e2«       dwD � cg c]  } eEjÒ                  |    ‘Œ c} f e1«       dxD � cg c]  } eEjÒ                  |    ‘Œ c} f«       e e2«       dwD � cg c]  } eEjÒ                  |    ‘Œ c} fdy¬z«      gg d{¢¬u«      ejŒ                  j�                  d%ddgdwD � cg c]  } eEjÒ                  |    ‘Œ c} gd|d}g¬u«      d~„ «       «       «       ZjejŒ                  j�                  dd€ddg d�¢idUfeEjÒ                  d   dd‚feEjÒ                  d   eEjÒ                  d    ejÖ                  djdkg«      idƒfddgdd„fddgdg d…¢id†fdwD � cg c]  } eEjÒ                  |    ‘Œ c} dd„fdwD � cg c]  } eEjÒ                  |    ‘Œ c} eEjÒ                  d   g d‡¢id†fdwD � cg c]  } eEjÒ                  |    ‘Œ c} dg d‡¢id„fdˆD � cg c]  } eEjÒ                  |    ‘Œ c} eEjÒ                  d   ddegid‰fg dŠ¢dd„fgg d‹¢¬u«      dŒ„ «       ZlejŒ                  j�                  dZ e'«        e(«        e«        e«       g«      d�„ «       ZmejŒ                  j�                  dŽe'eDfe(eAfg«      d�„ «       ZnejŒ                  j�                  dŽe'eDfe(eAfg«      d�„ «       ZoejŒ                  j�                  dZ e'«        e(«        e«        e«       g«      ejŒ                  j�                  d‘g d’¢«      d“„ «       «       ZpejŒ                  j�                  dŽe'eDfe(eAfg«      d”„ «       Zqd•„ Zrd–„ Zsd—„ Ztd˜„ Zud™„ Zvdš„ Zwyc c} w c c} w c c} w 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)ÚSimpleImputer)Úpartial_dependence)Ú_grid_from_XÚ_partial_dependence_bruteÚ_partial_dependence_recursion)ÚLinearRegressionÚLogisticRegressionÚMultiTaskLasso)Úr2_score)Úmake_pipeline)ÚOneHotEncoderÚ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ÚbothÚuse_custom_valuesTFc           	      ó  —  | «       }t        |d«      r|j                  d¬«       |\  \  }}	}
|j                  d   }d }|rd}|D �ci c]  }||d |…|f   “Œ }}|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 c c}w )
NÚn_estimatorsr+   )r?   r   r6   )ÚXr8   Úmethodr9   r5   Úcustom_valuesÚgrid_valuesr:   r;   )ÚhasattrÚ
set_paramsÚshapeÚfitr   ÚrangeÚlenr:   r;   ÚnpÚasarray)Ú	EstimatorrA   Údatar5   r8   r9   r=   Úestr@   Úyr2   Ún_instancesrB   ÚfÚresultÚpdpÚaxesÚ_Úexpected_pdp_shapeÚexpected_ice_shapeÚexpected_axes_shapes                        ú•/var/www/ITT-ServiceAPI-Services/ITT-Document-Scan/mrzscanner/mrzenv/lib/python3.12/site-packages/sklearn/inspection/tests/test_partial_dependence.pyÚtest_output_shaperZ   G   s¿  € ñ< ‹+€CÜˆs�NÔ#Ø�‰ AˆÔ&ð
 Ñ�F€QˆˆIØ—'‘'˜!‘*€Kà€MÙØˆØ<DÖE°q˜˜AÐ.˜Ð.°Ð1Ñ2Ñ2ÐEˆÐEà‡G�GˆAˆq„MÜØØ
ØØØØ'Ø#ô€Fð ˜˜}Ñ-ˆ€Cà#ÐVÄÄcÈ(ÃmÓ@TÖ&U¸1¢Ò&UÑVÐàØðô $)¬¨X«Ó#7Ö	8˜aŠ/Ò	8ñÐð
 ˆyÒØ�{‰{× Ñ Ð$6Ò6Ð6Ð6Ø	�Ò	Ø�~‰~×#Ñ#Ð'9Ò9Ð9Ð9à�{‰{× Ñ Ð$6Ò6Ð6Ð6Ø�~‰~×#Ñ#Ð'9Ò9Ð9Ð9ä˜x›=¨/Ð:ÐØÐÐÐÜ�:‰:�dÓ×!Ñ!Ð%8Ò8Ð8Ñ8ùò= Fùò 'Vùò 
9s   ÁE>Â	FÃ	Fc            	      óä  — d} d}ddg}t        j                  ddgddgg«      }t        || ||i «      \  }}t        |ddgddgddgddgg«       t        ||j                  «       t         j
                  j                  d«      }d	}|j                  d
¬«      }t        || ||i ¬«      \  }}|j                  ||z  |j                  d   fk(  sJ ‚t        j                  |«      j                  d|fk(  sJ ‚|j                  |j                  k(  sJ ‚d}d||dz
  d …df<   |j                  |«       t        || ||i ¬«      \  }}|j                  ||z  |j                  d   fk(  sJ ‚|d   j                  |fk(  sJ ‚|d   j                  |fk(  sJ ‚|j                  |j                  k(  sJ ‚|j                  d
¬«      }d||dz
  d …df<   g d¢}t        || ||d|i¬«      \  }}|j                  |t        |«      z  |j                  d   fk(  sJ ‚|d   j                  |fk(  sJ ‚|d   j                  t        |«      fk(  sJ ‚|j                  |j                  k(  sJ ‚|j                  d
¬«      }g d¢}	d}t        || ||d|	i¬«      \  }}|j                  |t        |	«      z  |j                  d   fk(  sJ ‚|d   j                  t        |	«      fk(  sJ ‚|d   j                  |fk(  sJ ‚|j                  t        j                  |t        j                  |	«      j                  «      k(  sJ ‚t        j                  ddgddgddgg«      }t        || ||dg d¢i¬«      \  }}|j                  t        k(  sJ ‚y )N©çš™™™™™©?çffffffî?éd   Fr*   r+   r/   é   r   é   )é   r+   ©Úsize©r5   rB   é   é90  ©r   r+   r/   )Úis_categoricalr5   rB   )r   r+   r/   r`   r6   é   r6   ÚaÚbÚc©rk   rl   rm   )rJ   rK   r   r%   ÚTÚrandomÚRandomStateÚnormalrF   ÚdtypeÚshufflerI   Úresult_typeÚarrayÚobject)
Úpercentilesr5   ri   r@   ÚgridrT   ÚrngÚn_unique_valuesÚcol_1_rangeÚcol_0_ranges
             rY   Útest_grid_from_Xr~   “   sÀ  € ð
 €KØ€OØ˜U�^€NÜ
�
‰
�Q˜�F˜Q ˜FÐ#Ó$€AÜ˜a ¨n¸oÈrÓR�J€Dˆ$Ü�t˜q !˜f q¨! f¨q°!¨f°q¸!°fÐ=Ô>Ü�t˜QŸS™SÔ!ô �)‰)×
Ñ
 Ó
"€CØ€Oð 	�
‰
˜ˆ
Ó €AÜØ	ØØØ'Øô�J€Dˆ$ð �:‰:˜/¨OÑ;¸Q¿W¹WÀQ¹ZÐHÒHÐHÐHÜ�:‰:�dÓ×!Ñ! a¨Ð%9Ò9Ð9Ð9Ø�:‰:˜Ÿ™Ò Ð Ð ð €OØ"'€A€o˜ÑÑ˜QÐÑØ‡K�K�„NÜØ	ØØØ'Øô�J€Dˆ$ð �:‰:˜/¨OÑ;¸Q¿W¹WÀQ¹ZÐHÒHÐHÐHà�‰7�=‰=˜_Ð.Ò.Ð.Ð.Ø�‰7�=‰=˜_Ð.Ò.Ð.Ð.Ø�:‰:˜Ÿ™Ò Ð Ð ð 	�
‰
˜ˆ
Ó €AØ"'€A€o˜ÑÑ˜QÐÑÚ€KÜØ	ØØ%Ø'Ø˜+Ð&ô�J€Dˆ$ð �:‰:˜/¬C°Ó,<Ñ<¸a¿g¹gÀa¹jÐIÒIÐIÐIà�‰7�=‰=˜_Ð.Ò.Ð.Ð.Ø�‰7�=‰=œS Ó-Ð/Ò/Ð/Ð/Ø�:‰:˜Ÿ™Ò Ð Ð ð 	�
‰
˜ˆ
Ó €AÚ$€KØ€OÜØ	ØØ%Ø'Ø˜+Ð&ô�J€Dˆ$ð �:‰:˜/¬C°Ó,<Ñ<¸a¿g¹gÀa¹jÐIÒIÐIÐIà�‰7�=‰=œS Ó-Ð/Ò/Ð/Ð/Ø�‰7�=‰=˜_Ð.Ò.Ð.Ð.Ø�:‰:œŸ™¨¬2¯:©:°kÓ+B×+HÑ+HÓIÒIÐIÐIä
�‰�1�c�(˜Q ˜H q¨# hÐ/Ó0€AäØ	ØØ%Ø'Øš/Ð*ô�J€Dˆ$ð �:‰:œÒÐÑó    r_   c                 óð   — t        j                  d«      }d}dg}|j                  dg d¢i«      }t        |||| i ¬«      \  }}|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.
    Úpandasr\   TÚcat_feature)ÚAÚBÚCr„   r…   ÚDÚEre   r6   r*   r   )r6   N)ÚpytestÚimportorskipÚ	DataFramer   rF   )r5   Úpdrx   ri   r@   ry   rT   s          rY   Ú!test_grid_from_X_with_categoricalr�   ñ   s‡   € ô 
×	Ñ	˜XÓ	&€BØ€KØ�V€NØ
�‰�mÒ%HÐIÓJ€AÜØ	ØØØ'Øô�J€Dˆ$ð �:‰:˜!˜QŸW™W Q™Z˜Ò(Ð(Ð(Ø�‰7�=‰=˜DÒ Ð Ñ r   c                 óÊ  — t        j                  d«      }d}ddg}|j                  g d¢g d¢dœ«      }|j                  «       }t	        |||| i ¬«      \  }}| 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)r�   r‚   r\   TF)
r„   r…   r†   r„   r…   r‡   rˆ   r„   r…   r‡   )
r*   r*   r*   r+   r6   rj   rj   rj   rj   é   )ÚcatÚnumre   r/   )ra   r+   r   r‘   r*   )é   r+   r�   N)r‰   rŠ   r‹   Únuniquer   rF   )r5   rŒ   rx   ri   r@   r“   ry   rT   s           rY   Ú#test_grid_from_X_heterogeneous_typer”     s  € ô
 
×	Ñ	˜XÓ	&€BØ€KØ˜E�]€NØ
�‰âEÚ1ñ	
ó	€Að �i‰i‹k€GäØ	ØØØ'Øô�J€Dˆ$ð ˜!ÒØ�z‰z˜WÒ$Ð$Ð$Ø�A‰w�}‰}˜QÑ 7¨5¡>Ò1Ð1Ð1Ø�A‰w�}‰}˜QÑ ?Ò2Ð2Ñ2à�z‰z˜WÒ$Ð$Ð$Ø�A‰w�}‰}˜QÑ 7¨5¡>Ò1Ð1Ð1Ø�A‰w�}‰}˜QÑ 7¨5¡>Ò1Ð1Ñ1r   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_   rg   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*   r\   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        |||| i ¬«       d d d «       y # 1 sw Y   y xY w)Nr*   r+   r/   r`   F©Úmatch)rB   )rJ   rK   r‰   ÚraisesÚ
ValueErrorr   )r5   rx   Úerr_msgr@   ri   s        rY   Útest_grid_from_X_errorrž   ,  s^   € ô 	�
‰
�Q˜�F˜Q ˜FÐ#Ó$€AØ�W€NÜ	�‰”z¨Ô	1ñ XÜ�Q˜ ^°_ÐTVÕW÷X÷ Xñ Xús   ºAÁAÚtarget_featurer6   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   r6   )r.   Ú
n_featuresÚn_informative©rs   ç      à?é{   r4   r3   )Úresponse_method)r¦   r§   r¡   r—   gü©ñÒMbP?)Úrtol)r   Úmeanr   rG   rJ   rv   Úintpr   r   ÚcopyÚappendÚpredictÚallclose)rN   rA   rŸ   r@   rO   r8   ry   rS   ÚpredictionsÚmean_predictionsÚvalÚX_r©   s                rY   Útest_partial_dependence_helpersr´   ?  s  € ô0 ¨°aÀqÔI�D€A€qð 	
ˆA�F‰F‹H‰€Aô �‹*�.‰.˜˜AÓ
€Cô �x‰x˜Ð(´·±Ô8€HÜ�8‰8�c�U˜S˜E�NÓ#€Dà�ÒÜ4Ø��x °Fô
Ñˆ‰[ô ,¨C°°xÓ@ˆàÐØò 8ˆØ�V‰V‹XˆØ #ˆŠ1ˆnÐÑØ×Ñ §¡¨B£× 4Ñ 4Ó 6Õ7ð8ð
 ˆa‰&€Cð ˜[Ò(‰4¨d€DÜ�;‰;�sÐ,°4Õ8Ð8Ñ8r   Ú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éè  r6   r7   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¥   )rJ   rp   rq   Úrandnrª   r   r'   ÚrandintÚiinfoÚint32Úmaxr   r"   rG   r#   Útree_ÚAssertionErrorr&   ÚreshaperH   rv   r«   r   Útestingr$   )rµ   rz   r-   r£   r@   rO   rº   Ú	tree_seedÚforestÚequiv_random_stateÚgbdtÚtreery   rQ   r8   Ú
pdp_forestÚpdp_gbdtÚpdp_trees                     rY   Ú/test_recursion_decision_tree_vs_forest_and_gbdtrÏ   x  sç  € ô �)‰)×
Ñ
 Ó
%€Cð €IØ€JØ�	‰	�)˜ZÓ(€AØ�	‰	�)Ó˜rÑ!€Að
 	
ˆA�F‰F‹H‰€Að €Ià€IÜ"ØØØØØô€Fô ,¨IÓ6×>Ñ>¼r¿x¹xÌÏÉÓ?Q×?UÑ?UÓVÐÜ$ØØØ!ØØ'ô€Dô !¨9ÐCUÔV€Dà
‡J�Jˆq�!ÔØ‡H�HˆQ�„NØ‡H�HˆQ�„NðÜ˜$Ÿ*™* d¨4¡j×&6Ñ&6Ô7Ü˜$Ÿ*™* f¨Q¡i§o¡oÔ6ð �9‰9�R‹=× Ñ   QÓ'€DÜ�:Óò 9ˆÜ—8‘8˜Q˜C¤r§w¡wÔ/ˆä2°6¸4ÀÓJˆ
Ü0°°t¸XÓFˆÜ0°°t¸XÓFˆä
�
‰
×"Ñ" 8¨XÔ6Ü
�
‰
×"Ñ" :¨xÕ8ñ9øô ò õ ÐEÐEÓEˆyÙðús   Ä
AH ÈH(È'H(rN   )r   r*   r+   r/   r`   r6   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*   ©r0   r1   r.   r¦   Údecision_functionr¡   r:   )r¨   rA   r9   r4   gH¯¼šò×z>)Úatol)r
   rJ   rª   r   rG   r   r$   )rN   rŸ   r@   rO   Úpreds_1Úpreds_2s         rY   Ú test_recursion_decision_functionrÖ   ¿  s™   € ô ¨ÀÐQRÔS�D€A€qÜ�7‰7�1‹:˜ÒÐÐä
�‹*�.‰.˜˜AÓ
€Cä ØØ	Ø	ÐØ+ØØô€Gô !ØØ	Ø	ÐØ+ØØô€Gô �G˜IÑ&¨°	Ñ(:ÀÖFr   )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+   r6   rc   r·   r:   )r8   r@   r5   r9   rC   r)   r*   )Údegreeç®Gáz®ï?)rJ   rp   rq   rr   r   rG   r   rÅ   r   Úfit_transformr   r   r®   )rN   rÚ   rz   r-   Útarget_variabler@   rO   rS   Únew_XÚnew_yÚlrÚr2s               rY   Ú#test_partial_dependence_easy_targetrå   å  sí   € ô( �)‰)×
Ñ
 Ó
"€CØ€IØ€OØ�
‰
˜ A˜ˆ
Ó'€AØ	Š!ˆ_Ð
Ñ Ñ&€Aä
�‹*�.‰.˜˜AÓ
€Cä
Ø�Ð'¨1¸dÈô€Cð �Ñ˜qÑ!×)Ñ)¨"¨aÓ0€EØ�	‰N˜1Ñ€Eä eÔ,×:Ñ:¸5ÓA€Eä	Ó	×	Ñ	  uÓ	-€BÜ	�%˜Ÿ™ EÓ*Ó	+€Bà�Š9Ð‰9r   rL   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
   rJ   rv   ro   rG   r‰   r›   rœ   r   )rL   r@   rO   rN   s       rY   Útest_multiclass_multioutputrç     sz   € ô ¨ÀÐQRÔS�D€A€qÜ
�‰�!�Q�Ó×Ñ€Aá
‹+€CØ‡G�GˆAˆq„Mä	�‰ÜÐOô
ñ (ô 	˜3  A 3Ô'÷(÷ (ñ (ús   Á'A?Á?Bc                   ó   — e Zd Zd„ Zy)Ú NoPredictProbaNoDecisionFunctionc                 ó   — ddg| _         | S )Nr   r*   )Úclasses_)Úselfr@   rO   s      rY   rG   z$NoPredictProbaNoDecisionFunction.fit,  s   € à˜A˜ˆŒØˆr   N)Ú__name__Ú
__module__Ú__qualname__rG   © r   rY   ré   ré   +  s   „ ór   ré   zestimator, params, err_msg)r.   Ún_initz4'estimator' must be a fitted regressor or classifierÚpredict_proba)r8   r¨   z7The response_method parameter is ignored for regressors)r8   r¨   rA   zC'recursion' method, the response_method must be 'decision_function'r;   )r8   rA   r9   zCThe 'recursion' method only applies when 'kind' is set to 'average'r<   )r8   rA   z=Only the following estimators support the 'recursion' method:©r*   r+   r/   )r/   r/   ©r   r*   )r8   rB   zYThe custom grid for some features is not a one-dimensional array. Feature 1: 2 dimensionsc                 óÒ   — 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   rG   r‰   r›   rœ   r   )Ú	estimatorÚparamsr�   r@   rO   s        rY   Útest_partial_dependence_errorrù   2  s\   € ôj ¨AÔ.�D€A€qÜ�iÓ ×$Ñ$ Q¨Ó*€Iä	�‰”z¨Ô	1ñ 3Ü˜9 aÑ2¨6Ò2÷3÷ 3ñ 3ús   Á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÷   r8   r@   rO   r�   s        rY   Ú/test_partial_dependence_unknown_feature_indicesrû   n  s_   € ô
 ¨AÔ.�D€A€qÜ�iÓ ×$Ñ$ Q¨Ó*€Ià'€GÜ	�‰”z¨Ô	1ñ 5Ü˜9 a¨(¨Ô4÷5÷ 5ñ 5ús   Á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)Nr‚   r   r    rp   z/A given column is not a column of the dataframer™   )	r‰   rŠ   r
   r‹   r   rG   r›   rœ   r   )r÷   rŒ   r@   rO   Údfr8   r�   s          rY   Ú.test_partial_dependence_unknown_feature_stringrþ   {  s�   € ô 
×	Ñ	˜XÓ	&€BÜ¨AÔ.�D€A€qØ	�‰�a‹€BÜ�iÓ ×$Ñ$ R¨Ó+€Iàˆz€HØ?€GÜ	�‰”z¨Ô	1ñ 4Ü˜9 b¨(Ô3÷4÷ 4ñ 4ús   Á1BÂBc                 óŠ   — t        d¬«      \  }}t        | «      j                  ||«      } t        | t	        |«      dgd¬«       y )Nr   r    r:   )r9   )r
   r   rG   r   Úlist)r÷   r@   rO   s      rY   Útest_partial_dependence_X_listr  Š  s=   € ô
 ¨AÔ.�D€A€qÜ�iÓ ×$Ñ$ Q¨Ó*€IÜ�y¤$ q£'¨A¨3°YÖ?r   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¡   r:   )rA   r9   )	r   r   rG   r@   rO   r‰   ÚwarnsÚUserWarningr   )Úgbcs    rY   Ú(test_warning_recursion_non_constant_initr  ”  s¦   € ô %¬/Ó*;È!Ô
L€CØ‡G�GŒAŒq„Mä	�‰ÜÐVô
ñ Lô 	˜3¤ A 3¨{ÀÕK÷Lô
 
�‰ÜÐVô
ñ Lô 	˜3¤ A 3¨{ÀÕK÷Lð L÷Lð Lú÷
Lð Lú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+   )rd   rs   g     @�@r7   r*   )r?   r.   ©Úsample_weightr:   )r8   r9   rC   rô   rÞ   )rJ   rp   rq   r¿   ÚboolÚrandr¬   Úc_Úonesr   rG   r   Úcorrcoef)	ÚNrz   ÚmaskÚxrO   r@   r
  ÚclfrS   s	            rY   Ú9test_partial_dependence_sample_weight_of_fitted_estimatorr  ¦  sÛ   € ð
 	€AÜ
�)‰)×
Ñ
 Ó
'€CØ�;‰;�q˜q¬ˆ;Ó-€Dà�‰�‹€Aà	�‰‹€AØ�4�%‘ˆy€A€t€e�HÜ
�‰ˆd�Aˆg‰€Aä—G‘G˜A“J€MØ €M�$Ñä
#°À!Ô
D€CØ‡G�GˆAˆq €GÔ.ä
˜S !¨q¨c¸	Ô
B€Cä�;‰;�s˜9‘~ s¨=Ñ'9Ó:¸4Ñ@À4ÒGÐGÑGr   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™   ©r8   )r   rG   r@   rO   rJ   r  rI   r‰   r›   ÚNotImplementedErrorr   ©r  s    rY   Útest_hist_gbdt_sw_not_supportedr  À  sa   € ä
'°QÔ
7€CØ‡G�GŒAŒq¤§¡¬¬A«£€GÔ0ä	�‰ÜÐ#Hô
ñ 1ô 	˜3¤¨Q¨CÕ0÷1÷ 1ñ 1ú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   r7   r:   ©r8   r5   r9   rC   )r	   r    r   r   rG   rß   rM   Útargetr   Ú	transformr$   Úscale_Úmean_)ÚirisÚscalerr  Úpiper8   Úpdp_pipeÚpdp_clfs          rY   Ú test_partial_dependence_pipeliner&  Ë  sþ   € ä‹;€DäÓ€FÜ
 rÔ
*€CÜ˜ Ó%€Dà‡G�GˆF× Ñ  §¡Ó+¨T¯[©[Ô9Ø‡H�HˆT�Y‰Y˜Ÿ™Ô$à€HÜ!Øˆd�i‰i 8 *¸bÀyô€Hô !ØØ×Ñ˜Ÿ™Ó#Ø�ØØô€Gô �H˜YÑ'¨°Ñ);Ô<ÜØ�Ñ Ñ"Ø�Ñ˜qÑ! F§M¡M°(Ñ$;Ñ;¸f¿l¹lÈ8Ñ>TÑTõr   z*features, grid_resolution, n_vals_expectedrk   r7   c                 ó  — t        j                  d«      }t        «       }t        j                  j                  d«      }|j                  |j                  ddd¬«      j                  t        j                  «      |j                  ddd¬«      j                  t        j                  «      dœ«      }|j                  |j                  ddd¬«      «      }|j                  ||«       t        ||| |d¬	«      }|d   j                  |k(  sJ ‚y )
Nr‚   r   r7   r_   rc   ©rk   rl   r+   r:   r  )r‰   rŠ   r   rJ   rp   rq   r‹   r¿   ÚastypeÚfloat64ÚSeriesrG   r   rd   )	r8   r5   Ún_vals_expectedrŒ   Úmodelrz   r@   rO   Úpart_deps	            rY   Ú4test_partial_dependence_binary_model_grid_resolutionr/  è  så   € ô 
×	Ñ	˜XÓ	&€BÜÓ€Eä
�)‰)×
Ñ
 Ó
"€CØ
�‰à—‘˜Q ¨�Ó-×4Ñ4´R·Z±ZÓ@Ø—‘˜Q ¨�Ó-×4Ñ4´R·Z±ZÓ@ñ	
ó	€Að 	�	‰	�#—+‘+˜a ¨�+Ó-Ó.€AØ	‡I�Iˆa�„Oä!ØØ	ØØ'Øô€Hð �IÑ×#Ñ# Ò6Ð6Ñ6r   z(features, custom_values, n_vals_expected©ç      ð?ç       @ç      @g      @r`   r1  r2  c                 ó  — t        j                  d«      }t        «       }|j                  g d¢g d¢dœ«      }|j	                  g d¢«      }|j                  ||«       t        ||| d|d¬«      }|d   j                  |k(  sJ ‚y )	Nr‚   r0  )g      @g      @g       @g      "@r(  ©r   r*   r   r*   r/   r:   ©r8   r5   rB   r9   )r‰   rŠ   r   r‹   r+  rG   r   rd   )r8   rB   r,  rŒ   r-  r@   rO   r.  s           rY   Ú2test_partial_dependence_binary_model_custom_valuesr7  	  sƒ   € ô 
×	Ñ	˜XÓ	&€BÜÓ€Eà
�‰Ò/Ò6JÑKÓL€AØ
�	‰	’,Ó€AØ	‡I�Iˆa�„Oä!ØØ	ØØØ#Øô€Hð �IÑ×#Ñ# Ò6Ð6Ñ6r   rl   r(  c                 óp  — t        j                  d«      }t        t        d¬«      t	        «       t        «       «      }|j                  g d¢g d¢dœ«      }|j                  g d¢«      }|j                  ||«       |j                  g d¢g d¢dœ«      }t        ||| d	|d
¬«      }|d
   j                  |k(  sJ ‚y )Nr‚   Úmost_frequent)Ústrategyr0  )rk   rl   rk   rl   r(  r5  )rk   rl   rk   Nr/   r:   r6  )r‰   rŠ   r   r   r   r   r‹   r+  rG   r   rd   )	r8   rB   r,  rŒ   Úplr@   rO   Ú	X_holdoutr.  s	            rY   Ú.test_partial_dependence_pipeline_custom_valuesr=  &  s­   € ô 
×	Ñ	˜XÓ	&€BÜ	Ü˜Ô/´³Ä/ÓBSó
€Bð 	�‰Ò/Ò6JÑKÓL€AØ
�	‰	’,Ó€AØ‡F�Fˆ1ˆa„Là—‘Ò#7Ò>SÑTÓU€IÜ!Ø
ØØØØ#Øô€Hð �IÑ×#Ñ# Ò6Ð6Ñ6r   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 )Nr‚   ©Úcolumnsr7   r:   r  r   r*   r+   r4   )r8   rA   r5   r9   ÚstandardscalerrC   )r‰   rŠ   r‹   r!   r!  rM   Úfeature_namesr   r   rG   r  r   rß   r$   Únamed_transformers_r  r   )r÷   r@  r8   rŒ   rý   r#  r$  ÚX_procÚfeatures_clfr  r%  r"  s               rY   Ú!test_partial_dependence_dataframerN  F  sb  € ô> 
×	Ñ	˜XÓ	&€BØ	�‰”eœDŸI™IÓ&´×0BÑ0BˆÓ	C€Bä˜¤u¨YÓ'7Ó8€DØ‡H�HˆR”—‘ÔÜ!Øˆb˜8°R¸iô€Hð ÐÜ�|Ó$×2Ñ2°2Ó6ˆØ˜1�v‰àˆØ˜1�vˆä
�	Ó
×
Ñ
˜v¤t§{¡{Ó
3€CÜ ØØØØØØô€Gô �H˜YÑ'¨°Ñ);Ô<ØÐØ×1Ñ1Ð2BÑCˆÜØ�]Ñ# AÑ&Ø�MÑ" 1Ñ%¨¯©°aÑ(8Ñ8¸6¿<¹<È¹?ÑJõ	
ô
 	˜ Ñ/°Ñ2°G¸MÑ4JÈ1Ñ4MÕNr   z*features, custom_values, expected_pd_shape)r   N©r/   r7   ©r1  r2  r3  rO  )r/   r+   )r/   r7   r7   )é   r�   é	   r7   )r/   r7   r`   )r*   r+   r/   r7   rh   )r/   r7   r+   r7   )TFTF)z
scalar-intzscalar-int-custom-valuesz
scalar-strzscalar-str-custom-valueszlist-intzlist-int-custom-valueszlist-strzlist-str-custom-valuesz list-str-custom-values-incorrectzlist-str-three-featuresr  c           	      ól  — 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 )Nr‚   rG  rA  rB  r·   r   r>  r7   r:   )r8   r5   r9   rB   rC   r*   )r‰   rŠ   r‹   r!  rM   rJ  r   r    r   r   r   rG   r  r   rF   rI   )	r8   rB   Úexpected_pd_shaperŒ   rý   Úir@  r#  r$  s	            rY   Ú$test_partial_dependence_feature_typerV  �  s  € ôN 
×	Ñ	˜XÓ	&€BØ	�‰”d—i‘i¬×);Ñ);ˆÓ	<€Bä*Ü	Ó	¸6ÖB°aœD×.Ñ.¨qÓ1ÒBÐCÜ	‹¸Ö@°Aœ$×,Ñ,¨QÓ/Ò@ÐAó€Lô ØÔ(°$ÀQÔGó€Dð 	‡H�HˆR”—‘ÔÜ!ØØ
ØØØØ#ô€Hð �IÑ×$Ñ$Ð(9Ò9Ð9Ð9Üˆx˜Ñ&Ó'¬3¨x¸	Ñ/B×/HÑ/HÓ+IÈAÑ+MÒMÐMÑMùò! CùÚ@s   ÁD,
ÂD1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™   r7   )r8   r5   )
r!  rM   r   r    r   r   r‰   r›   r   r   )r÷   r@   r@  r#  s       rY   Ú test_partial_dependence_unfittedrX  Ë  s»   € ô 	�	‰	€AÜ*Ü	Ó	˜A˜q˜6Ð"¤\£^°a¸°VÐ$<ó€Lô ˜ yÓ1€DÜ	�‰”~Ð-@Ô	Añ IÜ˜4 ¨a°¨VÀRÕH÷Iä	�‰”~Ð-@Ô	Añ NÜ˜9 a°1°a°&È"ÕM÷Nð N÷Ið Iú÷Nð Nús   Á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+   r:   ©r@   r8   r9   r;   )Úaxis)rG   r   rJ   rª   r$   )	rL   rM   rN   r@   rO   r2   Úpdp_avgÚpdp_indÚavg_inds	            rY   Ú+test_kind_average_and_average_of_individualr_  à  sr   € ñ ‹+€CØÑ�F€QˆˆIØ‡G�GˆAˆq„Mä  ¨°Q¸°FÀÔK€GÜ  ¨°Q¸°FÀÔN€GÜ�g‰g�g˜lÑ+°!Ô4€GÜ�G˜W YÑ/Õ0r   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+   r;   rZ  )r@   r8   r9   r
  rC   N)rJ   ÚarangerF   rG   r   r$   )	rL   rM   rN   r@   rO   r2   r
  Úpdp_nswÚpdp_sws	            rY   Ú=test_partial_dependence_kind_individual_ignores_sample_weightrd  ò  s“   € ñ ‹+€CØÑ�F€QˆˆIÜ—I‘I˜aŸg™g a™jÓ)€MØ‡G�GˆAˆq„Mä  ¨°Q¸°FÀÔN€GÜØˆq˜A˜q˜6¨ÀMô€Fô �G˜LÑ)¨6°,Ñ+?Ô@Ü�G˜MÑ*¨F°=Ñ,AÕBr   Ú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/   r:   r7   )r9   r
  r5   r;   )r9   r5   N)r!  rM   r  r   r    r   r   r   rG   rJ   Ú
zeros_liker   r   rI   ÚuniquerH   r$   )r÷   re  r@   rO   r@  r#  r
  rc  r]  Ú
output_dimrU  s              rY   Ú+test_partial_dependence_non_null_weight_idxrj    s  € ô  �9‰9”d—k‘k€q€AÜ*Ü	Ó	˜A˜q˜6Ð"¤\£^°a¸°VÐ$<ó€Lô ˜¤u¨YÓ'7Ó8×<Ñ<¸QÀÓB€Dä—M‘M !Ó$€MØ)*€MÐ%Ñ&ÜØØ	Ø	
ˆAˆØØ#Øô€Fô !  q¨1¨a¨&°|ÐUWÔX€GÜ" 4Ô(‘¬c´"·)±)¸A³,Ó.?€JÜ�:Óò 
ˆÜØ�LÑ! !Ñ$Ð%8Ñ9Ø�9Ñ˜aÑ õ	
ñ
r   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+   r:   rZ  r
  )rG   r   rJ   r  rI   r$   )rL   rM   rN   r@   rO   r2   r
  rø   Úpdp_sw_noneÚpdp_sw_unitÚpdp_sw_doublings              rY   Ú7test_partial_dependence_equivalence_equal_sample_weightro  1  sÅ   € ñ ‹+€CØÑ�F€QˆˆIØ‡G�GˆAˆq„Mà ¨¸¸1°vÀyÑ"Q�6€MÜ$ SÑP¨FÑPÀ-ÒP€KÜ—G‘GœC ›F“O€MÜ$ SÑP¨FÑPÀ-ÒP€KÜ�K 	Ñ*¨K¸	Ñ,BÔCØœŸ™¤ A£›Ñ'€MÜ(¨ÑT°ÑTÀmÒT€OÜ�K 	Ñ*¨O¸IÑ,FÕGr   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*   Nr7   )r8   r
  r5   )	r   Úbinary_classification_datarJ   Ú	ones_likerG   r‰   r›   rœ   r   ©rN   r@   rO   r2   r
  s        rY   Ú0test_partial_dependence_sample_weight_size_errorrt  I  su   € ô Ó
€CÜ2Ñ�F€QˆˆIÜ—L‘L “O€MØ‡G�GˆAˆq„Mä	�‰”zÐ)AÔ	Bñ 
ÜØ�˜a˜S°¸a¸bÐ0AÐSUõ	
÷
÷ 
ñ 
ús   Á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¡   )r8   rA   r
  N)	r   Úregression_datarJ   rr  rG   r‰   r›   rœ   r   rs  s        rY   Ú4test_partial_dependence_sample_weight_with_recursionrw  X  sr   € ô  Ó
!€CÜ'Ñ�F€QˆˆIÜ—L‘L “O€MØ‡G�GˆAˆq €GÔ.ä	�‰”zÐ)VÔ	Wñ 
ÜØ�˜a˜S¨ÀMõ	
÷
÷ 
ñ 
ús   Á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.r„   r…   r†   r¥   r)   r*   r5  r   )ÚOrdinalEncoder)Úencoded_missing_valuez'The column #0 contains mixed data typesr™   r  N)rJ   rv   Únanrw   rÅ   Úsklearn.preprocessingry  r   r   rG   r‰   r›   rœ   r   )r@   rO   ry  r  s       rY   Útest_mixed_type_categoricalr}  g  s›   € ô 	�‰�#�s˜C¤§¡Ð(´Ô7×?Ñ?ÀÀAÓF€AÜ
�‰’Ó€Aå4ä
Ù¨RÔ0ÜÓó÷ 
�cˆ!ˆQƒið ô 
�‰”zÐ)RÔ	Sñ 1Ü˜3 ¨Q¨CÕ0÷1÷ 1ñ 1ús   Â!B:Â:Cc                  ó@  — t        j                  d«      j                  dd«      } t        j                  g d¢«      }t	        «       }|j                  | |«       t        j                  t        t        j                  d«      ¬«      5  t        || d¬«       d d d «       t        j                  t        t        j                  d	«      ¬«      5  t        || d
gdg¬«       d d d «       t        j                  t        t        j                  d«      ¬«      5  t        || dd
g¬«       d d d «       t        j                  «       5  t        j                  d«       t        || d
d
g¬«       d d d «       y # 1 sw Y   ŒÛxY w# 1 sw Y   ŒŸxY w# 1 sw Y   ŒdxY w# 1 sw Y   y xY w)Nr�   r`   r+   r5  z#The column 0 contains integer data.r™   r   r  z#The column 1 contains integer data.r*   ©r8   Úcategorical_featuresÚerror)rJ   ra  rÅ   rv   r   rG   r‰   r  ÚFutureWarningÚreÚescaper   ÚwarningsÚcatch_warningsÚsimplefilter)r@   rO   r  s      rY   Ú$test_reject_array_with_integer_dtyperˆ  w  sV  € Ü
�	‰	�!‹×Ñ˜Q Ó"€AÜ
�‰’Ó€AÜ
Ó
€CØ‡G�GˆAˆq„MÜ	�‰ÜœRŸY™YÐ'LÓMô
ñ /ô 	˜3 ¨AÕ.÷/ô
 
�‰ÜœRŸY™YÐ'LÓMô
ñ Kô 	˜3 ¨Q¨CÀqÀcÕJ÷Kô
 
�‰ÜœRŸY™YÐ'LÓMô
ñ 4ô 	˜3 ¨Q°¨FÕ3÷4ô 
×	 Ñ	 Ó	"ñ IÜ×Ñ˜gÔ&Ü˜3 ¨AÀQÀCÕH÷Ið I÷#/ð /ú÷
Kð Kú÷
4ð 4ú÷Ið Iús0   ÂE0ÃE<ÄFÅ&FÅ0E9Å<FÆFÆFc                  óÎ  — t        j                  d«      } | j                  g d¢g d¢g d¢dœ«      }t        j                  g d¢«      }t        «       }|j                  ||«       t        j                  t        t        j                  d«      ¬«      5  t        ||d¬	«       d d d «       t        j                  t        t        j                  d«      ¬«      5  t        ||d
dg¬	«       d d d «       t        j                  «       5  t        j                  d«       t        ||d
g¬	«       t        ||dgdg¬«       d d d «       y # 1 sw Y   Œ£xY w# 1 sw Y   ŒhxY w# 1 sw Y   y xY w)Nr‚   rP  ró   rn   )r   r*   r   z%The column 'c' contains integer data.r™   rm   r  rk   r�  r  )r‰   rŠ   r‹   rJ   rv   r   rG   r  r‚  rƒ  r„  r   r…  r†  r‡  )rŒ   r@   rO   r  s       rY   Ú%test_reject_pandas_with_integer_dtyperŠ  ’  s0  € Ü	×	Ñ	˜XÓ	&€BØ
�‰â ÚÚñ	
ó	€Aô 	�‰’Ó€AÜ
Ó
€CØ‡G�GˆAˆq„Mä	�‰ÜœRŸY™YÐ'NÓOô
ñ 1ô 	˜3 ¨CÕ0÷1ô
 
�‰ÜœRŸY™YÐ'NÓOô
ñ 8ô 	˜3 ¨S°#¨JÕ7÷8ô 
×	 Ñ	 Ó	"ñ OÜ×Ñ˜gÔ&Ü˜3 ¨S¨EÕ2Ü˜3 ¨S¨EÈÈÕN÷Oð O÷1ð 1ú÷
8ð 8ú÷Oð Oús$   ÂEÃEÄ6EÅEÅEÅE$c                  óZ  — t        t        «       t        «       «      } | j                  t        j
                  t        j                  «       t        j                  t        t        j                  d«      ¬«      5  t        | t        j
                  dgg ¬«       ddd«       y# 1 sw Y   yxY w)zYCheck that we raise the proper exception when `categorical_features`
    is an empty listz�Passing an empty list (`[]`) to `categorical_features` is not supported. Use `None` instead to indicate that there are no categorical features.r™   r   )r÷   r@   r8   r€  N)r   r    r   rG   r!  rM   r  r‰   r›   rœ   rƒ  r„  r   r  s    rY   Ú2test_partial_dependence_empty_categorical_featuresrŒ  ±  s{   € ô œÓ(Ô*<Ó*>Ó
?€CØ‡G�GŒD�I‰I”t—{‘{Ô#ä	�‰ÜÜ�i‰ið$ó
ô
ñ 

ô 	ØœTŸY™Y°!°È2õ	
÷

÷ 

ñ 

ús   Á9B!Â!B*)xÚ__doc__rƒ  r…  ÚnumpyrJ   r‰   Ú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.imputer   Úsklearn.inspectionr   Ú&sklearn.inspection._partial_dependencer   r   r   Úsklearn.linear_modelr   r   r   Úsklearn.metricsr   Úsklearn.pipeliner   r|  r   r   r   r    r!   Úsklearn.treer"   Úsklearn.tree.tests.test_treer#   Úsklearn.utils._testingr$   r%   Úsklearn.utils.fixesr&   Úsklearn.utils.validationr'   r@   rO   rq  Úmulticlass_classification_datarv  Úmultioutput_regression_datar!  ÚmarkÚparametrizerZ   r~   r�   r”   rž   rH   r´   rÏ   rÖ   rå   rË   ÚDecisionTreeClassifierÚExtraTreeClassifierÚensembleÚExtraTreesClassifierÚ	neighborsÚKNeighborsClassifierÚRadiusNeighborsClassifierÚRandomForestClassifierrç   ré   r  rù   rû   rþ   r  r  r  r  r&  r/  r7  r=  rJ  rN  rv   rV  rX  r_  rd  rj  ro  rt  rw  r}  rˆ  rŠ  rŒ  )rU  s   0rY   ú<module>r®     sF  ðñó 
Û ã Û ã ß LÓ LÝ "Ý 3ß LÑ LÝ )÷õ õ .Ý (Ý 1÷ñ ÷
 VÑ UÝ $Ý *÷õ õ /Ý :ß FÝ )Ý 7ð 	ˆ"€X��Bˆx˜"˜b˜ A q 6¨A¨q¨6°A°q°6Ð:€Ú€ñ 2¸BÈQÔOÐQRÐSÐ áØ ¸Èôð ð	"Ð ñ #¨R¸aÔ@À!ÐD€á˜b¨A¸AÔ>ØðÐ ñ ƒ{€ð ‡�×ÑØà	# VÐ-GÐHØ	# VÐ-KÐLØ	# WÐ.HÐIØ	# WÐ.LÐMØ	" F¨OÐ<Ø	" G¨_Ð=Ø	 ¨Ð9Ø	˜7 OÐ4Ø	˜7Ð$?Ð@Ø	˜WÐ&@ÐAØ	˜WÐ&DÐEØ	˜Ð"=Ð>ðóð" ‡�×ÑÐ*¨GÓ4Ø‡�×Ñ˜ q c¨A¨q¨6 ]Ó3Ø‡�×Ñ˜Ð!BÓCØ‡�×ÑÐ,¨t°U¨mÓ<ñ49ó =ó Dó 4ó 5ó#ð*49òn[ ð| ‡�×ÑØà	Øðóñ!óð!ð& ‡�×ÑÐ*¨Q°¨HÓ5ñ2ó 6ð2ð@ ‡�×ÑØ+òóñXóðXð ‡�×ÑÐ)©5°«8Ó4Ø‡�×ÑØá	Ó	˜WÐ%Ù	"°Ô	2°GÐ<Ù	"°Ô	2°KÐ@Ù	&°AÔ	6¸Ð@Ù	&°AÔ	6¸ÐDðó	ñ+9ó	ó 5ð+9ð\ ‡�×Ñ˜¡ q£Ó*ñC9ó +ðC9ðL ‡�×ÑØ	á"°Ô2Ù&°AÔ6ðóð ‡�×ÑÐ)Ð+=Ó>ñGó ?óðGð< ‡�×ÑØ	áÓÙ!¨qÔ1Ù%Ø¨Q¸tÈaô	
ñ 	¨1Ô-ðó
ð ‡�×Ñ˜ &Ó)ñó *ó
ðð> ‡�×ÑØà�‰×+Ñ+Ø�‰×(Ñ(Ø×Ñ×-Ñ-Ø×Ñ×.Ñ.Ø×Ñ×3Ñ3Ø×Ñ×/Ñ/ðó
ñ(ó
ð(ô  ¸ô ð ‡�×ÑØ ñ  ¨&Ô1Ø˜!˜ÐØBð	
ñ ÓØ˜°ÑAØEð	
ñ '°AÔ6à˜CØ#2Ø%ñð
 Rð	
ñ '°AÔ6Ø˜°ÈFÑSØQð	
ñ ÓØ˜¨¸\ÑJØQð	
ñ ÓØ˜¨¸VÑDØQð	
ñ ÓØ˜¨Ñ4ØKð	
ñ ÓØ˜Q˜²iÀGÀBÇGÁGÈFÃOÑ2TÑUð*ð		
ðQ0ó3ñh3ói3ðh3ð ‡�×ÑØÑ"Ó$Ñ&@ÈaÔ&PÐQóð ‡�×Ñ˜ b¨% [Ó1ñ5ó 2óð5ð ‡�×ÑØÑ"Ó$Ñ&@ÈaÔ&PÐQóñ	4óð	4ð ‡�×ÑØÑ"Ó$Ñ&@ÈaÔ&PÐQóñ@óð@òLò$Hò41òð: ‡�×ÑØ0à
ˆ��BˆØ
ˆ��1ˆðóñ7óð7ð4 ‡�×ÑØ.à
ˆ�Ò*Ð+¨QÐ/Ø
ˆ��s˜C�jÐ! 1Ð%Ø
ˆ��s�e�˜aÐ ðóñ7óð7ð* ‡�×ÑØ.à
ˆ��s˜C�jÐ! 1Ð%Ø
ˆ��s�e�˜aÐ Ø
ˆsˆ˜C ˜:¨S°#¨JÑ7¸Ð;ðóñ7óð7ð0 ‡�×ÑØá D°qÔ9Ù"°ÀÔBðð 
Ð1Ð2ð ó ð ‡�×ÑØàÙÙÓ¸vÖF¸! × 2Ñ 2°1Ó 5ÒFÐGÙ‹^¸VÖD¸˜d×0Ñ0°Ó3ÒDÐEó	
ñ 	 ÙÓ¸vÖF¸! × 2Ñ 2°1Ó 5ÒFÐGØ#ô	
ð
ò 	Ið ó ð ‡�×ÑØØˆ€V¨VÖ4¨ˆd× Ñ  Ó#Ò4Ð5Ø	Ð.Ð/ð ó ñ
(Oóóóð8(OðV ‡�×ÑØ0àØ	
ˆQ’Ð  &Ð)Ø	×	Ñ	˜AÑ	  gÐ.Ø	×	Ñ	˜AÑ	 ×!3Ñ!3°AÑ!6¸¸¿¹À#ÀsÀÓ8LÐ MÈvÐVØ
ˆQˆ��{Ð#Ø
ˆQˆ�!’]Ð# ZÐ0Ø)/Ö	0 Aˆ$×
Ñ
˜QÓ
Ò	0°$¸ÐDà,2Ö3 qˆT×Ñ Ó"Ò3Ø×Ñ Ñ"¢MÐ2Øð	
ð
 *0Ö	0 Aˆ$×
Ñ
˜QÓ
Ò	0°1²mÐ2DÀkÐRà,5Ö6 qˆT×Ñ Ó"Ò6Ø×Ñ Ñ" Q¨ GÐ,Øð	
ò
 
$ T¨;Ð7ð'ò*	ð/ ó $ñJNóK$ðJNð2 ‡�×ÑØáÓÙÓÙ!Ó#Ù"Ó$ð	óñ	Nóð	Nð ‡�×ÑØà	Ð6Ð7Ø	Ð7Ð8ðóñ1óð1ð ‡�×ÑØà	Ð6Ð7Ø	Ð7Ð8ðóñCóðCð ‡�×ÑØáÓÙÓÙÓÙ"Ó$ð	óð ‡�×ÑÐ.²
Ó;ñ
ó <óð
ð> ‡�×ÑØà	Ð6Ð7Ø	Ð7Ð8ðóñHóðHò"
ò
ò1ò Iò6Oó>
ùò}
  GùÚDùò  Gùò 5ùòn 
1ùâ3ùò 
1ùâ6s0   Ú$f/Ûf4Û0f9Ü5f>ßgß:gà*gág