Ë
    ÷Q(h!õ  ã                   óÌ  — U d Z ddlZddlZddlZddlmZ ddlmZ ddlmZm	Z	 ddl
mZmZ ddlmZ ddlZddlZddlZddlmZ ddlZdd	lmZmZ dd
lmZmZ ddlmZ ddlmZ ddlm Z m!Z!m"Z"m#Z#m$Z$ ddl%m&Z&m'Z' ddl(m)Z) ddl*m+Z+m,Z,m-Z-m.Z. ddl/m0Z0m1Z1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z> ddl?m@Z@mAZAmBZB ddlCmDZD ddlEmFZF ddlGmHZH ddgddgddgddgddgddggZIg d¢ZJddgddgddggZKg d¢ZL ej2                  d d!dddd"d¬#«      \  ZMZN ejž                  «       ZP eHd«      ZQeQj¥                  ePj¦                  j¨                  «      ZUePj¬                  eU   eP_V        ePj¦                  eU   eP_S         ej®                  d d!d¬$«      \  ZXZY ej4                  d%d¬&«      \  ZZZ[eZj¹                  ejº                  «      ZZej¼                  j¿                  «       d   jÀ                  Zae e"d'œZbe!e#d(œZcd)e$iZd ee«       Zfeegef   ehd*<   efjÓ                  eb«       efjÓ                  ec«       efjÓ                  ed«       ebjÕ                  «       Zkeegef   ehd+<   ekjÓ                  ec«       ejØ                  jÛ                  d,eb«      d-„ «       ZnejØ                  jÛ                  d,eb«      ejØ                  jÛ                  d.d/«      d0„ «       «       ZoejØ                  jÛ                  d,ec«      ejØ                  jÛ                  d.d1«      d2„ «       «       Zpd3„ ZqejØ                  jÛ                  d.d4«      d5„ «       ZrejØ                  jÛ                  d,ec«      d6„ «       ZsejØ                  jÛ                  d,eb«      d7„ «       ZtejØ                  jÛ                  d8ejê                  ejº                  f«      ejØ                  jÛ                  d9 ejì                   e	ebd:d;g«       e	ecg d<¢«      «      «      d=„ «       «       Zwd>„ ZxejØ                  jÛ                  d,ef«      d?„ «       ZyejØ                  jÛ                  d@ebjõ                  «       «      ejØ                  jÛ                  dAg dB¢«      ejØ                  jÛ                  dCg  ej2                  dDdd¬E«      ¢dF‘­g  ej2                  dGddHd¬I«      ¢dJ‘­ePj¬                  ePj¦                  dz  dz   dJfg  ejö                  dDd¬&«      ¢dK‘­g«      ejØ                  jÛ                  dLdM ee,dN¬O«      g«      dP„ «       «       «       «       Z|ejØ                  jÛ                  dQecjõ                  «       «      ejØ                  jÛ                  dAg dB¢«      ejØ                  jÛ                  dRg  ej®                  d d!dd¬S«      ¢dT‘­g  ej®                  d d!dd¬S«      ¢dU‘­g«      ejØ                  jÛ                  dLdMe+g«      dV„ «       «       «       «       Z}ejØ                  jÛ                  dWekjõ                  «       «      dX„ «       Z~ejØ                  jÛ                  dWekjõ                  «       «      dY„ «       ZejØ                  jÛ                  d@ebjõ                  «       «      dZ„ «       Z€ejØ                  jÛ                  dQecjõ                  «       «      d[„ «       Z�ejØ                  jÛ                  dLdMd"g«      d\„ «       Z‚ejØ                  jÛ                  d,eb«      d]„ «       ZƒejØ                  jÛ                  d,ek«      d^„ «       Z„ejØ                  jÛ                  d,ek«      d_„ «       Z…ejØ                  jÛ                  d,ek«      d`„ «       Z†ejØ                  jÛ                  d,eb«      da„ «       Z‡ejØ                  jÛ                  d,eb«      db„ «       Zˆdc„ Z‰dd„ ZŠde„ Z‹ejØ                  jÛ                  dfeA«      dg„ «       ZŒdh„ Z�di„ ZŽejØ                  jÛ                  d,ef«      dj„ «       Z�ejØ                  jÛ                  d,ef«      dk„ «       Z�ejØ                  jÛ                  d,ef«      dl„ «       Z‘ejØ                  jÛ                  d,ef«      dm„ «       Z’ejØ                  jÛ                  d,ef«      ejØ                  jÛ                  dne@eAz   eBz   «      do„ «       «       Z“ejØ                  jÛ                  d,ek«      ejØ                  jÛ                  d8ejê                  ejº                  f«      dp„ «       «       Z”ejØ                  jÛ                  d,ef«      dq„ «       Z•ejØ                  jÛ                  d,eb«      dr„ «       Z–ejØ                  jÛ                  d,eb«      ds„ «       Z—ejØ                  jÛ                  d,eb«      dt„ «       Z˜ejØ                  jÛ                  d,ef«      du„ «       Z™ejØ                  jÛ                  d,ef«      dv„ «       ZšejØ                  jÛ                  d,ef«      dw„ «       Z›ejØ                  jÛ                  d,ef«      dx„ «       ZœejØ                  jÛ                  d,ek«      dy„ «       Z�ejØ                  jÛ                  d,ek«      dz„ «       Zžd›d{„ZŸejØ                  jÛ                  d,ek«      d|„ «       Z d}„ Z¡d~„ Z¢ G d„ d€ea«      Z£ e�jH                  d�e£«       e>d‚„ «       Z¥dƒ„ Z¦d„„ Z§ejØ                  jÛ                  d,ek«      d…„ «       Z¨ejØ                  jÛ                  d,ek«      d†„ «       Z©ejØ                  jÛ                  d,ec«      d‡„ «       ZªejØ                  jÛ                  d,eb«      dˆ„ «       Z«ejØ                  jÛ                  d‰eB«      dŠ„ «       Z¬ejØ                  jÛ                  d‹e"e#g«      dŒ„ «       Z­ejØ                  jÛ                  d�ec«      dŽ„ «       Z®d�„ Z¯ejØ                  jÛ                  d‰eB«      d�„ «       Z°ejØ                  jÛ                  d‘d’dg«      d“„ «       Z±ejØ                  jÛ                  d”ddg«      ejØ                  jÛ                  d•dMd"g«      ejØ                  jÛ                  d‹ekjõ                  «       «      d–„ «       «       «       Z²ejØ                  jÛ                  d—ej®                  e#fej2                  e"fej®                  e!fej2                  e fg«      d˜„ «       Z³ejØ                  jÛ                  d�e"e#e!e g«      d™„ «       Z´ejØ                  jÛ                  d�ecjõ                  «       «      dš„ «       Zµy)œz:
Testing for the forest module (sklearn.ensemble.forest).
é    N)Údefaultdict)Úpartial)ÚcombinationsÚproduct)ÚAnyÚDict)Úpatch)Úcomb)ÚcloneÚdatasets)Úmake_classificationÚmake_hastie_10_2)ÚTruncatedSVD)ÚDummyRegressor)ÚExtraTreesClassifierÚExtraTreesRegressorÚRandomForestClassifierÚRandomForestRegressorÚRandomTreesEmbedding)Ú_generate_unsampled_indicesÚ_get_n_samples_bootstrap)ÚNotFittedError)Úexplained_variance_scoreÚf1_scoreÚmean_poisson_devianceÚmean_squared_error)ÚGridSearchCVÚcross_val_scoreÚtrain_test_split)Ú	LinearSVC)ÚSPARSE_SPLITTERS)Ú_convert_containerÚassert_allcloseÚassert_almost_equalÚassert_array_almost_equalÚassert_array_equalÚignore_warningsÚskip_if_no_parallel)ÚCOO_CONTAINERSÚCSC_CONTAINERSÚCSR_CONTAINERS)Útype_of_target)ÚParallel)Úcheck_random_stateéþÿÿÿéÿÿÿÿé   é   )r0   r0   r0   r1   r1   r1   é   )r0   r1   r1   éô  é
   F)Ú	n_samplesÚ
n_featuresÚn_informativeÚn_redundantÚ
n_repeatedÚshuffleÚrandom_state©r6   r7   r<   é   ©r6   r<   )r   r   )r   r   r   ÚFOREST_ESTIMATORSÚFOREST_CLASSIFIERS_REGRESSORSÚnamec                 óò  — t         |    } |dd¬«      }|j                  t        t        «       t	        |j                  t        «      t        «       dt        |«      k(  sJ ‚ |ddd¬«      }|j                  t        t        «       t	        |j                  t        «      t        «       dt        |«      k(  sJ ‚|j                  t        «      }|j                  t        t        «      |j                  fk(  sJ ‚y)z&Check classification on a toy dataset.r5   r1   ©Ún_estimatorsr<   )rE   Úmax_featuresr<   N)ÚFOREST_CLASSIFIERSÚfitÚXÚyr&   ÚpredictÚTÚtrue_resultÚlenÚapplyÚshaperE   )rB   ÚForestClassifierÚclfÚleaf_indicess       ú`/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/ensemble/tests/test_forest.pyÚtest_classification_toyrU   y   s¹   € ô *¨$Ñ/Ðá
¨¸Ô
;€CØ‡G�GŒAŒq„MÜ�s—{‘{¤1“~¤{Ô3Ø”�S“Š>Ðˆ>á
¨¸ÈÔ
K€CØ‡G�GŒAŒq„MÜ�s—{‘{¤1“~¤{Ô3Ø”�S“Š>Ðˆ>ð —9‘9œQ“<€LØ×Ñ¤#¤a£&¨#×*:Ñ*:Ð!;Ò;Ð;Ñ;ó    Ú	criterion)ÚginiÚlog_lossc                 óø  — t         |    } |d|d¬«      }|j                  t        j                  t        j                  «       |j                  t        j                  t        j                  «      }|dkD  sJ d||fz  «       ‚ |d|dd¬«      }|j                  t        j                  t        j                  «       |j                  t        j                  t        j                  «      }|dkD  sJ d||fz  «       ‚y )	Nr5   r1   ©rE   rW   r<   çÍÌÌÌÌÌì?z'Failed with criterion %s and score = %fr2   ©rE   rW   rF   r<   ç      à?)rG   rH   ÚirisÚdataÚtargetÚscore)rB   rW   rQ   rR   rb   s        rT   Útest_iris_criterionrc   �   sÈ   € ô *¨$Ñ/Ðá
¨°iÈaÔ
P€CØ‡G�GŒD�I‰I”t—{‘{Ô#Ø�I‰I”d—i‘i¤§¡Ó-€EØ�3Š;ÐVÐAÀYÐPUÐDVÑVÓVˆ;á
Ø 9¸1È1ô€Cð ‡G�GŒD�I‰I”t—{‘{Ô#Ø�I‰I”d—i‘i¤§¡Ó-€EØ�3Š;ÐVÐAÀYÐPUÐDVÑVÓV‰;rV   )Úsquared_errorÚabsolute_errorÚfriedman_msec                 óX  — t         |    } |d|d¬«      }|j                  t        t        «       |j	                  t        t        «      }|dkD  sJ d||fz  «       ‚ |d|dd¬«      }|j                  t        t        «       |j	                  t        t        «      }|dkD  sJ d	||fz  «       ‚y )
Né   r1   r[   gÃõ(\�Âí?z:Failed with max_features=None, criterion %s and score = %fé   r]   gq=
×£pí?z7Failed with max_features=6, criterion %s and score = %f)ÚFOREST_REGRESSORSrH   ÚX_regÚy_regrb   )rB   rW   ÚForestRegressorÚregrb   s        rT   Útest_regression_criterionro       s¾   € ô (¨Ñ-€Oá
 q°IÈAÔ
N€CØ‡G�GŒE”5ÔØ�I‰I”eœUÓ#€Eà�ŠðàCØØðGñ óØñ Ø )¸!È!ô€Cð ‡G�GŒE”5ÔØ�I‰I”eœUÓ#€EØ�4Š<ð ÐRØØðVñ ó ‰<rV   c            	      ó.  — t         j                  j                  d«      } d\  }}}t        j                  ||z   || ¬«      }| j                  dd|¬«      t        j                  |d¬«      z  }| j                  t        j                  ||z  «      ¬	«      }t        |||| ¬
«      \  }}}	}
t        ddd| ¬«      }t        ddd| ¬«      }|j                  ||	«       |j                  ||	«       t        d¬«      j                  ||	«      }||	df||
dffD ]‚  \  }}}t        ||j                  |«      «      }t        |t        j                  |j                  |«      dd«      «      }t        ||j                  |«      «      }|dk(  r||k  sJ ‚|d|z  k  rŒ‚J ‚ y)zžTest that random forest with poisson criterion performs better than
    mse for a poisson target.

    There is a similar test for DecisionTreeRegressor.
    é*   ©r4   r4   r5   r=   r/   r2   ©ÚlowÚhighÚsizer   ©Úaxis©Úlam©Ú	test_sizer<   Úpoissonr5   Úsqrt)rW   Úmin_samples_leafrF   r<   rd   Úmean)ÚstrategyÚtrainÚtestg�íµ ÷Æ°>Nçš™™™™™é?)ÚnpÚrandomÚRandomStater   Úmake_low_rank_matrixÚuniformÚmaxr}   Úexpr   r   rH   r   r   rK   Úclip)ÚrngÚn_trainÚn_testr7   rI   ÚcoefrJ   ÚX_trainÚX_testÚy_trainÚy_testÚ
forest_poiÚ
forest_mseÚdummyÚ	data_nameÚ
metric_poiÚ
metric_mseÚmetric_dummys                     rT   Útest_poisson_vs_mserœ   ½   s¬  € ô �)‰)×
Ñ
 Ó
#€CØ".Ñ€GˆV�ZÜ×%Ñ%Ø˜FÑ"¨zÈô	€Að
 �;‰;˜2 A¨Jˆ;Ó7¼"¿&¹&ÀÈÔ:KÑK€DØ�‰œŸ™˜q 4™xÓ(ˆÓ)€AÜ'7Ø	ˆ1˜¨Sô(Ñ$€GˆV�W˜fô 'Ø¨b¸vÐTWô€Jô 'Ø!ØØØô	€Jð ‡N�N�7˜GÔ$Ø‡N�N�7˜GÔ$Ü FÔ+×/Ñ/°¸ÓA€Eà$ g¨wÐ7¸&À&È&Ð9QÐRò /‰ˆˆ1ˆiÜ*¨1¨j×.@Ñ.@ÀÓ.CÓDˆ
ô +ØŒr�w‰w�z×)Ñ)¨!Ó,¨d°DÓ9ó
ˆ
ô -¨Q°·±¸aÓ0@ÓAˆð ˜ÒØ 
Ò*Ð*Ð*Ø˜C ,Ñ.Ó.Ð.Ð.ñ#/rV   )r}   rd   c                 ó  — t         j                  j                  d«      }d\  }}}t        j                  ||z   ||¬«      }|j                  dd|¬«      t        j                  |d¬«      z  }|j                  t        j                  ||z  «      ¬	«      }t        | d
d|¬«      }|j                  ||«       t        j                  |j                  |«      «      t        j                  t        j                  |«      «      k(  sJ ‚y)z9 "Test that sum(y_pred)==sum(y_true) on the training set.rq   rr   r=   r/   r2   rs   r   rw   ry   r5   F)rW   rE   Ú	bootstrapr<   N)r…   r†   r‡   r   rˆ   r‰   rŠ   r}   r‹   r   rH   ÚsumrK   ÚpytestÚapprox)	rW   r�   rŽ   r�   r7   rI   r�   rJ   rn   s	            rT   Ú#test_balance_property_random_forestr¢   ò   sÕ   € ô �)‰)×
Ñ
 Ó
#€CØ".Ñ€GˆV�ZÜ×%Ñ%Ø˜FÑ"¨zÈô	€Að �;‰;˜2 A¨Jˆ;Ó7¼"¿&¹&ÀÈÔ:KÑK€DØ�‰œŸ™˜q 4™xÓ(ˆÓ)€Aä
Ø¨"¸ÈCô€Cð ‡G�GˆAˆq„Mä�6‰6�#—+‘+˜a“.Ó!¤V§]¡]´2·6±6¸!³9Ó%=Ò=Ð=Ñ=rV   c                 óÆ   — t        |    d¬«      }t        |d«      rJ ‚t        |d«      rJ ‚|j                  g d¢g d¢gddg«       t        |d«      rJ ‚t        |d«      rJ ‚y )	Nr   ©r<   Úclasses_Ú
n_classes_©r1   r2   r3   ©é   rh   ri   r1   r2   )rj   ÚhasattrrH   )rB   Úrs     rT   Útest_regressor_attributesr¬     sm   € ô 	˜$Ñ¨QÔ/€AÜ�q˜*Ô%Ð%Ð%Ü�q˜,Ô'Ð'Ð'à‡E�EŠ9’iÐ
  1 a &Ô)Ü�q˜*Ô%Ð%Ð%Ü�q˜,Ô'Ð'Ð'Ð'rV   c           	      ój  — t         |    }t        j                  d¬«      5   |dddd¬«      }|j                  t        j
                  t        j                  «       t        t        j                  |j                  t        j
                  «      d¬«      t        j                  t        j
                  j                  d   «      «       t        |j                  t        j
                  «      t        j                  |j                  t        j
                  «      «      «       d d d «       y # 1 sw Y   y xY w)NÚignore©Údivider5   r1   )rE   r<   rF   Ú	max_depthrw   r   )rG   r…   ÚerrstaterH   r_   r`   ra   r%   rŸ   Úpredict_probaÚonesrP   r‹   Úpredict_log_proba)rB   rQ   rR   s      rT   Útest_probabilityr¶     sÏ   € ô *¨$Ñ/ÐÜ	�‰˜HÔ	%ñ 

