Ë
    8Ò^j/Ÿ  ã                   ó¦  — d 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.m/Z/m0Z0m1Z1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8m9Z9 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Z@ edddd¬«      dfZA edd¬«      dfZB eddd¬«      dfZC e«       ZDejŠ                  j�                  d ed!e@fed!eAfed"e@fed"eAfed!eBfed"eBfe4d"eBfe&d"eBfe&d"eCfe'd"e@fe'd"eAfe(d"eCf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+„ «       «       «       «       «       ZGd,„ ZHejŠ                  j�                  d#dd-g«      d.„ «       ZIejŠ                  j�                  d#dd-g«      d/„ «       ZJejŠ                  j�                  d0g d1¢«      d2„ «       ZKejŠ                  j�                  d3 eLd4«      «      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„ «       «       ZMejŠ                  j�                  d9 eLd«      «      d:„ «       ZNejŠ                  j�                  d; ed¬6«       ed¬6«      f«      ejŠ                  j�                  d3d<«      d=„ «       «       ZOejŠ                  j�                  d; e&«        ed¬6«       edddd¬>«       e4d¬6«      f«      ejŠ                  j�                  d?d@«      dA„ «       «       ZPejŠ                  j�                  dBej¢                  j¤                  ej¢                  j¦                  ej¨                  jª                  ej¬                  j®                  ej¬                  j°                  ej¨                  j²                  f«      dC„ «       ZZ 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^„ «       Z`d_„ Zad`„ Zbda„ Zcdb„ ZdejŠ                  j�                  dcddgdedefddgddfg«      df„ «       ZeejŠ                  j�                  dgddgddg dh¢idifddgdddjdkgidfddgdddjgidfg«      dl„ «       ZfejŠ                  j�                  dgdmgdmdddmgidfdmgdmddgidfdddmgdjdkgdddmgdnœdifg«      do„ «       ZgejŠ                  j�                  dZ e'dpd¬q«       edd4¬r«      gdsdtg¬u«      ejŠ                  j�                  dvd e e1«       dwD � cg c]  } eDjÐ                  |    ‘Œ c} f e0«       dxD � cg c]  } eDjÐ                  |    ‘Œ c} f«       e e1«       dwD � cg c]  } eDjÐ                  |    ‘Œ c} fdy¬z«      gg d{¢¬u«      ejŠ                  j�                  d%ddgdwD � cg c]  } eDjÐ                  |    ‘Œ c} gd|d}g¬u«      d~„ «       «       «       ZiejŠ                  j�                  dd€ddg d�¢idUfeDjÐ                  d   dd‚feDjÐ                  d   eDjÐ                  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]  } eDjÐ                  |    ‘Œ c} dd„fdwD � cg c]  } eDjÐ                  |    ‘Œ c} eDjÐ                  d   g d‡¢id†fdwD � cg c]  } eDjÐ                  |    ‘Œ c} dg d‡¢id„fdˆD � cg c]  } eDjÐ                  |    ‘Œ c} eDjÐ                  d   ddegid‰fg dŠ¢dd„fgg d‹¢¬u«      dŒ„ «       ZkejŠ                  j�                  dZ e&«        e'«        e«        e«       g«      d�„ «       ZlejŠ                  j�                  dŽe&eCfe'e@fg«      d�„ «       ZmejŠ                  j�                  dŽe&eCfe'e@fg«      d�„ «       ZnejŠ                  j�                  dZ e&«        e'«        e«        e«       g«      ejŠ                  j�                  d‘g d’¢«      d“„ «       «       ZoejŠ                  j�                  dŽe&eCfe'e@fg«      d”„ «       Zpd•„ Zqd–„ Zrd—„ Zsd˜„ Ztd™„ Zudš„ Zvy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/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/sklearn/inspection/tests/test_partial_dependence.pyÚtest_output_shaperZ   F   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                 óT  — 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||	¬«      }
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.   )r?   Úlearning_raterº   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Í   w  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÷   0  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ù   l  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   z2Some column names are not columns 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ü   y  s�   € ô 
×	Ñ	˜XÓ	&€BÜ¨AÔ.�D€A€qØ	�‰�a‹€BÜ�iÓ ×$Ñ$ R¨Ó+€Iàˆz€HØB€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`   r/  r0  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‚   r.  )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_valuesr5    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)Ústrategyr.  )rk   rl   rk   rl   r&  r3  )rk   rl   rk   Nr/   r:   r4  )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_dataframerL  D  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   ©r/  r0  r1  rM  )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‚   rE  r?  r@  r·   r   r<  r7   r:   )r8   r5   r9   rB   rC   r*   )r‰   rŠ   r‹   r  rM   rH  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_typerT  ‹  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_unfittedrV  É  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;   rX  )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_weightrb  ð  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õ   rc  r@   rO   r>  r!  r  ra  r[  Ú
output_dimrS  s              rY   Ú+test_partial_dependence_non_null_weight_idxrh    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:   rX  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_weightrm  /  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_errorrr  G  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   rp  rG   r‰   r›   rœ   r   rq  s        rY   Ú4test_partial_dependence_sample_weight_with_recursionru  V  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*   r3  r   )ÚOrdinalEncoder)Úencoded_missing_valuez'The column #0 contains mixed data typesr™   r  N)rJ   rv   Únanrw   rÃ   Úsklearn.preprocessingrw  r   r   rG   r‰   r›   rœ   r   )r@   rO   rw  r  s       rY   Útest_mixed_type_categoricalr{  e  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        || d
d
g¬«       y # 1 sw Y   Œ©xY w# 1 sw Y   ŒmxY w# 1 sw Y   Œ2xY w)Nr�   r`   r+   r3  z#The column 0 contains integer data.r™   r   r  z#The column 1 contains integer data.r*   ©r8   Úcategorical_features)rJ   r_  rÃ   rv   r   rG   r‰   r›   rœ   ÚreÚescaper   )r@   rO   r  s      rY   Ú$test_reject_array_with_integer_dtyper�  u  s  € Ü
�	‰	�!‹×Ñ˜Q Ó"€AÜ
�‰’Ó€AÜ
Ó
€CØ‡G�GˆAˆq„MÜ	�‰Üœ"Ÿ)™)Ð$IÓJô
ñ /ô 	˜3 ¨AÕ.÷/ô 
�‰Üœ"Ÿ)™)Ð$IÓJô
ñ Kô 	˜3 ¨Q¨CÀqÀcÕJ÷Kô 
�‰Üœ"Ÿ)™)Ð$IÓJô
ñ 4ô 	˜3 ¨Q°¨FÕ3÷4ô �s˜A¨ÀÀÖD÷/ð /ú÷Kð Kú÷4ð 4ús$   ÂD>ÃE
ÄEÄ>EÅ
EÅEc                  óR  — 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        ||d
g¬	«       t        ||dgdg¬«       y # 1 sw Y   ŒqxY w# 1 sw Y   Œ6xY w)Nr‚   rN  rñ   rn   )r   r*   r   z%The column 'c' contains integer data.r™   rm   r  rk   r}  )r‰   rŠ   r‹   rJ   rv   r   rG   r›   rœ   r  r€  r   )rŒ   r@   rO   r  s       rY   Ú%test_reject_pandas_with_integer_dtyperƒ  ‹  s÷   € Ü	×	Ñ	˜XÓ	&€BØ
�‰â ÚÚñ	
ó	€Aô 	�‰’Ó€AÜ
Ó
€CØ‡G�GˆAˆq„Mä	�‰Üœ"Ÿ)™)Ð$KÓLô
ñ 1ô 	˜3 ¨CÕ0÷1ô 
�‰Üœ"Ÿ)™)Ð$KÓLô
ñ 8ô 	˜3 ¨S°#¨JÕ7÷8ô �s˜A¨¨Õ.Ü�s˜A¨¨ÀSÀEÖJ÷1ð 1ú÷8ð 8ús   ÂDÃDÄDÄD&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*)wÚ__doc__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   rz  r   r   r   r    r!   Úsklearn.treer"   Úsklearn.tree.tests.test_treer#   Úsklearn.utils._testingr$   r%   Úsklearn.utils.fixesr&   Úsklearn.utils.validationr'   r@   rO   ro  Úmulticlass_classification_datart  Ú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-  r5  r;  rH  rL  rv   rT  rV  r]  rb  rh  rm  rr  ru  r{  r�  rƒ  r…  )rS  s   0rY   ú<module>r§     sC  ðñó 
ã Û ã ß 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£Ó*ñB9ó +ðB9ðJ ‡�×ÑØ	á"°Ô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ò Eò,Kó6
ùòk
  GùÚDùò  Gùò 5ùòn 
1ùâ3ùò 
1ùâ6s0   Ú f+Ûf0Û,f5Ü1f:ßf?ß6gà&g	á	g