ÙØ¨!¸!Àqô
ˆð 	�‰”—	‘	œ4Ÿ;™;Ô'Ü!Ü�F‰F�3×$Ñ$¤T§Y¡YÓ/°aÔ8¼"¿'¹'Ä$Ç)Á)Ç/Á/ÐRSÑBTÓ:Uô	
ô 	"Ø×ÑœdŸi™iÓ(¬"¯&©&°×1FÑ1FÄtÇyÁyÓ1QÓ*Rô	
÷

÷ 

ñ 

ús    D D)Ä)D2Údtypezname, criterionrX   rY   )rd   rf   re   c                 ó†  — d}|t         v r|dk(  rd}t        j                  | d¬«      }t        j                  | d¬«      }t        |   } |d|d¬«      }|j                  ||«       |j                  }t        j                  |d	kD  «      }	|j                  d   dk(  sJ ‚|	d
k(  sJ ‚t        j                  |d d
 d	kD  «      sJ ‚|j                  }|j                  d¬«       |j                  }
t        ||
«       t        d«      j                  ddt        |«      «      } |dd|¬«      }|j                  |||¬«       |j                  }t        j                  |dk\  «      sJ ‚dD ][  } |dd|¬«      }|j                  ||||z  ¬«       |j                  }t        j                   ||z
  «      j#                  «       |k  rŒ[J ‚ y )Nç{®Gáz„?re   çš™™™™™©?F©Úcopyr5   r   r[   çš™™™™™¹?r3   r2   ©Ún_jobsr1   )rE   r<   rW   ©Úsample_weightç        )r^   éd   )rj   ÚX_largeÚastypeÚy_larger@   rH   Úfeature_importances_r…   rŸ   rP   ÚallÚ
set_paramsr%   r.   ÚrandintrN   Úabsr€   )r·   rB   rW   Ú	tolerancerI   rJ   ÚForestEstimatorÚestÚimportancesÚn_importantÚimportances_parallelrÁ   ÚscaleÚimportances_biss                 rT   Útest_importancesrÔ   #  sÇ  € ð €IØÔ Ñ  YÐ2BÒ%BØˆ	ô 	�‰�u 5ˆÓ)€AÜ�‰�u 5ˆÓ)€Aä'¨Ñ-€Oá
 r°YÈQÔ
O€CØ‡G�GˆAˆq„MØ×*Ñ*€Kô —&‘&˜ sÑ*Ó+€KØ×Ñ˜QÑ 2Ò%Ð%Ð%Ø˜!ÒÐÐÜ�6‰6�+˜b˜q�/ CÑ'Ô(Ð(Ð(ð ×*Ñ*€KØ‡N�N˜!€NÔØ×3Ñ3ÐÜ˜kÐ+?Ô@ô ' qÓ)×1Ñ1°!°R¼¸Q»Ó@€MÙ
 r¸ÀYÔ
O€CØ‡G�GˆAˆq €GÔ.Ø×*Ñ*€KÜ�6‰6�+ Ñ$Ô%Ð%Ð%àò HˆÙ¨2¸AÈÔSˆØ�‰��1 E¨MÑ$9ˆÔ:Ø×2Ñ2ˆÜ�v‰v�k OÑ3Ó4×9Ñ9Ó;¸iÓGÐGÐGñ	HrV   c                  ó~  ‡	‡
— d„ Š	d„ Š
ˆ	ˆ
fd„} t        j                  g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g
«      }t        j                  |d d …d d…f   t        ¬«      |d d …df   }}|j                  d   }t        j                  |«      }t        |«      D ]  } | |||«      ||<   Œ t        dddd¬«      j                  ||«      }t        d„ |j                  D «       «      |j                  z  }t         ‰
|«      t        |«      «       t        j                  ||z
  «      j                  «       dk  sJ ‚y )Nc                 óZ   — | dk  s| |kD  rdS t        t        |«      t        | «      d¬«      S )Nr   T)Úexact)r
   Úint)ÚkÚns     rT   Úbinomialz-test_importances_asymptotic.<locals>.binomialZ  s*   € Ø˜’E˜Q šUˆqÐH¬¬S°«V´S¸³VÀ4Ô(HÐHrV   c                 ó¦   — t        | «      }d}t        j                  | «      D ]+  }d|z  |z  }|dkD  sŒ||t        j                  |«      z  z  }Œ- |S )NrÂ   ç      ð?r   )rN   r…   ÚbincountÚlog2)Úsamplesr6   ÚentropyÚcountÚps        rT   rá   z,test_importances_asymptotic.<locals>.entropy]  sZ   € Ü˜“Lˆ	Øˆä—[‘[ Ó)ò 	*ˆEØ�e‘˜iÑ'ˆAØ�1‹uØ˜1œrŸw™w q›z™>Ñ)‘ð	*ð
 ˆrV   c                 óV  •— |j                   \  }}t        t        |«      «      }|j                  | «       t        |«      D �cg c]  }t	        j
                  |d d …|f   «      ‘Œ  }}d}t        |«      D �]!  }	d ‰|	|«      ||	z
  z  z  }
t        ||	«      D ]ý  }t        t        |	«      D �cg c]
  }|||      ‘Œ c}Ž D ]Ó  }t	        j                  |t        ¬«      }t        |	«      D ]  }||d d …||   f   ||   k(  z  }Œ ||d d …f   ||   }}t        |«      }|dkD  sŒbg }||    D ]"  }|d d …| f   |k(  }|j                  ||   «       Œ$ ||
d|z  |z  z   ‰|«      t        |D �cg c]  } ‰|«      t        |«      z  |z  ‘Œ c}«      z
  z  z  }ŒÕ Œÿ �Œ$ |S c c}w c c}w c c}w )NrÂ   rÝ   ©r·   r   )rP   ÚlistÚrangeÚpopr…   Úuniquer   r   r´   ÚboolrN   ÚappendrŸ   )ÚX_mrI   rJ   r6   r7   ÚfeaturesÚiÚvaluesÚimprÙ   r�   ÚBÚjÚbÚmask_bÚX_Úy_Ún_samples_bÚchildrenÚxiÚmask_xiÚcrÛ   rá   s                         €€rT   Úmdi_importancez3test_importances_asymptotic.<locals>.mdi_importanceh  sî  ø€ Ø !§¡Ñˆ	�:äœ˜jÓ)Ó*ˆØ�‰�SÔÜ.3°JÓ.?Ö@¨”"—)‘)˜Aša ˜d™GÕ$Ð@ˆÐ@àˆä�zÓ"ó #	ˆAà™( 1 jÓ1°ZÀ!±^ÑDÑEˆDô " (¨AÓ.ò �ä ¼¸q»Ö"B°A 6¨!¨A©$£<Ò"BÐCò �AÜŸW™W Y´dÔ;�Fä" 1›Xò 5˜Ø !¢A q¨¡t G¡*°°!±Ñ"4Ñ4™ð5ð ˜v¢q˜y™\¨1¨V©9˜�BÜ"% b£'�Kà" Q“Ø#%˜à"(¨¡+ò 9˜BØ&(ª¨C¨¡j°BÑ&6˜GØ$ŸO™O¨B¨w©KÕ8ð9ð Ø Ø" [Ñ0°9Ñ<ñ>ñ !(¨£Ü"%ð 2:ö%&à,-ñ )0°«
´S¸³VÑ(;¸kÓ(Iò%&ó#"ñ!"ñ
ñ™ñ!òð#	ðJ ˆ
ùòS Aùò #Cùò,%&s   Á#FÂ,F!Å(F&)r   r   r1   r   r   r1   r   r1   )r1   r   r1   r1   r1   r   r1   r2   )r1   r   r1   r1   r   r1   r1   r3   )r   r1   r1   r1   r   r1   r   r©   )r1   r1   r   r1   r   r1   r1   rh   )r1   r1   r   r1   r1   r1   r1   ri   )r1   r   r1   r   r   r1   r   é   )r1   r1   r1   r1   r1   r1   r1   é   )r1   r1   r1   r1   r   r1   r1   é	   )r1   r1   r1   r   r1   r1   r1   r   rý   rå   r1   r4   rY   r   )rE   rF   rW   r<   c              3   óT   K  — | ]   }|j                   j                  d ¬«      –— Œ" y­w)F)Ú	normalizeN)Útree_Úcompute_feature_importances)Ú.0Útrees     rT   ú	<genexpr>z.test_importances_asymptotic.<locals>.<genexpr>¶  s*   è ø€ ò 
àð �J‰J×2Ñ2¸UÐ2×Cñ
ùs   ‚&(r¹   )r…   Úarrayrê   rP   Úzerosrç   r   rH   rŸ   Úestimators_rE   r$   rË   r€   )rü   r`   rI   rJ   r7   Útrue_importancesrî   rR   rÏ   rÛ   rá   s            @@rT   Útest_importances_asymptoticr  U  sE  ù€ ò
Iò	õ.ô` �8‰8â$Ú$Ú$Ú$Ú$Ú$Ú$Ú$Ú$Ú$ð	
ó€Dô �8‰8�Dš˜B˜Q˜B˜‘K¤tÔ,¨d²1°a°4©j€q€AØ—‘˜‘€Jô —x‘x 
Ó+Ðä�:Óò 6ˆÙ,¨Q°°1Ó5Ð˜Òð6ô Ø q°JÈQôç	�cˆ!ˆQƒið ô
 	ñ 
àŸ™ô
ó 	
ð ×
Ñ
ñ		ð ô ™ ›
¤C¨Ó$4Ô5Ü�6‰6Ð" [Ñ0Ó1×6Ñ6Ó8¸4Ò?Ð?Ñ?rV   c                 ó´   — dj                  | «      }t        j                  t        |¬«      5  t	        t        |    «       d«       d d d «       y # 1 sw Y   y xY w)NzfThis {} instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.©ÚmatchrÇ   )Úformatr    Úraisesr   Úgetattrr@   )rB   Úerr_msgs     rT   Ú!test_unfitted_feature_importancesr  Â  sR   € ð	=ß=C¹VÀD»\ð ô 
�‰”~¨WÔ	5ñ CÜÔ! $Ñ'Ó)Ð+AÔB÷C÷ Cñ Cús   ­AÁArQ   ÚX_type)r  Ú
sparse_csrÚ
sparse_csczX, y, lower_bound_accuracyé,  )r6   Ú	n_classesr<   r\   éè  ri   )r6   r  r8   r<   gÍÌÌÌÌÌä?g
×£p=
Ç?Ú	oob_scoreTÚmicro)Úaveragec                 óø  — t        ||¬«      }t        ||dd¬«      \  }}}}	 | dd|d¬«      }
t        |
d«      rJ ‚t        |
d	«      rJ ‚|
j                  ||«       t	        |«      r ||	|
j                  |«      «      }n#|
j                  ||	«      }|
j                  |k\  sJ ‚t        ||
j                  z
  «      }|d
k  sJ d|›d�«       ‚t        |
d«      sJ ‚t        |
d«      rJ ‚t        |
d	«      sJ ‚|j                  dk(  r$|j                  d   t        t        |«      «      f}n8|j                  d   t        t        |dd…df   «      «      |j                  d   f}|
j                  j                  |k(  sJ ‚y)z5Check that OOB score is close to score on a test set.©Úconstructor_namer^   r   r{   é(   T©rE   rž   r  r<   Ú
oob_score_Úoob_decision_function_g)\�Âõ(¼?z	abs_diff=z is greater than 0.11Úoob_prediction_r1   N)r"   r   rª   rH   ÚcallablerK   rb   r"  rË   ÚndimrP   rN   Úsetr#  )rQ   rI   rJ   r  Úlower_bound_accuracyr  r‘   r’   r“   r”   Ú
classifierÚ
test_scoreÚabs_diffÚexpected_shapes                 rT   Útest_forest_classifier_oobr-  Ì  s�  € ô> 	˜1¨vÔ6€AÜ'7Ø	Ø	ØØô	(Ñ$€GˆV�W˜fñ "ØØØØô	€Jô �z <Ô0Ð0Ð0Ü�zÐ#;Ô<Ð<Ð<à‡N�N�7˜GÔ$Ü�	ÔÙ˜v z×'9Ñ'9¸&Ó'AÓB‰
à×%Ñ% f¨fÓ5ˆ
Ø×$Ñ$Ð(<Ò<Ð<Ð<ä�: 
× 5Ñ 5Ñ5Ó6€HØ�tÒÐ@ 	 ˜{Ð*?Ð@Ó@Ðä�:˜|Ô,Ð,Ð,Ü�zÐ#4Ô5Ð5Ð5Ü�:Ð7Ô8Ð8Ð8à‡v�v�‚{Ø!Ÿ-™-¨Ñ*¬C´°A³«KÐ8‰à!Ÿ-™-¨Ñ*¬C´°A²a¸°d±G³Ó,=¸q¿w¹wÀq¹zÐJˆØ×,Ñ,×2Ñ2°nÒDÐDÑDrV   rm   zX, y, lower_bound_r2)r6   r7   Ú	n_targetsr<   çffffffæ?gš™™™™™á?c                 ó‚  — t        ||¬«      }t        ||dd¬«      \  }}}}	 | dd|d¬«      }
t        |
d«      rJ ‚t        |
d	«      rJ ‚|
j                  ||«       t	        |«      r ||	|
j                  |«      «      }n#|
j                  ||	«      }|
j                  |k\  sJ ‚t        ||
j                  z
  «      d
k  sJ ‚t        |
d«      sJ ‚t        |
d	«      sJ ‚t        |
d«      rJ ‚|j                  dk(  r|j                  d   f}n|j                  d   |j                  f}|
j                  j                  |k(  sJ ‚y)z\Check that forest-based regressor provide an OOB score close to the
    score on a test set.r  r^   r   r{   é2   Tr!  r"  r$  r½   r#  r1   N)r"   r   rª   rH   r%  rK   rb   r"  rË   r&  rP   r$  )rm   rI   rJ   r  Úlower_bound_r2r  r‘   r’   r“   r”   Ú	regressorr*  r,  s                rT   Útest_forest_regressor_oobr4    sX  € ô. 	˜1¨vÔ6€AÜ'7Ø	Ø	ØØô	(Ñ$€GˆV�W˜fñ  ØØØØô	€Iô �y ,Ô/Ð/Ð/Ü�yÐ"3Ô4Ð4Ð4à‡M�M�'˜7Ô#Ü�	ÔÙ˜v y×'8Ñ'8¸Ó'@ÓA‰
à—_‘_ V¨VÓ4ˆ
Ø×#Ñ# ~Ò5Ð5Ð5äˆz˜I×0Ñ0Ñ0Ó1°SÒ8Ð8Ð8ä�9˜lÔ+Ð+Ð+Ü�9Ð/Ô0Ð0Ð0Ü�yÐ":Ô;Ð;Ð;à‡v�v�‚{Ø!Ÿ-™-¨Ñ*Ð,‰à!Ÿ-™-¨Ñ*¨A¯F©FÐ3ˆØ×$Ñ$×*Ñ*¨nÒ<Ð<Ñ<rV   rÍ   c                 óØ   —  | dddd¬«      }t        j                  t        d¬«      5  |j                  t        j
                  t        j                  «       ddd«       y# 1 sw Y   yxY w)zfCheck that a warning is raised when not enough estimator and the OOB
    estimates will be inaccurate.r1   Tr   ©rE   r  rž   r<   z"Some inputs do not have OOB scoresr  N)r    ÚwarnsÚUserWarningrH   r_   r`   ra   )rÍ   Ú	estimators     rT   Útest_forest_oob_warningr:  M  sV   € ñ  ØØØØô	€Iô 
�‰”kÐ)MÔ	Nñ .Ø�‰”d—i‘i¤§¡Ô-÷.÷ .ñ .ús   ¨/A Á A)c                 óà   — t         j                  }t         j                  }d} | dd¬«      }t        j                  t
        |¬«      5  |j                  ||«       ddd«       y# 1 sw Y   yxY w)zaCheck that we raise an error if OOB score is requested without
    activating bootstrapping.
    z6Out of bag estimation only available if bootstrap=TrueTF©r  rž   r  N)r_   r`   ra   r    r  Ú
ValueErrorrH   )rÍ   rI   rJ   r  r9  s        rT   Ú(test_forest_oob_score_requires_bootstrapr>  [  sX   € ô
 	�	‰	€AÜ�‰€AØF€GÙ¨$¸%Ô@€IÜ	�‰”z¨Ô	1ñ Ø�‰�a˜Ô÷÷ ñ ús   ÁA$Á$A-c                 ó„  — t         j                  j                  d«      }t        j                  }|j                  ddt        j                  j                  d   df¬«      }t        |«      }|dk(  sJ ‚ | dd¬«      }d	}t        j                  t        |¬
«      5  |j                  ||«       ddd«       y# 1 sw Y   yxY w)zwCheck that we raise an error with when requesting OOB score with
    multiclass-multioutput classification target.
    rq   r   rh   r2   rs   zmulticlass-multioutputTr<  z:The type of target cannot be used to compute OOB estimatesr  N)r…   r†   r‡   r_   r`   rÊ   rP   r,   r    r  r=  rH   )rQ   r�   rI   rJ   Úy_typer9  r  s          rT   Ú6test_classifier_error_oob_score_multiclass_multioutputrA  h  s¢   € ô
 �)‰)×
Ñ
 Ó
#€CÜ�	‰	€AØ�‰˜ ¬¯©¯©¸Ñ);¸QÐ(?ˆÓ@€AÜ˜AÓ€FØÐ-Ò-Ð-Ð-Ù ¨4¸4Ô@€IØJ€GÜ	�‰”z¨Ô	1ñ Ø�‰�a˜Ô÷÷ ñ ús   ÂB6Â6B?c           	      ó  — t         j                  j                  d«      }t        j                  }|j                  ddt        j                  j                  d   df¬«      } | dddd¬«      }|j                  ||«       t        t        |«      |j                  «      }|j                  d   d	z  }t        j                  |dg«      }t        |d
| «      D ]‘  \  }}	d}
t        j                  d«      }|j                  D ]^  }t        |j                  t        |«      |«      }||v sŒ(|
dz  }
||j!                  |	j#                  dd«      «      j%                  «       z  }Œ` ||
z  ||<   Œ“ t'        ||j(                  d
| «       y
)z”Check that multioutput regression with integral values is not interpreted
    as a multiclass-multioutput target and OOB score can be computed.
    rq   r   r5   r2   rs   é   Tr6  r©   Nr1   r0   )r…   r†   r‡   r_   r`   rÊ   rP   rH   r   rN   Úmax_samplesr  Ú	enumerater	  r   r<   rK   ÚreshapeÚsqueezer#   r$  )rm   r�   rI   rJ   r9  Ún_samples_bootstrapÚn_samples_testÚoob_predÚ
sample_idxÚsampleÚn_samples_oobÚoob_pred_sampler  Úoob_unsampled_indicess                 rT   Ú2test_forest_multioutput_integral_regression_targetrP  x  sq  € ô
 �)‰)×
Ñ
 Ó
#€CÜ�	‰	€AØ�‰˜ ¬$¯)©)¯/©/¸!Ñ*<¸aÐ)@ˆÓA€AÙØ 4°4Àaô€Ið ‡M�M�!�QÔä2´3°q³6¸9×;PÑ;PÓQÐØ—W‘W˜Q‘Z 1‘_€NÜ�x‰x˜¨Ð+Ó,€HÜ'¨¨/¨>Ð(:Ó;ò 
?Ñˆ
�FØˆÜŸ(™( 1›+ˆØ×)Ñ)ò 	QˆDÜ$?Ø×!Ñ!¤3 q£6Ð+>ó%Ð!ð Ð2Ò2Ø Ñ"�Ø 4§<¡<°·±¸qÀ"Ó0EÓ#F×#NÑ#NÓ#PÑP‘ð	Qð  /°Ñ>ˆ�Òð
?ô �H˜i×7Ñ7¸¸ÐHÕIrV   c                 ó   — t        j                  t        d¬«      5  t        | ¬«       d d d «       t        j                  t        d¬«      5  t        «       j                  t        t        «       d d d «       y # 1 sw Y   ŒPxY w# 1 sw Y   y xY w)Nz"got an unexpected keyword argumentr  ©r  zOOB score not supported)r    r  Ú	TypeErrorr   ÚNotImplementedErrorÚ_set_oob_score_and_attributesrI   rJ   rR  s    rT   Ú+test_random_trees_embedding_raise_error_oobrV  –  sp   € ä	�‰”yÐ(LÔ	Mñ 2Ü yÕ1÷2ä	�‰Ô*Ð2KÔ	Lñ CÜÓ×<Ñ<¼QÄÔB÷Cð C÷2ð 2ú÷Cð Cús   œA8Á#BÁ8BÂBc                 ó˜   — t        |    «       }t        |dddœ«      }|j                  t        j                  t        j
                  «       y )N©r1   r2   )rE   r±   )rG   r   rH   r_   r`   ra   )rB   ÚforestrR   s      rT   Útest_gridsearchrZ  ž  s8   € ô   Ñ%Ó'€FÜ
�v°ÀVÑLÓ
M€CØ‡G�GŒD�I‰I”t—{‘{Õ#rV   c                 ó�  — | t         v r!t        j                  }t        j                  }n| t        v rt
        }t        }t        |    } |ddd¬«      }|j                  «       t        |«      dk(  sJ ‚|j                  d¬«       |j                  |«      }|j                  d¬«       |j                  |«      }t        ||d«       y)	z-Check parallel computations in classificationr5   r3   r   ©rE   r¿   r<   r1   r¾   r2   N)rG   r_   r`   ra   rj   rk   rl   r@   rH   rN   rÉ   rK   r%   )rB   rI   rJ   rÍ   rY  Úy1Úy2s          rT   Útest_parallelr_  ¦  s´   € ð Ô!Ñ!Ü�I‰IˆÜ�K‰K‰Ø	Ô"Ñ	"ÜˆÜˆä'¨Ñ-€OÙ¨"°QÀQÔG€Fà
‡J�Jˆq�!ÔÜˆv‹;˜"ÒÐÐà
×Ñ˜QÐÔØ	�‰˜Ó	€BØ
×Ñ˜QÐÔØ	�‰˜Ó	€BÜ˜b " aÕ(rV   c                 óÔ  — | t         v r-t        j                  d d d…   }t        j                  d d d…   }n | t        v rt
        d d d…   }t        d d d…   }t        |    } |d¬«      }|j                  «       |j                  ||«      }t        j                  |«      }t        j                  |«      }t        |«      |j                  k(  sJ ‚|j                  ||«      }||k(  sJ ‚y )Nr2   r   r¤   )rG   r_   r`   ra   rj   rk   rl   r@   rH   rb   ÚpickleÚdumpsÚloadsÚtypeÚ	__class__)	rB   rI   rJ   rÍ   Úobjrb   Úpickle_objectÚobj2Úscore2s	            rT   Útest_picklerj  ½  sÑ   € ð Ô!Ñ!Ü�I‰I‘c˜�c‰NˆÜ�K‰K™˜!˜Ñ‰Ø	Ô"Ñ	"Ü‘#�A�#‰JˆÜ‘#�A�#‰Jˆä'¨Ñ-€OÙ
 qÔ
)€CØ‡G�GˆAˆq„MØ�I‰I�a˜‹O€EÜ—L‘L Ó%€Mä�<‰<˜Ó&€DÜ�‹:˜Ÿ™Ò&Ð&Ð&Ø�Z‰Z˜˜1Ó€FØ�FŠ?Ð‰?rV   c                 óÜ  — ddgddgddgddgddgddgddgddgddgddgddgddgg}ddgddgddgddgddgddgddgddgddgddgddgddgg}ddgddgddgddgg}ddgddgddgddgg}t        |    dd¬«      }|j                  ||«      j                  |«      }t        ||«       | t        v r³t        j                  d	¬
«      5  |j                  |«      }t        |«      dk(  sJ ‚|d   j                  dk(  sJ ‚|d   j                  dk(  sJ ‚|j                  |«      }t        |«      dk(  sJ ‚|d   j                  dk(  sJ ‚|d   j                  dk(  sJ ‚	 d d d «       y y # 1 sw Y   y xY w)Nr/   r0   r1   r2   r   r3   F©r<   rž   r®   r¯   ©r©   r2   ©r©   r©   )r@   rH   rK   r%   rG   r…   r²   r³   rN   rP   rµ   ©	rB   r‘   r“   r’   r”   rÎ   Úy_predÚprobaÚ	log_probas	            rT   Útest_multioutputrs  Ó  s  € ð
 
ˆRˆØ	ˆRˆØ	ˆRˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	ˆQˆØ	ˆQˆØ	ˆQˆØ	
ˆBˆØ	
ˆBˆØ	
ˆBˆð€Gð 
ˆQˆØ	ˆQˆØ	ˆQˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	ˆQˆØ	ˆQˆØ	ˆQˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆð€Gð �2ˆh˜˜A˜  Q ¨!¨R¨Ð1€FØ�1ˆg˜˜1�v  A˜w¨¨A¨Ð/€Fä
˜DÑ
!¨q¸EÔ
B€CØ�W‰W�W˜gÓ&×.Ñ.¨vÓ6€FÜ˜f fÔ-àÔ!Ñ!Ü�[‰[ Ô)ñ 		0Ø×%Ñ% fÓ-ˆEÜ�u“: ’?Ð"�?Ø˜‘8—>‘> VÒ+Ð+Ð+Ø˜‘8—>‘> VÒ+Ð+Ð+à×-Ñ-¨fÓ5ˆIÜ�y“> QÒ&Ð&Ð&Ø˜Q‘<×%Ñ%¨Ò/Ð/Ð/Ø˜Q‘<×%Ñ%¨Ò/Ð/Ñ/÷		0ð 		0ð "÷		0ð 		0ús   ÃBE"Å"E+c                 óÊ  — ddgddgddgddgddgddgddgddgddgddgddgddgg}ddgddgddgddgddgddgddgddgddgdd	gdd	gdd	gg}ddgddgddgddgg}ddgddgddgdd	gg}t        |    d
d¬«      }|j                  ||«      j                  |«      }t        ||«       t	        j
                  d¬«      5  |j                  |«      }t        |«      dk(  sJ ‚|d
   j                  dk(  sJ ‚|d   j                  dk(  sJ ‚|j                  |«      }t        |«      dk(  sJ ‚|d
   j                  dk(  sJ ‚|d   j                  dk(  sJ ‚	 d d d «       y # 1 sw Y   y xY w)Nr/   r0   r1   r2   ÚredÚblueÚgreenÚpurpleÚyellowr   Frl  r®   r¯   rm  rn  )
r@   rH   rK   r&   r…   r²   r³   rN   rP   rµ   ro  s	            rT   Útest_multioutput_stringrz    s  € ð
 
ˆRˆØ	ˆRˆØ	ˆRˆØ	
ˆAˆØ	
ˆAˆØ	
ˆAˆØ	ˆQˆØ	ˆQˆØ	ˆQˆØ	
ˆBˆØ	
ˆBˆØ	
ˆBˆð€Gð 
�ˆØ	�ˆØ	�ˆØ	�'ÐØ	�'ÐØ	�'ÐØ	�ÐØ	�ÐØ	�ÐØ	�(ÐØ	�(ÐØ	�(Ðð€Gð �2ˆh˜˜A˜  Q ¨!¨R¨Ð1€Fà	�ˆØ	�'ÐØ	�ÐØ	�(Ðð	€Fô ˜DÑ
!¨q¸EÔ
B€CØ�W‰W�W˜gÓ&×.Ñ.¨vÓ6€FÜ�v˜vÔ&ä	�‰˜HÔ	%ñ 	,Ø×!Ñ! &Ó)ˆÜ�5‹z˜QŠÐˆØ�Q‰x�~‰~ Ò'Ð'Ð'Ø�Q‰x�~‰~ Ò'Ð'Ð'à×)Ñ)¨&Ó1ˆ	Ü�9‹~ Ò"Ð"Ð"Ø˜‰|×!Ñ! VÒ+Ð+Ð+Ø˜‰|×!Ñ! VÒ+Ð+Ñ+÷	,÷ 	,ñ 	,ús   Â<BEÅE"c                 óÊ  — t         |    } |d¬«      j                  t        t        «      }|j                  dk(  sJ ‚t        |j                  ddg«       t        j                  t        t        j                  t        «      dz  f«      j                  } |d¬«      j                  t        |«      }t        |j                  ddg«       t        |j                  ddgddgg«       y )Nr   r¤   r2   r0   r1   r/   )rG   rH   rI   rJ   r¦   r&   r¥   r…   Úvstackr  rL   )rB   rQ   rR   Ú_ys       rT   Útest_classes_shaper~  ?  s·   € ô *¨$Ñ/Ðñ ¨Ô
*×
.Ñ
.¬q´!Ó
4€Cà�>‰>˜QÒÐÐÜ�s—|‘| b¨! WÔ-ô 
�‰”A”r—x‘x¤“{ Q‘Ð'Ó	(×	*Ñ	*€BÙ
¨Ô
*×
.Ñ
.¬q°"Ó
5€Cä�s—~‘~¨¨1 vÔ.Ü�s—|‘| r¨1 g°°A¨wÐ%7Õ8rV   c                  óª   — t        dd¬«      } t        j                  d¬«      \  }}| j                  |«      }t	        |t
        j                  «      sJ ‚y )Nr5   F)rE   Úsparse_outputr^   ©Úfactor)r   r   Úmake_circlesÚfit_transformÚ
isinstancer…   Úndarray)ÚhasherrI   rJ   ÚX_transformeds       rT   Útest_random_trees_dense_typer‰  R  sJ   € ô
 "¨rÀÔG€FÜ× Ñ ¨Ô,�D€A€qØ×(Ñ(¨Ó+€Mô �m¤R§Z¡ZÔ0Ð0Ñ0rV   c                  óæ   — t        ddd¬«      } t        ddd¬«      }t        j                  d¬«      \  }}| j                  |«      }|j                  |«      }t	        |j                  «       |«       y )Nr5   Fr   )rE   r€  r<   Tr^   r�  )r   r   rƒ  r„  r&   Útoarray)Úhasher_denseÚhasher_sparserI   rJ   ÚX_transformed_denseÚX_transformed_sparses         rT   Útest_random_trees_dense_equalr�  _  sw   € ô
 (Ø u¸1ô€Lô )Ø t¸!ô€Mô × Ñ ¨Ô,�D€A€qØ&×4Ñ4°QÓ7ÐØ(×6Ñ6°qÓ9Ðô Ð+×3Ñ3Ó5Ð7JÕKrV   c                  óF  — t        dd¬«      } t        j                  d¬«      \  }}| j                  |«      }t        dd¬«      } t	        | j                  |«      j                  |«      j                  «       |j                  «       «       |j                  d   |j                  d   k(  sJ ‚t	        |j                  d¬«      | j                  «       t        d¬	«      }|j                  |«      }t        «       }|j                  ||«       |j                  ||«      d
k(  sJ ‚y )NrC  r1   rD   r^   r�  r   rw   r2   )Ún_componentsrÝ   )r   r   rƒ  r„  r&   rH   Ú	transformr‹  rP   rŸ   rE   r   r    rb   )r‡  rI   rJ   rˆ  ÚsvdÚ	X_reducedÚ
linear_clfs          rT   Útest_random_hasherr—  r  sü   € ô
 "¨rÀÔB€FÜ× Ñ ¨Ô,�D€A€qØ×(Ñ(¨Ó+€Mô "¨rÀÔB€FÜ�v—z‘z !“}×.Ñ.¨qÓ1×9Ñ9Ó;¸]×=RÑ=RÓ=TÔUð ×Ñ˜qÑ! Q§W¡W¨Q¡ZÒ/Ð/Ð/Ü�}×(Ñ(¨aÐ(Ó0°&×2EÑ2EÔFÜ
 AÔ
&€CØ×!Ñ! -Ó0€IÜ“€JØ‡N�N�9˜aÔ Ø×Ñ˜I qÓ)¨SÒ0Ð0Ñ0rV   Úcsc_containerc                 óð   — t        j                  d¬«      \  }}t        dd¬«      }|j                  |«      }|j                   | |«      «      }t	        |j                  «       |j                  «       «       y )Nr   r¤   rC  r1   rD   )r   Úmake_multilabel_classificationr   r„  r&   r‹  )r˜  rI   rJ   r‡  rˆ  r�  s         rT   Útest_random_hasher_sparse_datar›  ‰  se   € ä×2Ñ2ÀÔB�D€A€qÜ!¨rÀÔB€FØ×(Ñ(¨Ó+€MØ!×/Ñ/±¸aÓ0@ÓAÐÜÐ+×3Ñ3Ó5°}×7LÑ7LÓ7NÕOrV   c                  ó~  — t        d«      } d\  }}| j                  ||«      }| j                  dd|«      }dD �cg c]   }t        d|d¬«      j	                  ||«      ‘Œ" }}| j                  ||«      }|D �cg c]  }|j                  |«      ‘Œ }	}t        |	|	d	d  «      D ]  \  }
}t        |
|«       Œ y c c}w c c}w )
Né!0  )éP   rC  r   r2   )r1   r2   r3   rþ   é   é    r>   i90  r\  r1   )r.   ÚrandnrÊ   r   rH   r³   Úzipr%   )r�   r6   r7   r‘   r“   r¿   Úclfsr’   rR   ÚprobasÚproba1Úproba2s               rT   Útest_parallel_trainr§  ’  sÖ   € Ü
˜UÓ
#€CØ"Ñ€IˆzØ�i‰i˜	 :Ó.€GØ�k‰k˜!˜Q 	Ó*€Gð +ö	ð ô 	¨B°vÈEÔR×VÑVØ�Wõ	
ð€Dð ð �Y‰Y�y *Ó-€FØ37Ö8¨Cˆc×Ñ Õ'Ð8€FÐ8Ü˜f f¨Q¨R jÓ1ò 2‰ˆ�Ü! &¨&Õ1ñ2ùòùò 9s   º%B5Á7B:c                  óH  — t        d«      } | j                  ddd¬«      }| j                  d«      }d}t        |d¬	«      j	                  ||«      }t        t        «      }|j                  D ]Y  }d
j                  d„ t        |j                  j                  |j                  j                  «      D «       «      }||xx   dz  cc<   Œ[ t        |j                  «       D ��cg c]  \  }}d|z  |z  |f‘Œ c}}«      }t        |«      dk(  sJ ‚d|d   d   kD  sJ ‚d|d   d   kD  sJ ‚d|d   d   kD  sJ ‚d|d   d   kD  sJ ‚|d   d   dkD  sJ ‚|d   d   dk(  sJ ‚t!        j"                  d«      }t         j$                  j                  ddd«      |d d …df<   t         j$                  j                  ddd«      |d d …df<   | j                  d«      }t        dd¬«      j	                  ||«      }t        t        «      }|j                  D ]Y  }d
j                  d„ t        |j                  j                  |j                  j                  «      D «       «      }||xx   dz  cc<   Œ[ |j                  «       D ��cg c]	  \  }}||f‘Œ }}}t        |«      dk(  sJ ‚y c c}}w c c}}w )Nr�  r   r©   )r  r1   ©rv   r  r4   rq   rD   Ú c              3   óP   K  — | ]  \  }}|d k\  rd|t        |«      fz  nd–— Œ  y­w©r   z%d,%d/ú-N©rØ   ©r  ÚfÚts      rT   r  z$test_distribution.<locals>.<genexpr>±  ó4   è ø€ ò 
á��1ð ()¨A¢vˆX˜œC ›F˜Ò#°3Ó6ñ
ùó   ‚$&r1   rÝ   rh   gš™™™™™É?r2   r3   ç333333Ó?z0,1/0,0/--0,2/--)r  r2   )rF   r<   c              3   óP   K  — | ]  \  }}|d k\  rd|t        |«      fz  nd–— Œ  y­wr¬  r®  r¯  s      rT   r  z$test_distribution.<locals>.<genexpr>Ð  r²  r³  rþ   )r.   rÊ   Úrandr   rH   r   rØ   r	  Újoinr¢  r  ÚfeatureÚ	thresholdÚsortedÚitemsrN   r…   Úemptyr†   )r�   rI   rJ   Ún_treesrn   Úuniquesr  râ   s           rT   Útest_distributionr¿  ¥  s“  € Ü
˜UÓ
#€Cð 	�‰�A�q˜yˆÓ)€AØ�‰�‹€AØ€Gä
¨7ÀÔ
D×
HÑ
HÈÈAÓ
N€Cäœ#Ó€GØ—‘ò ˆØ�w‰wñ 
ä˜DŸJ™J×.Ñ.°·
±
×0DÑ0DÓEô
ó 
ˆð
 	�‹˜ÑŒðô ÀwÇ}Á}Ã×W¹¸¸e�s˜U‘{ WÑ,¨dÒ3ÓWÓX€Gô ˆw‹<˜1ÒÐÐØ�'˜!‘*˜Q‘-ÒÐÐØ�'˜!‘*˜Q‘-ÒÐÐØ�'˜!‘*˜Q‘-ÒÐÐØ�'˜!‘*˜Q‘-ÒÐÐØ�1‰:�a‰=˜3ÒÐÐØ�1‰:�a‰=Ð.Ò.Ð.Ð.ô 	�‰�Ó€AÜ�i‰i×Ñ  1 dÓ+€A‚aˆ€d�GÜ�i‰i×Ñ  1 dÓ+€A‚aˆ€d�GØ�‰�‹€Aä
¨1¸1Ô
=×
AÑ
AÀ!ÀQÓ
G€Cäœ#Ó€GØ—‘ò ˆØ�w‰wñ 
ä˜DŸJ™J×.Ñ.°·
±
×0DÑ0DÓEô
ó 
ˆð
 	�‹˜ÑŒðð 18·±³×@¡  u��tŠ}Ð@€GÑ@Üˆw‹<˜1ÒÐÑùóA Xùó> As   ÃJ
É6Jc                 ó$  — t         t        }}t        |    } |dddd¬«      j                  ||«      }|j                  d   j                  «       dk(  sJ ‚ |ddd¬«      j                  ||«      }|j                  d   j                  «       dk(  sJ ‚y )Nr1   r©   r   )r±   Úmax_leaf_nodesrE   r<   )r±   rE   r<   )Úhastie_XÚhastie_yr@   rH   r	  Ú	get_depth©rB   rI   rJ   rÍ   rÎ   s        rT   Útest_max_leaf_nodes_max_depthrÆ  Û  s•   € ä”X€q€Aô (¨Ñ-€OÙ
Ø A°AÀAôç	�cˆ!ˆQƒið ð �?‰?˜1Ñ×'Ñ'Ó)¨QÒ.Ð.Ð.á
 A°AÀAÔ
F×
JÑ
JÈ1ÈaÓ
P€CØ�?‰?˜1Ñ×'Ñ'Ó)¨QÒ.Ð.Ñ.rV   c                 óÆ  — t         t        }}t        |    } |ddd¬«      }|j                  ||«       |j                  d   j
                  j                  dk7  }|j                  d   j
                  j                  |   }t        j                  |«      t        |«      dz  dz
  kD  sJ dj                  | «      «       ‚ |ddd¬«      }|j                  ||«       |j                  d   j
                  j                  dk7  }|j                  d   j
                  j                  |   }t        j                  |«      t        |«      dz  dz
  kD  sJ dj                  | «      «       ‚y )Nr5   r1   r   )Úmin_samples_splitrE   r<   r0   r^   úFailed with {0})rÂ  rÃ  r@   rH   r	  r  Úchildren_leftÚn_node_samplesr…   ÚminrN   r  )rB   rI   rJ   rÍ   rÎ   Únode_idxÚnode_sampless          rT   Útest_min_samples_splitrÏ  ê  s1  € ä”X€q€AÜ'¨Ñ-€Oá
¨B¸QÈQÔ
O€CØ‡G�GˆAˆq„MØ�‰˜qÑ!×'Ñ'×5Ñ5¸Ñ;€HØ—?‘? 1Ñ%×+Ñ+×:Ñ:¸8ÑD€Lä�6‰6�,Ó¤# a£&¨3¡,°Ñ"2Ò2ÐRÐ4E×4LÑ4LÈTÓ4RÓRÐ2á
¨C¸aÈaÔ
P€CØ‡G�GˆAˆq„MØ�‰˜qÑ!×'Ñ'×5Ñ5¸Ñ;€HØ—?‘? 1Ñ%×+Ñ+×:Ñ:¸8ÑD€Lä�6‰6�,Ó¤# a£&¨3¡,°Ñ"2Ò2ÐRÐ4E×4LÑ4LÈTÓ4RÓRÑ2rV   c                 óŒ  — t         t        }}t        |    } |ddd¬«      }|j                  ||«       |j                  d   j
                  j                  |«      }t        j                  |«      }||dk7     }t        j                  |«      dkD  sJ dj                  | «      «       ‚ |ddd¬«      }|j                  ||«       |j                  d   j
                  j                  |«      }t        j                  |«      }||dk7     }t        j                  |«      t        |«      dz  dz
  kD  sJ dj                  | «      «       ‚y )Nrh   r1   r   )r   rE   r<   r©   rÉ  g      Ð?)rÂ  rÃ  r@   rH   r	  r  rO   r…   rÞ   rÌ  r  rN   )rB   rI   rJ   rÍ   rÎ   ÚoutÚnode_countsÚ
leaf_counts           rT   Útest_min_samples_leafrÔ  þ  s"  € ä”X€q€Aô (¨Ñ-€Oá
¨1¸1È1Ô
M€CØ‡G�GˆAˆq„MØ
�/‰/˜!Ñ
×
"Ñ
"×
(Ñ
(¨Ó
+€CÜ—+‘+˜cÓ"€Kà˜[¨AÑ-Ñ.€JÜ�6‰6�*Ó Ò!ÐAÐ#4×#;Ñ#;¸DÓ#AÓAÐ!á
¨4¸aÈaÔ
P€CØ‡G�GˆAˆq„MØ
�/‰/˜!Ñ
×
"Ñ
"×
(Ñ
(¨Ó
+€CÜ—+‘+˜cÓ"€Kà˜[¨AÑ-Ñ.€JÜ�6‰6�*Ó¤ A£¨¡°Ñ 1Ò1ÐQÐ3D×3KÑ3KÈDÓ3QÓQÑ1rV   c                 óx  — t         t        }}t        |    }t        j                  j                  d«      }|j                  |j                  d   «      }t        j                  |«      }t        j                  ddd«      D ]¹  } ||dd¬«      }d| v rd|_
        |j                  |||¬«       |j                  d   j                  j                  |«      }	t        j                  |	|¬	«      }
|
|
dk7     }t        j                   |«      ||j"                  z  k\  rŒšJ d
j%                  | |j"                  «      «       ‚ y )Nr   r^   ri   r1   )Úmin_weight_fraction_leafrE   r<   ÚRandomForestFrÀ   )Úweightsz,Failed with {0} min_weight_fraction_leaf={1})rÂ  rÃ  r@   r…   r†   r‡   r¶  rP   rŸ   Úlinspacerž   rH   r	  r  rO   rÞ   rÌ  rÖ  r  )rB   rI   rJ   rÍ   r�   rØ  Útotal_weightÚfracrÎ   rÑ  Únode_weightsÚleaf_weightss               rT   Útest_min_weight_fraction_leafrÞ    s   € ä”X€q€Aô (¨Ñ-€OÜ
�)‰)×
Ñ
 Ó
"€CØ�h‰h�q—w‘w˜q‘zÓ"€GÜ—6‘6˜'“?€Lô —‘˜A˜s AÓ&ò 
ˆÙØ%)¸Èô
ˆð ˜TÑ!Ø!ˆCŒMà�‰��1 GˆÔ,Ø�o‰o˜aÑ ×&Ñ&×,Ñ,¨QÓ/ˆÜ—{‘{ 3°Ô8ˆà# L°AÑ$5Ñ6ˆä�F‰F�<Ó  L°3×3OÑ3OÑ$OÓOð	
à9×@Ñ@Ø�#×.Ñ.ó
ó	
ØOñ
rV   Úsparse_containerc                 ó¨  — t        j                  dd¬«      \  }}t        |    } |dd¬«      j                  ||«      } |dd¬«      j                   ||«      |«      }t	        |j                  |«      |j                  |«      «       | t        v s| t        v rJt	        |j                  |«      |j                  |«      «       t	        |j                  |j                  «       | t        v rTt	        |j                  |«      |j                  |«      «       t	        |j                  |«      |j                  |«      «       | t        v r�t	        |j                  |«      j                  «       |j                  |«      j                  «       «       t	        |j                  |«      j                  «       |j                  |«      j                  «       «       y y )Nr   r1  )r<   r6   r2   )r<   r±   )r   rš  r@   rH   r%   rO   rG   rj   rK   rÇ   r³   rµ   ÚFOREST_TRANSFORMERSr“  r‹  r„  )rB   rß  rI   rJ   rÍ   ÚdenseÚsparses          rT   Útest_sparse_inputrä  6  s…  € ô
 ×2Ñ2ÀÈRÔP�D€A€qä'¨Ñ-€Oá¨°aÔ8×<Ñ<¸QÀÓB€EÙ¨!°qÔ9×=Ñ=Ñ>NÈqÓ>QÐSTÓU€Fä˜fŸl™l¨1›o¨u¯{©{¸1«~Ô>àÔ!Ñ! TÔ->Ñ%>Ü! &§.¡.°Ó"3°U·]±]À1Ó5EÔFÜ!Ø×'Ñ'¨×)CÑ)Cô	
ð Ô!Ñ!Ü! &×"6Ñ"6°qÓ"9¸5×;NÑ;NÈqÓ;QÔRÜ!Ø×$Ñ$ QÓ'¨×)@Ñ)@ÀÓ)Cô	
ð Ô"Ñ"Ü!Ø×Ñ˜QÓ×'Ñ'Ó)¨5¯?©?¸1Ó+=×+EÑ+EÓ+Gô	
ô 	"Ø× Ñ  Ó#×+Ñ+Ó-¨u×/BÑ/BÀ1Ó/E×/MÑ/MÓ/Oõ	
ð	 #rV   c                 óX  — t        |    dd¬«      }t        j                  i ft        j                  ddift        j                  ddift        j                  i ffD ]Y  \  }} |t        j
                  fd|i|¤Ž}t        j                  }t        |j                  ||«      j                  |«      |«       Œ[ |j                  j                  t        v rlt        t        z   t        z   D ]U  } |t        j
                  |¬«      }t        j                  }t        |j                  ||«      j                  |«      |«       ŒW t        j                  t        j
                  d d d	…   |¬«      }t        j                  d d d	…   }t        |j                  ||«      j                  |«      |«       y )
Nr   Frl  ÚorderÚCÚFr·   rå   r3   )r@   r…   ÚasarrayÚascontiguousarrayr_   r`   ra   r%   rH   rK   r9  Úsplitterr!   r)   r*   r+   )rB   r·   rÎ   Ú	containerÚkwargsrI   rJ   rß  s           rT   Útest_memory_layoutrî  Y  sa  € ô ˜DÑ
!¨q¸EÔ
B€Cô 
�‰�RÐÜ	�‰�g˜s�^Ð$Ü	�‰�g˜s�^Ð$Ü	×	Ñ	˜rÐ"ð	ò ?Ñˆ	�6ñ ”d—i‘iÑ7 uÐ7°Ñ7ˆÜ�K‰KˆÜ! #§'¡'¨!¨Q£-×"7Ñ"7¸Ó":¸AÕ>ð?ð ‡}�}×ÑÔ!1Ñ1Ü .´Ñ ?Ä.Ñ Pò 	CÐÙ ¤§¡°%Ô8ˆAÜ—‘ˆAÜ% c§g¡g¨a°£m×&;Ñ&;¸AÓ&>ÀÕBð	Cô 	�
‰
”4—9‘9™S˜q˜S‘>¨Ô/€AÜ�‰‘C�a�CÑ€AÜ˜cŸg™g a¨›m×3Ñ3°AÓ6¸Õ:rV   c                 óR  — t         j                  d d …df   }t         j                  d d …df   j                  d«      }t         j                  }t	        «       5  t
        |    }t        j                  t        «      5   |dd¬«      j                  ||«       d d d «        |d¬«      }|j                  ||«       | t        v s| t        v r3t        j                  t        «      5  |j                  |«       d d d «       d d d «       y # 1 sw Y   ŒpxY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nr   ©r0   r1   r1   rD   r¤   )r_   r`   rF  ra   r'   r@   r    r  r=  rH   rG   rj   rK   )rB   rI   ÚX_2drJ   rÍ   rÎ   s         rT   Útest_1d_inputrò  w  sõ   € ä�	‰	’!�Q�$‰€AÜ�9‰9’Q˜�T‰?×"Ñ" 7Ó+€DÜ�‰€Aä	Ó	ñ 
Ü+¨DÑ1ˆÜ�]‰]œ:Ó&ñ 	FÙ¨¸Ô;×?Ñ?ÀÀ1ÔE÷	Fñ ¨1Ô-ˆØ�‰��aÔàÔ%Ñ%¨Ô1BÑ)BÜ—‘œzÓ*ñ Ø—‘˜A”÷÷
ð 
÷	Fð 	Fú÷ð ú÷
ð 
ús=   Á#DÁ;DÂADÃ"DÃ4DÄD	Ä
DÄD	ÄDÄD&c                 óü  — t         |    } |d¬«      }|j                  t        j                  t        j                  «        |dd¬«      }|j                  t        j                  t        j                  «       t        |j                  |j                  «       t        j                  t        j                  t        j                  t        j                  f«      j                  } |ddddœddddœddddœgd¬«      }|j                  t        j                  |«       t        |j                  |j                  «        |dd¬«      }|j                  t        j                  |«       t        |j                  |j                  «       t        j                  t        j                  j                  «      }|t        j                  dk(  xx   d	z  cc<   dd
ddœ} |d¬«      }|j                  t        j                  t        j                  |«        ||d¬«      }|j                  t        j                  t        j                  «       t        |j                  |j                  «        |d¬«      }|j                  t        j                  t        j                  |dz  «        ||d¬«      }|j                  t        j                  t        j                  |«       t        |j                  |j                  «       y )Nr   r¤   Úbalanced©Úclass_weightr<   ç       @rÝ   ©r   r1   r2   r1   rÃ   g      Y@r2   )rG   rH   r_   r`   ra   r$   rÇ   r…   r|  rL   r´   rP   )	rB   rQ   Úclf1Úclf2Ú
iris_multiÚclf3Úclf4rÁ   rö  s	            rT   Útest_class_weightsrþ  Š  s  € ô *¨$Ñ/Ðñ ¨Ô+€DØ‡H�HŒT�Y‰YœŸ™Ô$Ù¨À!ÔD€DØ‡H�HŒT�Y‰YœŸ™Ô$Ü˜×1Ñ1°4×3LÑ3LÔMô —‘œDŸK™K¬¯©´d·k±kÐBÓC×EÑE€Jáà˜ Ñ$Ø˜ Ñ$Ø˜ Ñ$ð
ð
 ô€Dð 	‡H�HŒT�Y‰Y˜
Ô#Ü˜×1Ñ1°4×3LÑ3LÔMá¨À!ÔD€DØ‡H�HŒT�Y‰Y˜
Ô#Ü˜×1Ñ1°4×3LÑ3LÔMô —G‘GœDŸK™K×-Ñ-Ó.€MØ”$—+‘+ Ñ"Ó# sÑ*Ó#Ø˜u¨Ñ-€LÙ¨Ô+€DØ‡H�HŒT�Y‰YœŸ™ ]Ô3Ù¨ÀAÔF€DØ‡H�HŒT�Y‰YœŸ™Ô$Ü˜×1Ñ1°4×3LÑ3LÔMñ ¨Ô+€DØ‡H�HŒT�Y‰YœŸ™ ]°AÑ%5Ô6Ù¨ÀAÔF€DØ‡H�HŒT�Y‰YœŸ™ ]Ô3Ü˜×1Ñ1°4×3LÑ3LÕMrV   c                 ód  — t         |    }t        j                  t        t        j                  t        «      dz  f«      j
                  } |dd¬«      }|j                  t        |«        |dddœdddœgd¬«      }|j                  t        |«        |d	d¬«      }|j                  t        |«       y )
Nr2   rô  r   rõ  r^   rÝ   rð  )r/   r2   Úbalanced_subsample)rG   r…   r|  rJ   r  rL   rH   rI   )rB   rQ   r}  rR   s       rT   Ú5test_class_weight_balanced_and_bootstrap_multi_outputr  º  s”   € ô *¨$Ñ/ÐÜ	�‰”A”r—x‘x¤“{ Q‘Ð'Ó	(×	*Ñ	*€BÙ
¨
ÀÔ
C€CØ‡G�GŒAˆr„NÙ
Ø 3Ñ'¨c°cÑ):Ð;È!ô€Cð ‡G�GŒAˆr„Ná
Ð(<È1Ô
M€CØ‡G�GŒAˆr…NrV   c                 ó  — t         |    }t        j                  t        t        j                  t        «      dz  f«      j
                  } |ddd¬«      }|j                  t        t        «       d}t        j                  t        |¬«      5  |j                  t        |«       d d d «        |dd	d
œgd¬«      }t        j                  t        «      5  |j                  t        |«       d d d «       y # 1 sw Y   ŒPxY w# 1 sw Y   y xY w)Nr2   rô  Tr   )rö  Ú
warm_startr<   úJWarm-start fitting without increasing n_estimators does not fit new trees.r  r^   rÝ   rð  rõ  )rG   r…   r|  rJ   r  rL   rH   rI   r    r7  r8  r  r=  )rB   rQ   r}  rR   Úwarn_msgs        rT   Útest_class_weight_errorsr  Ê  sØ   € ô *¨$Ñ/ÐÜ	�‰”A”r—x‘x¤“{ Q‘Ð'Ó	(×	*Ñ	*€Bñ ¨
¸tÐRSÔ
T€CØ‡G�GŒAŒq„Mð 	Uð ô 
�‰”k¨Ô	2ñ Ø�‰”�2Œ÷ñ ¨c°cÑ):Ð(;È!Ô
L€CÜ	�‰”zÓ	"ñ Ø�‰”�2Œ÷ð ÷ð ú÷
ð ús   ÂC1ÃC=Ã1C:Ã=Dc                 ó  — t         t        }}t        |    }d }dD ]D  }|€ ||dd¬«      }n|j                  |¬«       |j	                  ||«       t        |«      |k(  rŒDJ ‚  |ddd¬«      }|j	                  ||«       t        |D �cg c]  }|j                  ‘Œ c}«      t        |D �cg c]  }|j                  ‘Œ c}«      k(  sJ ‚t        |j                  |«      |j                  |«      dj                  | «      ¬	«       y c c}w c c}w )
N)rh   r5   rq   T)rE   r<   r  ©rE   r5   FrÉ  )r  )rÂ  rÃ  r@   rÉ   rH   rN   r'  r<   r&   rO   r  )rB   rI   rJ   rÍ   Úest_wsrE   Ú	est_no_wsr  s           rT   Útest_warm_startr  à  s  € ô ”X€q€AÜ'¨Ñ-€OØ€FØò +ˆØˆ>Ù$Ø)¸Àtô‰Fð ×Ñ¨<ÐÔ8Ø�
‰
�1�aÔÜ�6‹{˜lÓ*Ð*Ð*ð+ñ  ¨R¸bÈUÔS€IØ‡M�M�!�QÔä¨fÖ5 d�×!Ó!Ò5Ó6¼#Ø'0Ö1˜tˆ×	Ó	Ò1ó;ò ð ð ô Ø�‰�Q‹˜Ÿ™¨Ó+Ð5F×5MÑ5MÈdÓ5Söùò	 6ùÚ1s   ÂDÂ)D
c                 óD  — t         t        }}t        |    } |dddd¬«      }|j                  ||«        |dddd¬«      }|j                  ||«       |j	                  dd¬«       |j                  ||«       t        |j                  |«      |j                  |«      «       y )Nrh   r1   F©rE   r±   r  r<   Tr2   )r  r<   )rÂ  rÃ  r@   rH   rÉ   r%   rO   )rB   rI   rJ   rÍ   rÎ   Úest_2s         rT   Útest_warm_start_clearr  ý  s‘   € ô ”X€q€AÜ'¨Ñ-€OÙ
 q°AÀ%ÐVWÔ
X€CØ‡G�GˆAˆq„MáØ !°À1ô€Eð 
‡I�Iˆa�„OØ	×Ñ °AÐÔ6Ø	‡I�Iˆa�„Oä˜eŸk™k¨!›n¨c¯i©i¸«lÕ;rV   c                 ó  — t         t        }}t        |    } |ddd¬«      }|j                  ||«       |j	                  d¬«       t        j                  t        «      5  |j                  ||«       d d d «       y # 1 sw Y   y xY w)Nrh   r1   T)rE   r±   r  r©   r  )rÂ  rÃ  r@   rH   rÉ   r    r  r=  rÅ  s        rT   Ú$test_warm_start_smaller_n_estimatorsr    sn   € ô ”X€q€AÜ'¨Ñ-€OÙ
 q°AÀ$Ô
G€CØ‡G�GˆAˆq„MØ‡N�N €NÔ"Ü	�‰”zÓ	"ñ Ø�‰��1Œ÷÷ ñ ús   ÁA:Á:Bc                 ó¦  — t         t        }}t        |    } |dddd¬«      }|j                  ||«        |dddd¬«      }|j                  ||«       |j	                  d¬«       d}t        j                  t        |¬	«      5  |j                  ||«       d d d «       t        |j                  |«      |j                  |«      «       y # 1 sw Y   Œ4xY w)
Nrh   r3   Tr1   r  r2   r¤   r  r  )
rÂ  rÃ  r@   rH   rÉ   r    r7  r8  r&   rO   )rB   rI   rJ   rÍ   rÎ   r  r  s          rT   Ú"test_warm_start_equal_n_estimatorsr    sÀ   € ô ”X€q€AÜ'¨Ñ-€OÙ
 q°AÀ$ÐUVÔ
W€CØ‡G�GˆAˆq„MáØ !°À1ô€Eð 
‡I�Iˆa�„Oð 
×Ñ !ÐÔ$àTð ô 
�‰”k¨Ô	2ñ Ø�	‰	�!�QŒ÷ô �s—y‘y “| U§[¡[°£^Õ4÷	ð ús   ÂCÃCc                 ó:  — t         t        }}t        |    } |dddddd¬«      }|j                  ||«        |dddddd¬«      }|j                  ||«       |j	                  ddd¬«       |j                  ||«       t        |d	«      sJ ‚|j                  |j                  k(  sJ ‚ |dddddd¬«      }|j                  ||«       t        |d	«      rJ ‚|j	                  d¬
«        t        |j                  «      ||«       |j                  |j                  k(  sJ ‚y )Né   r3   Fr1   T)rE   r±   r  r<   rž   r  rh   )r  r  rE   r"  rR  )rÂ  rÃ  r@   rH   rÉ   rª   r"  r'   )rB   rI   rJ   rÍ   rÎ   r  Úest_3s          rT   Útest_warm_start_oobr  5  s2  € ô ”X€q€AÜ'¨Ñ-€Oá
ØØØØØØô€Cð ‡G�GˆAˆq„MáØØØØØØô€Eð 
‡I�Iˆa�„Oà	×Ñ °À2ÐÔFØ	‡I�Iˆa�„Oä�5˜,Ô'Ð'Ð'Ø�>‰>˜U×-Ñ-Ò-Ð-Ð-ñ ØØØØØØô€Eð 
‡I�Iˆa�„OÜ�u˜lÔ+Ð+Ð+à	×Ñ˜tÐÔ$Ø„O�E—I‘IÓ˜q !Ô$à�>‰>˜U×-Ñ-Ò-Ð-Ñ-rV   c                 ó|  — t         t        }}t        |    } |dddd¬«      }t        j                  |d|j
                  ¬«      5 }|j                  ||«       t        j                  t        d¬«      5  |j                  ||«       d d d «       |j                  «        d d d «       y # 1 sw Y   Œ"xY w# 1 sw Y   y xY w)Nr5   T)rE   r  rž   r  rU  )Úwrapsz%Warm-start fitting without increasingr  )rÂ  rÃ  r@   r	   ÚobjectrU  rH   r    r7  r8  Úassert_called_once)rB   rI   rJ   rÍ   rÎ   Ú!mock_set_oob_score_and_attributess         rT   Útest_oob_not_computed_twicer  h  s¯   € ô ”X€q€AÜ'¨Ñ-€Oá
Ø D°DÀDô€Cô 
�‰ØÐ,°C×4UÑ4Uô
ð ?à	*Ø�‰��1Œä�\‰\œ+Ð-TÔUñ 	Ø�G‰G�A�qŒM÷	ð 	*×<Ñ<Ô>÷?ð ?÷
	ð 	ú÷?ð ?ús$   Á.B2Á2B&ÂB2Â&B/	Â+B2Â2B;c                 óü   — t        dd¬«      }t        j                  | «      }dd |  D �cg c]  }|‘Œ }}|j                  ||«      j	                  |«      }t        |j                  |«       t        ||«       y c c}w )Nr   Frl  ÚABCDEFGHIJKLMNOPQRSTU)r   r…   ÚeyerH   rK   r&   r¥   )r  r)  rI   ÚchrJ   Úresults         rT   Útest_dtype_convertr#  }  sp   € Ü'°QÀ%ÔH€Jä
�‰ˆyÓ€AØ-¨j¨yÐ9Ö:�ŠÐ:€AÐ:à�^‰^˜A˜qÓ!×)Ñ)¨!Ó,€FÜ�z×*Ñ*¨AÔ.Ü�v˜qÕ!ùò	 	;s   ª	A9c           	      ó¬  — t         t        }}|j                  d   }t        |    } |dddd¬«      }|j	                  ||«       |j                  |«      \  }}|j                  d   |d   k(  sJ ‚|j                  d   |k(  sJ ‚t        t        j                  |«      |j                  D �cg c]  }|j                  j                  ‘Œ c}«       |j                  |«      }	t        |	j                  d   «      D ]Q  }
t        |	d d …|
f   «      D ��cg c]  \  }}||||
   |z   f   ‘Œ }}}t        |t        j                   |¬«      «       ŒS y c c}w c c}}w )Nr   rh   r1   Fr  r0   )rP   )rÂ  rÃ  rP   r@   rH   Údecision_pathr&   r…   Údiffr	  r  Ú
node_countrO   rç   rE  r%   r´   )rB   rI   rJ   r6   rÍ   rÎ   Ú	indicatorÚn_nodes_ptrÚeÚleavesÚest_idrî   rò   Úleave_indicators                 rT   Útest_decision_pathr.  ˆ  sH  € ä”X€q€AØ—‘˜‘
€IÜ'¨Ñ-€OÙ
 q°AÀ%ÐVWÔ
X€CØ‡G�GˆAˆq„MØ ×.Ñ.¨qÓ1Ñ€Iˆ{à�?‰?˜1Ñ ¨R¡Ò0Ð0Ð0Ø�?‰?˜1Ñ Ò*Ð*Ð*ÜÜ
�‰�Ó¸3¿?¹?ÖK°a˜qŸw™w×1Ó1ÒKôð
 �Y‰Y�q‹\€FÜ˜Ÿ™ Q™Ó(ò Mˆô " &ª¨F¨Ñ"3Ó4÷
á��1ð �a˜ VÑ,¨qÑ0Ð0Ó1ð
ˆñ 
ô 	" /´2·7±7ÀÔ3KÕLñMùò Lùó
s   Â)E
ÄEc                  óì   — t        j                  dd¬«      \  } }t        t        t        t
        g}|D ]?  } |d¬«      }|j                  | |«       |j                  D ]  }|j                  dk(  rŒJ ‚ ŒA y )NrÃ   r1   r?   r½   )Úmin_impurity_decrease)	r   r   r   r   r   r   rH   r	  r0  )rI   rJ   Úall_estimatorsÚ	EstimatorrÎ   r  s         rT   Útest_min_impurity_decreaser3  ¡  s|   € Ü×$Ñ$¨sÀÔC�D€A€qäÜÜÜð	€Nð $ò 5ˆ	Ù¨cÔ2ˆØ�‰��1ŒØ—O‘Oò 	5ˆDð ×-Ñ-°Ó4Ð4Ð4ñ	5ñ5rV   c                  óf  — t        d¬«      } t        j                  d«      }g d¢}d}t        j                  t
        |¬«      5  | j                  ||«       d d d «       g d¢}d}t        j                  t
        |¬«      5  | j                  ||«       d d d «       y # 1 sw Y   ŒFxY w# 1 sw Y   y xY w)	Nr}   ©rW   )r3   r3   )r0   r1   r3   zNSome value\(s\) of y are negative which is not allowed for Poisson regression.r  )r   r   r   zLSum of y is not strictly positive which is necessary for Poisson regression.)r   r…   r  r    r  r=  rH   )rÎ   rI   rJ   r  s       rT   Útest_poisson_y_positive_checkr6  ³  s£   € Ü
¨)Ô
4€CÜ
�‰�Ó€Aâ€Að	/ð ô 
�‰”z¨Ô	1ñ Ø�‰��1Œ÷ò 	€Að	0ð ô 
�‰”z¨Ô	1ñ Ø�‰��1Œ÷ð ÷ð ú÷ð ús   ÁBÁ?B'ÂB$Â'B0c                   ó(   ‡ — e Zd Zˆ fd„Zˆ fd„Zˆ xZS )Ú	MyBackendc                 ó2   •— d| _         t        ‰| �  |i |¤Ž y )Nr   )râ   ÚsuperÚ__init__)ÚselfÚargsrí  re  s      €rT   r;  zMyBackend.__init__Ê  s   ø€ ØˆŒ
Ü‰Ñ˜$Ð) &Ó)rV   c                 óJ   •— | xj                   dz  c_         t        ‰| �	  «       S )Nr1   )râ   r:  Ú
start_call)r<  re  s    €rT   r?  zMyBackend.start_callÎ  s   ø€ Ø�
Š
�a‰�
Ü‰wÑ!Ó#Ð#rV   )Ú__name__Ú
__module__Ú__qualname__r;  r?  Ú__classcell__)re  s   @rT   r8  r8  É  s   ø„ ô*÷$ð $rV   r8  Útestingc                  ót  — t        dd¬«      } t        j                  d«      5 \  }}| j                  t        t
        «       d d d «       j                  dkD  sJ ‚t        j                  d«      5 \  }}| j                  t        «       d d d «       |j                  dk(  sJ ‚y # 1 sw Y   ŒbxY w# 1 sw Y   Œ'xY w)Nr5   r2   )rE   r¿   rD  r   )r   ÚjoblibÚparallel_backendrH   rI   rJ   râ   r³   )rR   Úbar¿   Ú_s       rT   Útest_backend_respectedrJ  Ö  s¡   € ä
 ¨b¸Ô
;€Cä	×	 Ñ	  Ó	+ð ©|°°FØ�‰””1Œ÷ð �8‰8�aŠ<Ðˆ<ô 
×	 Ñ	  Ó	+ð ©w°°AØ×Ñœ!Ô÷ð �8‰8�qŠ=Ð‰=÷ð ú÷ð ús   £B"Á/B.Â"B+Â.B7c                  óÈ   — t        dddd¬«      \  } }t        ddd¬«      j                  | |«      }t        j                  d|j
                  j                  «       d	¬
«      sJ ‚y )Nr  r3   r1   )r6   r8   r<   r  rh   rq   éÈ   )r   r<   rE   gH¯¼šò×z>)Úabs_tol)r   r   rH   ÚmathÚiscloserÇ   rŸ   )rI   rJ   rR   s      rT   Ú#test_forest_feature_importances_sumrP  æ  sa   € ÜØ A°AÀô�D€A€qô !Ø¨¸#ôç	�cˆ!ˆQƒið ô �<‰<˜˜3×3Ñ3×7Ñ7Ó9À4ÕHÐHÑHrV   c                  ó  — t        j                  d«      } t        j                  d«      }t        d¬«      j	                  | |«      }t        |j                  t        j                  dt         j                  ¬«      «       y )N)r5   r5   )r5   r5   r  rå   )r…   r  r´   r   rH   r&   rÇ   Úfloat64)rI   rJ   Úgbrs      rT   Ú*test_forest_degenerate_feature_importancesrT  ð  sS   € ä
�‰�Ó€AÜ
�‰�‹€AÜ
¨RÔ
0×
4Ñ
4°Q¸Ó
:€CÜ�s×/Ñ/´·±¸"ÄBÇJÁJÔ1OÕPrV   c                 ó¼   — t        |    dd¬«      }d}t        j                  t        |¬«      5  |j	                  t
        t        «       d d d «       y # 1 sw Y   y xY w)NFr^   ©rž   rD  zl`max_sample` cannot be set if `bootstrap=False`. Either switch to `bootstrap=True` or set `max_sample=None`.r  )rA   r    r  r=  rH   rI   rJ   )rB   rÎ   r  s      rT   Útest_max_samples_bootstraprW  ø  sQ   € ô (¨Ñ
-¸È3Ô
O€Cð	ð ô
 
�‰”z¨Ô	1ñ Ø�‰””1Œ÷÷ ñ ús   ®AÁAc                 óÎ   — t        |    dt        d«      ¬«      }d}t        j                  t        |¬«      5  |j                  t        t        «       d d d «       y # 1 sw Y   y xY w)NTg    eÍÍArV  z=`max_samples` must be <= n_samples=6 but got value 1000000000r  )rA   rØ   r    r  r=  rH   rI   rJ   )rB   rÎ   r  s      rT   Ú test_large_max_samples_exceptionrY    sN   € ô (¨Ñ
-¸Ì#ÈcË(Ô
S€CØK€EÜ	�‰”z¨Ô	/ñ Ø�‰””1Œ÷÷ ñ ús   ·AÁA$c                 ój  — t        t        t        ddd¬«      \  }}}}t        |    ddd¬«      }|j	                  ||«      j                  |«      }t        |    dd d¬«      }|j	                  ||«      j                  |«      }t        ||«      }	t        ||«      }
|	t        j                  |
«      k(  sJ ‚y )Nr/  r´  r   )Ú
train_sizer|   r<   TrÝ   ©rž   rD  r<   )	r   rk   rl   rj   rH   rK   r   r    r¡   )rB   r‘   r’   r“   r”   Ú
ms_1_modelÚms_1_predictÚms_None_modelÚms_None_predictÚms_1_msÚ
ms_None_mss              rT   Ú$test_max_samples_boundary_regressorsrc    s¹   € ä'7ÜŒu °À!ô(Ñ$€GˆV�W˜fô # 4Ñ(Ø C°aô€Jð —>‘> '¨7Ó3×;Ñ;¸FÓC€Lä% dÑ+Ø D°qô€Mð $×'Ñ'¨°Ó9×AÑAÀ&ÓI€Oä  ¨vÓ6€GÜ# O°VÓ<€Jà”f—m‘m JÓ/Ò/Ð/Ñ/rV   c                 óL  — t        t        t        dt        ¬«      \  }}}}t        |    ddd¬«      }|j	                  ||«      j                  |«      }t        |    dd d¬«      }|j	                  ||«      j                  |«      }t        j                  j                  ||«       y )Nr   )r<   ÚstratifyTrÝ   r\  )	r   rÄ   rÆ   rG   rH   r³   r…   rD  r#   )	rB   r‘   r’   r“   rI  r]  Ú
ms_1_probar_  Úms_None_probas	            rT   Ú%test_max_samples_boundary_classifiersrh  $  sœ   € ä"2Ü” q´7ô#Ñ€GˆV�W˜aô $ DÑ)Ø C°aô€Jð —‘ ¨Ó1×?Ñ?ÀÓG€Jä& tÑ,Ø D°qô€Mð "×%Ñ% g¨wÓ7×EÑEÀfÓM€Mä‡J�J×Ñ˜z¨=Õ9rV   Úcsr_containerc                 óÀ   — g d¢g} | g d¢g«      }t        «       }d}t        j                  t        |¬«      5  |j	                  ||«       d d d «       y # 1 sw Y   y xY w)Nr§   r¨   z3sparse multilabel-indicator for y is not supported.r  )r   r    r  r=  rH   )ri  rI   rJ   rÎ   Úmsgs        rT   Útest_forest_y_sparserl  7  sR   € â	ˆ€AÙ’y�kÓ"€AÜ
 Ó
"€CØ
?€CÜ	�‰”z¨Ô	-ñ Ø�‰��1Œ÷÷ ñ ús   ¸AÁAÚForestClassc                 óª  — t         j                  j                  d«      }|j                  dd«      }|j                  d«      dkD  } | d|d ¬«      } | d|d¬«      }|j	                  ||«       |j	                  ||«       |j
                  d   j                  }|j
                  d   j                  }d}|j                  |j                  kD  sJ |«       ‚y )Nr1   i'  r2   r   )rE   r<   rD  z=Tree without `max_samples` restriction should have more nodes)r…   r†   r‡   r¡  rH   r	  r  r'  )	rm  r�   rI   rJ   Úest1Úest2Útree1Útree2rk  s	            rT   Ú'test_little_tree_with_small_max_samplesrs  A  sÏ   € ä
�)‰)×
Ñ
 Ó
"€Cà�	‰	�%˜Ó€AØ�	‰	�%Ó˜1Ñ€Añ ØØØô€Dñ ØØØô€Dð 	‡H�HˆQ�„NØ‡H�HˆQ�„Nà×Ñ˜QÑ×%Ñ%€EØ×Ñ˜QÑ×%Ñ%€Eà
I€CØ×Ñ˜e×.Ñ.Ò.Ð3°Ó3Ñ.rV   ÚForestc                 óº   — ddl m} t        j                  dd«      }|j                  \  }} |||«      }t        |    dd|¬«      }|j                  t        |«       y )Nr   )ÚMSEr0   r1   r2   )rE   r¿   rW   )Úsklearn.tree._criterionrv  rl   rF  rP   rj   rH   rk   )rt  rv  rJ   r6   Ú	n_outputsÚmse_criterionrÎ   s          rT   Ú-test_mse_criterion_object_segfault_smoke_testrz  `  sR   € õ ,ä�‰�b˜!Ó€AØŸ7™7Ñ€IˆyÙ˜	 9Ó-€MÜ
˜FÑ
#°¸1ÈÔ
V€Cà‡G�GŒE�1ÕrV   c                  ó@  — t         j                  j                  d«      } t        j                  | j	                  dd«      «      }t        dddd¬«      j                  |«      }|j                  «       }dD ��cg c]  \  }}d|› d	|› �‘Œ }}}t        ||«       y
c c}}w )z3Check feature names out for Random Trees Embedding.r   rÃ   r©   r2   F)rE   r±   r€  r<   ))r   r2   )r   r3   )r   rh   )r   ri   rX  )r1   r3   )r1   rh   )r1   ri   Úrandomtreesembedding_rI  N)	r…   r†   r‡   rË   r¡  r   rH   Úget_feature_names_outr&   )r<   rI   r‡  Únamesr  ÚleafÚexpected_namess          rT   Ú-test_random_trees_embedding_feature_names_outr�  p  s£   € ä—9‘9×(Ñ(¨Ó+€LÜ
�‰ˆ|×!Ñ! # qÓ)Ó*€AÜ!Ø !°5Àqôç	�cˆ!ƒfð ð ×(Ñ(Ó*€Eð
	
÷	ñ ˆD�$ð   ˜v Q t fÒ-ð€Nñ ô �~ uÕ-ùós   Á8Bc                 ó&  — |j                  t        j                  j                  dt	        t
        d¬«      «       t        j                  j                  d¬«      }t        dd|¬«      \  }} | |d¬	«      }t        d
|¬«      }t        |||d
¬«       y)z–RandomForestClassifier must work on readonly sparse data.

    Non-regression test for: https://github.com/scikit-learn/scikit-learn/issues/25333
    r-   rÃ   )Ú
max_nbytesr   )ÚseedrL  r=   Tr»   r2   )r¿   r<   )ÚcvN)ÚsetattrÚsklearnÚensembleÚ_forestr   r-   r…   r†   r‡   r   r   r   )ri  Úmonkeypatchr�   rI   rJ   rR   s         rT   Útest_read_only_bufferr‹  Š  s   € ð ×ÑÜ×Ñ× Ñ ØÜ” SÔ)ôô
 �)‰)×
Ñ
 QÐ
Ó
'€Cä¨¸È3ÔO�D€A€qÙ�a˜dÔ#€Aä
 ¨¸Ô
<€CÜ�C˜˜A !Ö$rV   rö  r   c                 óx   — t        j                  d¬«      \  }}t        dd| d¬«      }|j                  ||«       y)z^Check low max_samples works and is rounded to one.

    Non-regression test for gh-24037.
    T)Ú
return_X_yr5   g-Cëâ6?r   )rE   rD  rö  r<   N)r   Ú	load_winer   rH   )rö  rI   rJ   rY  s       rT   Ú.test_round_samples_to_one_when_samples_too_lowr�  ž  s<   € ô ×Ñ¨Ô.�D€A€qÜ#Ø T¸ÐSTô€Fð ‡J�Jˆq�!ÕrV   r„  rž   c                 ó|  — t        dd¬«      \  }}|rd}nd} | d|d||¬«      }|j                  ||«       |j                  j                  «       }t	        ||j                  «       |j
                  }t        |t        «      sJ ‚t        |«      t        |«      k(  sJ ‚|d   j                  t        j                  k(  sJ ‚t        t        |«      «      D ]{  }	|rRt        ||	   «      t        |«      d	z  k(  sJ ‚t        t        j                  ||	   «      «      t        ||	   «      k  rŒUJ ‚t        t        ||	   «      «      t        |«      k(  rŒ{J ‚ d}
||
   }||
   }||   }||   }|j                  j                   }t#        |«      }|j                  ||«       |j                  j                   }t%        ||«       y)
z›Estimators_samples_ property should be consistent.

    Tests consistency across fits and whether or not the seed for the random generator
    is set.
    rL  r1   r?   r^   Nr5   )rE   rD  rF   r<   rž   r   r2   )r   rH   Úestimators_samples_r¼   r&   r	  r…  ræ   rN   r·   r…   Úint32rç   ré   r'  r  Úvaluer   r#   )rm  rž   r„  rI   rJ   rD  rÎ   Úestimators_samplesÚ
estimatorsrî   Úestimator_indexÚestimator_samplesr9  r‘   r“   Úorig_tree_valuesÚnew_tree_valuess                    rT   Útest_estimators_samplesrš  «  sÂ  € ô  c¸Ô:�D€A€qáØ‰àˆÙ
ØØØØØô€Cð ‡G�GˆAˆq„Mà×0Ñ0×5Ñ5Ó7Ðô Ð)¨3×+BÑ+BÔCØ—‘€JäÐ(¬$Ô/Ð/Ð/ÜÐ!Ó"¤c¨*£oÒ5Ð5Ð5Ø˜aÑ ×&Ñ&¬"¯(©(Ò2Ð2Ð2ä”3�z“?Ó#ò =ˆÙÜÐ)¨!Ñ,Ó-´°Q³¸1±Ò<Ð<Ð<ô ”r—y‘yÐ!3°AÑ!6Ó7Ó8¼3Ð?QÐRSÑ?TÓ;UÓUÐUÐUä”sÐ-¨aÑ0Ó1Ó2´c¸!³fÓ<Ð<Ð<ð=ð €OØ*¨?Ñ;ÐØ˜?Ñ+€IàÐ!Ñ"€GØÐ!Ñ"€Gà —‘×,Ñ,ÐÜ�iÓ €IØ‡M�M�'˜7Ô#Ø—o‘o×+Ñ+€OÜÐ$ oÕ6rV   zmake_data, Forestc                 óP  — t         j                  j                  d«      }d\  }} | |||¬«      \  }}|j                  «       }t         j                  ||j                  ddg|j                  ddg¬«      <   t        j                  |«      j                  «       sJ ‚t        ||d¬	«      \  }}	}
} ||d
¬«      }|j                  ||
«       |j                  |	|«      }t        ||d¬	«      \  }}}
} ||d
¬«      }|j                  ||
«       |j                  ||«      }|d|z  k\  sJ ‚y)zJCheck that forest can deal with missing values and has decent performance.r   )r  r5   r=   FTçffffffî?rº   ©rv   rã   r¤   r1  )r<   rE   r„   N)r…   r†   r‡   r¼   ÚnanÚchoicerP   ÚisnanÚanyr   rH   rb   )Ú	make_datart  r�   r6   r7   rI   rJ   Ú	X_missingÚX_missing_trainÚX_missing_testr“   r”   Úforest_with_missingÚscore_with_missingr‘   r’   rY  Úscore_without_missings                     rT   Ú test_missing_values_is_resilientr©  ä  s+  € ô �)‰)×
Ñ
 Ó
"€CØ$Ñ€IˆzÙ˜y°ZÈcÔR�D€A€qð —‘“€IÜIKÏÉ€Iˆc�j‰j˜% ˜¨Q¯W©W¸¸t¸ˆjÓEÑFÜ�8‰8�IÓ×"Ñ"Ô$Ð$Ð$ä7GØ�1 1ô8Ñ4€O�^ W¨fñ
 !¨cÀÔCÐØ×Ñ˜O¨WÔ5Ø,×2Ñ2°>À6ÓJÐô (8¸¸1È1Ô'MÑ$€GˆV�W˜fÙ °2Ô6€FØ
‡J�Jˆw˜Ô Ø"ŸL™L¨°Ó8Ðð  Ð(=Ñ!=Ò=Ð=Ñ=rV   c                 ó¼  — t         j                  j                  d«      }d}d}|j                  |df¬«      }|j	                  dd|¬«      }|j                  dd	g|d
dg¬«      }|j                  t        «      }||    ||<   |j                  |¬«      }t         j                  ||<   t        j                  |«      j                  «       sJ ‚|j                  «       }	||	dd…df<   t        |	||d¬«      \  }
}}}}} | d¬«      j                  |
|«      } | d¬«      j                  ||«      }|j                  ||«      }||k\  sJ ‚||j                  ||«      k\  sJ ‚y)z_Check that the forest learns when missing values are only present for
    a predictive feature.r   r  g      è?r5   r©  r2   )ru   rv   FTrœ  rº   r�  Nrh   r¤   )r…   r†   r‡   Ústandard_normalrÊ   rŸ  rÅ   rê   rž  r   r¡  r¼   r   rH   rb   )rt  r�   r6   Úexpected_scoreÚX_non_predictiverJ   ÚX_random_maskÚy_maskÚpredictive_featureÚX_predictiveÚX_predictive_trainÚX_predictive_testÚX_non_predictive_trainÚX_non_predictive_testr“   r”   Úforest_predictiveÚforest_non_predictiveÚpredictive_test_scores                      rT   Ú test_missing_value_is_predictiver¹    s‡  € ô �)‰)×
Ñ
 Ó
"€CØ€IØ€Nà×*Ñ*°¸B°Ð*Ó@ÐØ�‰�A˜A IˆÓ.€Að —J‘J  t˜}°9ÀÀtÀ�JÓM€MØ�X‰X”d‹^€FØ# MÑ2Ð2€Fˆ=Ñà×,Ñ,°)Ð,Ó<ÐÜ!#§¡Ð�vÑÜ�8‰8Ð&Ó'×+Ñ+Ô-Ð-Ð-à#×(Ñ(Ó*€LØ+€L’�A�Ñô 	˜Ð'7¸ÈÔKñØØØØØØá¨AÔ.×2Ñ2Ð3EÀwÓOÐÙ"°Ô2×6Ñ6Ð7MÈwÓWÐà-×3Ñ3Ð4EÀvÓNÐà  NÒ2Ð2Ð2Ø Ð$9×$?Ñ$?Ø˜vó%ò ð ñ rV   c                 óú   — t        j                  g d¢t         j                  ddgg«      }ddg} | d¬«      }d}t        j                  t
        |¬	«      5  |j                  ||«       d
d
d
«       y
# 1 sw Y   y
xY w)zDRaise error for unsupported criterion when there are missing values.rø  r   r÷  r^   rÝ   re   r5  z .*does not accept missing valuesr  N)r…   r  rž  r    r  r=  rH   )rt  rI   rJ   rY  rk  s        rT   Ú=test_non_supported_criterion_raises_error_with_missing_valuesr»  >  sl   € ô 	�‰’)œbŸf™f a¨Ð-Ð.Ó/€AØ	ˆcˆ
€AáÐ.Ô/€Fà
,€CÜ	�‰”z¨Ô	-ñ Ø�
‰
�1�aÔ÷÷ ñ ús   ÁA1Á1A:)r  )¶Ú__doc__Ú	itertoolsrN  ra  Úcollectionsr   Ú	functoolsr   r   r   Útypingr   r   Úunittest.mockr	   rF  Únumpyr…   r    Úscipy.specialr
   r‡  r   r   Úsklearn.datasetsr   r   Úsklearn.decompositionr   Úsklearn.dummyr   Úsklearn.ensembler   r   r   r   r   Úsklearn.ensemble._forestr   r   Úsklearn.exceptionsr   Úsklearn.metricsr   r   r   r   Úsklearn.model_selectionr   r   r   Úsklearn.svmr    Úsklearn.tree._classesr!   Úsklearn.utils._testingr"   r#   r$   r%   r&   r'   r(   Úsklearn.utils.fixesr)   r*   r+   Úsklearn.utils.multiclassr,   Úsklearn.utils.parallelr-   Úsklearn.utils.validationr.   rI   rJ   rL   rM   rÄ   rÆ   Ú	load_irisr_   r�   Úpermutationra   rv   Úpermr`   Úmake_regressionrk   rl   rÂ  rÃ  rÅ   Úfloat32ÚparallelÚget_active_backendre  ÚDEFAULT_JOBLIB_BACKENDrG   rj   rá  Údictr@   ÚstrÚ__annotations__Úupdater¼   rA   ÚmarkÚparametrizerU   rc   ro   rœ   r¢   r¬   r¶   rR  ÚchainrÔ   r  r  rï   rš  r-  r4  r:  r>  rA  rP  rV  rZ  r_  rj  rs  rz  r~  r‰  r�  r—  r›  r§  r¿  rÆ  rÏ  rÔ  rÞ  rä  rî  rò  rþ  r  r  r  r  r  r  r  r  r#  r.  r3  r6  r8  Úregister_parallel_backendrJ  rP  rT  rW  rY  rc  rh  rl  rs  rz  r�  r‹  r�  rš  r©  r¹  r»  © rV   rT   ú<module>rä     s7  ðòó Û Û Ý #Ý ß +ß Ý ã Û Û Ý ã ß #ß BÝ .Ý (÷õ ÷õ .÷ó ÷ TÑ SÝ !Ý 2÷÷ ñ ÷ OÑ NÝ 3Ý +Ý 7ð 	ˆ"€X��Bˆx˜"˜b˜ A q 6¨A¨q¨6°A°q°6Ð:€Ú€Øˆ"€X��1ˆv˜˜1�vÐ€Ú€ð 0�8×/Ñ/ØØØØØØØôÑ €ˆð €x×ÑÓ€Ù˜Ó€Ø
‡��t—{‘{×'Ñ'Ó(€Ø�I‰I�d‰O€„	Ø�k‰k˜$Ñ€„ð (ˆx×'Ñ'°#À"ÐSTÔU�€€uð /�X×.Ñ.¸È!ÔLÑ €ˆ(Ø�?‰?˜2Ÿ:™:Ó&€ð  Ÿ™×;Ñ;Ó=¸aÑ@×JÑJÐ ð 1Ø4ñÐ ð /Ø2ñÐ ð Ð0ðÐ ñ %)£FÐ �4˜˜S˜‘>Ó *Ø × Ñ Ð+Ô ,Ø × Ñ Ð*Ô +Ø × Ñ Ð,Ô -à0B×0GÑ0GÓ0IÐ ˜t C¨ H™~Ó IØ × $Ñ $Ð%6Ô 7ð ‡�×Ñ˜Ð!3Ó4ñ<ó 5ð<ð& ‡�×Ñ˜Ð!3Ó4Ø‡�×Ñ˜Ð&:Ó;ñWó <ó 5ðWð" ‡�×Ñ˜Ð!2Ó3Ø‡�×ÑØÐDóñóó 4ðò22/ðj ‡�×Ñ˜Ð&BÓCñ>ó Dð>ð& ‡�×Ñ˜Ð!2Ó3ñ(ó 4ð(ð ‡�×Ñ˜Ð!3Ó4ñ
ó 5ð
ð  ‡�×Ñ˜ 2§:¡:¨r¯z©zÐ":Ó;Ø‡�×ÑØØ€I‡O�OÙÐ" V¨ZÐ$8Ó9ÙÐ!Ò#VÓWóóñ'Hóó <ð'HòTj@ðZ ‡�×Ñ˜Ð!2Ó3ñCó 4ðCð ‡�×ÑÐ+Ð-?×-FÑ-FÓ-HÓIØ‡�×Ñ˜Ò#HÓIØ‡�×ÑØ ð	
Ø)ˆX×)Ñ)°CÀ1ÐSTÔUð	
àñ	
ð	
Ø)ˆX×)Ñ)Ø¨!¸1È1ôð	
ð ñ		
ð �I‰IØ�K‰K˜!‰O˜aÑØð	
ð
	
Ø4ˆX×4Ñ4¸sÐQRÔSð	
àñ	
ð!óð0 ‡�×Ñ˜ t©W°XÀwÔ-OÐ&PÓQñ'Eó Ró1ó Jó Jð6'EðT ‡�×ÑÐ*Ð,=×,DÑ,DÓ,FÓGØ‡�×Ñ˜Ò#HÓIØ‡�×ÑØð	
Ø%ˆX×%Ñ%Ø¨"¸Èôð	
ð ñ		
ð	
Ø%ˆX×%Ñ%Ø¨"¸Èôð	
ð ñ		
ðóð" ‡�×Ñ˜ tÐ-EÐ&FÓGñ%=ó Hó#ó Jó Hð(%=ðP ‡�×ÑÐ*Ð,I×,PÑ,PÓ,RÓSñ
.ó Tð
.ð ‡�×ÑÐ*Ð,I×,PÑ,PÓ,RÓSñ	ó Tð	ð ‡�×ÑÐ+Ð-?×-FÑ-FÓ-HÓIñó Jðð ‡�×ÑÐ*Ð,=×,DÑ,DÓ,FÓGñJó HðJð: ‡�×Ñ˜ t¨U mÓ4ñCó 5ðCð ‡�×Ñ˜Ð!3Ó4ñ$ó 5ð$ð ‡�×Ñ˜Ð!>Ó?ñ)ó @ð)ð, ‡�×Ñ˜Ð!>Ó?ñó @ðð* ‡�×Ñ˜Ð!>Ó?ñ00ó @ð00ðf ‡�×Ñ˜Ð!3Ó4ñ4,ó 5ð4,ðn ‡�×Ñ˜Ð!3Ó4ñ9ó 5ð9ò$
1òLò&1ð. ‡�×Ñ˜¨.Ó9ñPó :ðPò2ò&3ðl ‡�×Ñ˜Ð!2Ó3ñ/ó 4ð/ð ‡�×Ñ˜Ð!2Ó3ñSó 4ðSð& ‡�×Ñ˜Ð!2Ó3ñRó 4ðRð. ‡�×Ñ˜Ð!2Ó3ñ
ó 4ð
ð> ‡�×Ñ˜Ð!2Ó3Ø‡�×ÑØ˜¨Ñ7¸.ÑHóñ
óó 4ð
ð> ‡�×Ñ˜Ð!>Ó?Ø‡�×Ñ˜ 2§:¡:¨r¯z©zÐ":Ó;ñ;ó <ó @ð;ð8 ‡�×Ñ˜Ð!2Ó3ñó 4ðð$ ‡�×Ñ˜Ð!3Ó4ñ,Nó 5ð,Nð^ ‡�×Ñ˜Ð!3Ó4ñó 5ðð ‡�×Ñ˜Ð!3Ó4ñó 5ðð* ‡�×Ñ˜Ð!2Ó3ñó 4ðð8 ‡�×Ñ˜Ð!2Ó3ñ<ó 4ð<ð" ‡�×Ñ˜Ð!2Ó3ñó 4ðð ‡�×Ñ˜Ð!2Ó3ñ5ó 4ð5ð2 ‡�×Ñ˜Ð!>Ó?ñ/.ó @ð/.ðd ‡�×Ñ˜Ð!>Ó?ñ?ó @ð?ó("ð ‡�×Ñ˜Ð!>Ó?ñMó @ðMò05ò$ô,$Ð&ô $ð !€×  Ò   ¨IÔ 6ð ñó ðòIòQð ‡�×Ñ˜Ð!>Ó?ñ	ó @ð	ð ‡�×Ñ˜Ð!>Ó?ñó @ðð ‡�×Ñ˜Ð!2Ó3ñ0ó 4ð0ð* ‡�×Ñ˜Ð!3Ó4ñ:ó 5ð:ð$ ‡�×Ñ˜¨.Ó9ñó :ðð ‡�×Ñ˜Ð)?ÐAVÐ(WÓXñ4ó Yð4ð< ‡�×Ñ˜Ð#4Ó5ñó 6ðò.ð4 ‡�×Ñ˜¨.Ó9ñ%ó :ð%ð& ‡�×Ñ˜Ð*>ÀÐ)EÓFñ	ó Gð	ð ‡�×Ñ˜ $¨ Ó+Ø‡�×Ñ˜ t¨U mÓ4Ø‡�×Ñ˜Ð(E×(LÑ(LÓ(NÓOñ37ó Pó 5ó ,ð37ðl ‡�×ÑØà	×	!Ñ	!Ð#8Ð9Ø	×	%Ñ	%Ð'=Ð>Ø	×	!Ñ	!Ð#6Ð7Ø	×	%Ñ	%Ð';Ð<ð	óñ>óð>ð> ‡�×ÑØàØØØð	óñ&óð&ðR ‡�×Ñ˜Ð#4×#;Ñ#;Ó#=Ó>ñ	ó ?ñ	rV   