§
    qŠtjï ã                   ó6  — 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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' ddl(m)Z) ddl*m+Z+ ddl,m-Z-m.Z.m/Z/m0Z0 ddl1m2Z2m3Z3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@ ddlAmBZBmCZCmDZD ddlEmFZF ddlGmHZH ddlImJZJ ddgddgddgddgddgddggZKg d¢ZLddgddgddggZMg d ¢ZN ej        d!d"dddd#d¬$¦  «        \  ZOZP ejQ        ¦   «         ZR eJd¦  «        ZSeS T                    eRjU        jV        ¦  «        ZWeRjX        eW         eR_X        eRjU        eW         eR_U         ej        d!d"d¬%¦  «        \  ZYZZ ej        d&d¬'¦  «        \  Z[Z\e[ ]                    ej^        ¦  «        Z[ej_         `                    ¦   «         d         ja        Zbe!e#d(œZce"e$d)œZdd*e%iZe ef¦   «         Zgeehef         eid+<   eg j                    ec¦  «         eg j                    ed¦  «         eg j                    ee¦  «         ec k                    ¦   «         Zleehef         eid,<   el j                    ed¦  «         d-Zmd.Znejo         p                    d/ec¦  «        d0„ ¦   «         Zqejo         p                    d/ec¦  «        ejo         p                    d1d-¦  «        d2„ ¦   «         ¦   «         Zrejo         s                    d3¦  «        ejo         p                    d/ed¦  «        ejo         p                    d1d4¦  «        d5„ ¦   «         ¦   «         ¦   «         Ztd6„ Zuejo         p                    d1d7¦  «        d8„ ¦   «         Zvejo         p                    d/ed¦  «        d9„ ¦   «         Zwejo         p                    d/ec¦  «        d:„ ¦   «         Zxejo         p                    d;ejy        ej^        f¦  «        ejo         p                    d< ejz         e	ecd=d>g¦  «         e	edd?d@g¦  «        ¦  «        ¦  «        dA„ ¦   «         ¦   «         Z{dB„ Z|ejo         p                    d/eg¦  «        dC„ ¦   «         Z}ejo         p                    dDec ~                    ¦   «         ¦  «        ejo         p                    dEg dF¢¦  «        ejo         p                    dGg  ej        dHdd¬I¦  «        ¢dJ‘R g  ej        dKddLd¬M¦  «        ¢dN‘R eRjX        eRjU        dz  dz   dNfg  ej        dHd¬'¦  «        ¢dO‘R g¦  «        ejo         p                    dPdQ ee.dR¬S¦  «        g¦  «        dT„ ¦   «         ¦   «         ¦   «         ¦   «         Z€ejo         p                    dUed ~                    ¦   «         ¦  «        ejo         p                    dEg dF¢¦  «        ejo         p                    dVg  ej        d!d"dd¬W¦  «        ¢dX‘R g  ej        d!d"dd¬W¦  «        ¢dY‘R g¦  «        ejo         p                    dPdQe-g¦  «        dZ„ ¦   «         ¦   «         ¦   «         ¦   «         Z�ejo         p                    d[el ~                    ¦   «         ¦  «        d\„ ¦   «         Z‚ejo         p                    d[el ~                    ¦   «         ¦  «        d]„ ¦   «         Zƒejo         p                    dDec ~                    ¦   «         ¦  «        d^„ ¦   «         Z„ejo         p                    dUed ~                    ¦   «         ¦  «        d_„ ¦   «         Z…ejo         p                    dPdQd#g¦  «        d`„ ¦   «         Z†ejo         p                    d/ec¦  «        da„ ¦   «         Z‡ejo         p                    d/el¦  «        db„ ¦   «         Zˆejo         p                    d/el¦  «        dc„ ¦   «         Z‰ejo         p                    d/el¦  «        dd„ ¦   «         ZŠejo         p                    d/ec¦  «        de„ ¦   «         Z‹ejo         p                    d/ec¦  «        df„ ¦   «         ZŒdg„ Z�dh„ ZŽdi„ Z�ejo         p                    djeC¦  «        dk„ ¦   «         Z�dl„ Z‘dm„ Z’ejo         p                    d/eg¦  «        dn„ ¦   «         Z“ejo         p                    d/eg¦  «        do„ ¦   «         Z”ejo         p                    d/eg¦  «        dp„ ¦   «         Z•ejo         p                    d/eg¦  «        dq„ ¦   «         Z–ejo         p                    d/eg¦  «        ejo         p                    dreBeCz   eDz   ¦  «        ds„ ¦   «         ¦   «         Z—ejo         p                    d/el¦  «        ejo         p                    d;ejy        ej^        f¦  «        dt„ ¦   «         ¦   «         Z˜ejo         p                    d/eg¦  «        du„ ¦   «         Z™ejo         p                    d/ec¦  «        ejo         p                    dvg dw¢¦  «        dx„ ¦   «         ¦   «         Zšejo         p                    d/ec¦  «        ejo         p                    dydQd#g¦  «        dz„ ¦   «         ¦   «         Z›ejo         p                    d/ec¦  «        d{„ ¦   «         Zœejo         p                    d/ec¦  «        d|„ ¦   «         Z�ejo         p                    d/eg¦  «        d}„ ¦   «         Zžejo         p                    d/eg¦  «        d~„ ¦   «         ZŸejo         p                    d/eg¦  «        d„ ¦   «         Z ejo         p                    d/eg¦  «        d€„ ¦   «         Z¡ejo         p                    d/el¦  «        d�„ ¦   «         Z¢ejo         p                    d/el¦  «        d‚„ ¦   «         Z£d£d„„Z¤ejo         p                    d/el¦  «        d…„ ¦   «         Z¥d†„ Z¦d‡„ Z§ G dˆ„ d‰eb¦  «        Z¨ ej©        dŠe¨¦  «         ejo        jª        e@d‹„ ¦   «         ¦   «         Z«dŒ„ Z¬d�„ Z­ejo         p                    d/el¦  «        dŽ„ ¦   «         Z®ejo         p                    d/el¦  «        d�„ ¦   «         Z¯ejo         p                    d/ed¦  «        d�„ ¦   «         Z°ejo         p                    d/ec¦  «        d‘„ ¦   «         Z±ejo         p                    d’eD¦  «        d“„ ¦   «         Z²ejo         p                    d”e#e$g¦  «        d•„ ¦   «         Z³ejo         p                    d–ed¦  «        d—„ ¦   «         Z´d˜„ Zµejo         p                    d’eD¦  «        d™„ ¦   «         Z¶ejo         p                    dšd›dg¦  «        dœ„ ¦   «         Z·ejo         p                    d�ddg¦  «        ejo         p                    dydQd#g¦  «        ejo         p                    d”el ~                    ¦   «         ¦  «        dž„ ¦   «         ¦   «         ¦   «         Z¸ejo         s                    d3¦  «        ejo         p                    dŸg  e	ed ~                    ¦   «         en¦  «        ¢ e	ec ~                    ¦   «         em¦  «        ¢¦  «        d „ ¦   «         ¦   «         Z¹ejo         s                    d3¦  «        ejo         p                    dŸg  e	ed ~                    ¦   «         en¦  «        ¢ e	ec ~                    ¦   «         em¦  «        ¢¦  «        d¡„ ¦   «         ¦   «         Zºejo         p                    d–ed ~                    ¦   «         ¦  «        d¢„ ¦   «         Z»dS )¤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Úmake_regression)ÚTruncatedSVD)ÚDummyRegressor)ÚExtraTreesClassifierÚExtraTreesRegressorÚRandomForestClassifierÚRandomForestRegressorÚRandomTreesEmbedding)Ú_get_n_samples_bootstrap)Ú_generate_unsampled_indices)Ú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éþÿÿÿéÿÿÿÿé   é   )r1   r1   r1   r2   r2   r2   é   )r1   r2   r2   éô  é
   F)Ú	n_samplesÚ
n_featuresÚn_informativeÚn_redundantÚ
n_repeatedÚshuffleÚrandom_state©r7   r8   r=   é   ©r7   r=   )r   r   )r   r   r   ÚFOREST_ESTIMATORSÚFOREST_CLASSIFIERS_REGRESSORS)ÚginiÚlog_loss)Úsquared_errorÚabsolute_errorÚfriedman_mseÚpoissonÚnamec                 ó^  — t           |          } |dd¬¦  «        }|                     t          t          ¦  «         t	          |                     t          ¦  «        t          ¦  «         dt          |¦  «        k    sJ ‚ |ddd¬¦  «        }|                     t          t          ¦  «         t	          |                     t          ¦  «        t          ¦  «         dt          |¦  «        k    sJ ‚| 	                    t          ¦  «        }|j
        t          t          ¦  «        |j        fk    sJ ‚dS )z&Check classification on a toy dataset.r6   r2   ©Ún_estimatorsr=   )rL   Úmax_featuresr=   N)ÚFOREST_CLASSIFIERSÚfitÚXÚyr'   ÚpredictÚTÚtrue_resultÚlenÚapplyÚshaperL   )rI   ÚForestClassifierÚclfÚleaf_indicess       ú`/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sklearn/ensemble/tests/test_forest.pyÚtest_classification_toyr\   z   sð   € õ *¨$Ô/Ðà
Ð
¨¸Ð
;Ñ
;Ô
;€CØ‡G‚G�A�q�M„M€MÝ�s—{’{¥1‘~”~¥{Ñ3Ô3Ð3Ø•�S‘”Š>ˆ>ˆ>ˆ>à
Ð
¨¸ÈÐ
KÑ
KÔ
K€CØ‡G‚G�A�q�M„M€MÝ�s—{’{¥1‘~”~¥{Ñ3Ô3Ð3Ø•�S‘”Š>ˆ>ˆ>ˆ>ð —9’9�Q‘<”<€LØÔ¥#¥a¡&¤&¨#Ô*:Ð!;Ò;Ð;Ð;Ð;Ð;Ð;ó    Ú	criterionc                 óþ  — t           |          } |d|d¬¦  «        }|                     t          j        t          j        ¦  «         |                     t          j        t          j        ¦  «        }|dk    sJ d||fz  ¦   «         ‚ |d|dd¬¦  «        }|                     t          j        t          j        ¦  «         |                     t          j        t          j        ¦  «        }|dk    sJ d||fz  ¦   «         ‚d S )	Nr6   r2   ©rL   r^   r=   çÍÌÌÌÌÌì?z'Failed with criterion %s and score = %fr3   ©rL   r^   rM   r=   ç      à?)rN   rO   ÚirisÚdataÚtargetÚscore)rI   r^   rX   rY   rg   s        r[   Útest_iris_criterionrh   Ž   sè   € õ *¨$Ô/Ðà
Ð
¨°iÈaÐ
PÑ
PÔ
P€CØ‡G‚G�DŒI•t”{Ñ#Ô#Ð#Ø�IŠI•d”i¥¤Ñ-Ô-€EØ�3Š;ˆ;ˆ;ÐAÀYÐPUÐDVÑV‰;Œ;ˆ;à
Ð
Ø 9¸1È1ðñ ô €Cð ‡G‚G�DŒI•t”{Ñ#Ô#Ð#Ø�IŠI•d”i¥¤Ñ-Ô-€EØ�3Š;ˆ;ˆ;ÐAÀYÐPUÐDVÑV‰;Œ;ˆ;ˆ;ˆ;r]   z%ignore:.*friedman_mse.*:FutureWarning)rE   rG   rF   c                 ó®  — t           |          } |d|d¬¦  «        }|                     t          t          ¦  «         |                     t          t          ¦  «        }|dk    sJ d||fz  ¦   «         ‚ |d|dd¬¦  «        }|                     t          t          ¦  «         |                     t          t          ¦  «        }|dk    sJ d	||fz  ¦   «         ‚d S )
Né   r2   r`   gÃõ(\�Âí?z:Failed with max_features=None, criterion %s and score = %fé   rb   gq=
×£pí?z7Failed with max_features=6, criterion %s and score = %f)ÚFOREST_REGRESSORSrO   ÚX_regÚy_regrg   )rI   r^   ÚForestRegressorÚregrg   s        r[   Útest_regression_criterionrq   ¢   så   € õ (¨Ô-€Oà
ˆ/ q°IÈAÐ
NÑ
NÔ
N€CØ‡G‚G�E•5ÑÔÐØ�IŠI•e�UÑ#Ô#€EØ�4Š<ˆ<ˆ<ØDàØð
ñ	
ñ Œ<ˆ<ð ˆ/Ø )¸!È!ðñ ô €Cð ‡G‚G�E•5ÑÔÐØ�IŠI•e�UÑ#Ô#€EØ�4Š<ˆ<ˆ<ÐRØØðVñ ‰<Œ<ˆ<ˆ<ˆ<r]   c            	      ó¢  — t           j                             d¦  «        } d\  }}}t          j        ||z   || ¬¦  «        }|                      dd|¬¦  «        t          j        |d¬¦  «        z  }|                      t          j        ||z  ¦  «        ¬	¦  «        }t          |||| ¬
¦  «        \  }}}	}
t          ddd| ¬¦  «        }t          ddd| ¬¦  «        }|                     ||	¦  «         |                     ||	¦  «         t          d¬¦  «                             ||	¦  «        }||	df||
dffD ]œ\  }}}t          ||                     |¦  «        ¦  «        }t          |t          j        |                     |¦  «        dd¦  «        ¦  «        }t          ||                     |¦  «        ¦  «        }|dk    r||k     sJ ‚|d|z  k     sJ ‚Œ�dS )zžTest that random forest with poisson criterion performs better than
    mse for a poisson target.

    There is a similar test for DecisionTreeRegressor.
    é*   ©r5   r5   r6   r>   r0   r3   ©ÚlowÚhighÚsizer   ©Úaxis©Úlam©Ú	test_sizer=   rH   r6   Úsqrt)r^   Úmin_samples_leafrM   r=   rE   Úmean)ÚstrategyÚtrainÚtestg�íµ ÷Æ°>Nçš™™™™™é?)ÚnpÚrandomÚRandomStater   Úmake_low_rank_matrixÚuniformÚmaxrH   Úexpr    r   rO   r   r   rR   Úclip)ÚrngÚn_trainÚn_testr8   rP   ÚcoefrQ   ÚX_trainÚX_testÚy_trainÚy_testÚ
forest_poiÚ
forest_mseÚdummyÚ	data_nameÚ
metric_poiÚ
metric_mseÚmetric_dummys                     r[   Útest_poisson_vs_mser�   Á   s  € õ Œ)×
Ò
 Ñ
#Ô
#€CØ".Ñ€GˆV�ZÝÔ%Ø˜FÑ"¨zÈð	ñ 	ô 	€Að
 �;Š;˜2 A¨Jˆ;Ñ7Ô7½"¼&ÀÈÐ:KÑ:KÔ: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ÔA€Eà$ g¨wÐ7¸&À&È&Ð9QÐRð /ð /‰ˆˆ1ˆiÝ*¨1¨j×.@Ò.@ÀÑ.CÔ.CÑDÔDˆ
õ +Ø�rŒw�z×)Ò)¨!Ñ,Ô,¨d°DÑ9Ô9ñ
ô 
ˆ
õ -¨Q°·²¸aÑ0@Ô0@ÑAÔAˆð ˜ÒÐØ 
Ò*Ð*Ð*Ð*Ø˜C ,Ñ.Ò.Ð.Ð.Ð.Ð.ð#/ð /r]   )rH   rE   c                 ó,  — t           j                             d¦  «        }d\  }}}t          j        ||z   ||¬¦  «        }|                     dd|¬¦  «        t          j        |d¬¦  «        z  }|                     t          j        ||z  ¦  «        ¬	¦  «        }t          | d
d|¬¦  «        }| 
                    ||¦  «         t          j        |                     |¦  «        ¦  «        t          j        t          j        |¦  «        ¦  «        k    sJ ‚dS )z9 "Test that sum(y_pred)==sum(y_true) on the training set.rs   rt   r>   r0   r3   ru   r   ry   r{   r6   F)r^   rL   Ú	bootstrapr=   N)r†   r‡   rˆ   r   r‰   rŠ   r‹   rH   rŒ   r   rO   ÚsumrR   ÚpytestÚapprox)	r^   rŽ   r�   r�   r8   rP   r‘   rQ   rp   s	            r[   Ú#test_balance_property_random_forestr£   ö   s  € õ Œ)×
Ò
 Ñ
#Ô
#€CØ".Ñ€GˆV�ZÝÔ%Ø˜FÑ"¨zÈð	ñ 	ô 	€Að �;Š;˜2 A¨Jˆ;Ñ7Ô7½"¼&ÀÈÐ:KÑ:KÔ:KÑK€DØ�Š�œ˜q 4™xÑ(Ô(ˆÑ)Ô)€Aå
Ø¨"¸ÈCðñ ô €Cð ‡G‚GˆAˆq�M„M€MåŒ6�#—+’+˜a‘.”.Ñ!Ô!¥V¤]µ2´6¸!±9´9Ñ%=Ô%=Ò=Ð=Ð=Ð=Ð=Ð=r]   c                 óþ   — t          |          d¬¦  «        }t          |d¦  «        rJ ‚t          |d¦  «        rJ ‚|                     g d¢g d¢gddg¦  «         t          |d¦  «        rJ ‚t          |d¦  «        rJ ‚d S )	Nr   ©r=   Úclasses_Ú
n_classes_©r2   r3   r4   ©é   rj   rk   r2   r3   )rl   ÚhasattrrO   )rI   Úrs     r[   Útest_regressor_attributesr­   
  sœ   € õ 	˜$Ô¨QÐ/Ñ/Ô/€AÝ�q˜*Ñ%Ô%Ð%Ð%Ð%Ý�q˜,Ñ'Ô'Ð'Ð'Ð'à‡E‚Eˆ9ˆ9ˆ9�i�i�iÐ
  1 a &Ñ)Ô)Ð)Ý�q˜*Ñ%Ô%Ð%Ð%Ð%Ý�q˜,Ñ'Ô'Ð'Ð'Ð'Ð'Ð'r]   c           	      óv  — t           |          }t          j        d¬¦  «        5   |dddd¬¦  «        }|                     t          j        t          j        ¦  «         t          t          j        | 	                    t          j        ¦  «        d¬¦  «        t          j
        t          j        j        d         ¦  «        ¦  «         t          | 	                    t          j        ¦  «        t          j        |                     t          j        ¦  «        ¦  «        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NÚignore©Údivider6   r2   )rL   r=   rM   Ú	max_depthry   r   )rN   r†   ÚerrstaterO   rd   re   rf   r&   r    Úpredict_probaÚonesrW   rŒ   Úpredict_log_proba)rI   rX   rY   s      r[   Útest_probabilityr·     sM  € õ *¨$Ô/ÐÝ	Œ˜HÐ	%Ñ	%Ô	%ð 

ð 

ØÐØ¨!¸!Àqð
ñ 
ô 
ˆð 	�Š•”	�4œ;Ñ'Ô'Ð'Ý!ÝŒF�3×$Ò$¥T¤YÑ/Ô/°aÐ8Ñ8Ô8½"¼'Å$Ä)Ä/ÐRSÔBTÑ:UÔ:Uñ	
ô 	
ð 	
õ 	"Ø×Ò�dœiÑ(Ô(­"¬&°×1FÒ1FÅtÄyÑ1QÔ1QÑ*RÔ*Rñ	
ô 	
ð 	
ð

ð 

ð 

ñ 

ô 

ð 

ð 

ð 

ð 

ð 

ð 

ð 

øøøð 

ð 

ð 

ð 

ð 

ð 

s   £C>D.Ä.D2Ä5D2Údtypezname, criterionrC   rD   rE   rF   c                 óÖ  — d}|t           v r|dk    rd}t                               | d¬¦  «        }t                               | d¬¦  «        }t          |         } |d|d¬¦  «        }|                     ||¦  «         |j        }t          j        |d	k    ¦  «        }	|j	        d         dk    sJ ‚|	d
k    sJ ‚t          j
        |d d
…         d	k    ¦  «        sJ ‚|j        }|                     d¬¦  «         |j        }
t          ||
¦  «         t          d¦  «                             ddt          |¦  «        ¦  «        } |dd|¬¦  «        }|                     |||¬¦  «         |j        }t          j
        |dk    ¦  «        sJ ‚dD ]a} |dd|¬¦  «        }|                     ||||z  ¬¦  «         |j        }t          j        ||z
  ¦  «                             ¦   «         |k     sJ ‚Œbd S )Nç{®Gáz„?rF   çš™™™™™©?F©Úcopyr6   r   r`   çš™™™™™¹?r4   r3   ©Ún_jobsr2   )rL   r=   r^   ©Úsample_weightç        )rc   éd   )rl   ÚX_largeÚastypeÚy_largerA   rO   Úfeature_importances_r†   r    rW   ÚallÚ
set_paramsr&   r/   ÚrandintrU   Úabsr�   )r¸   rI   r^   Ú	tolerancerP   rQ   ÚForestEstimatorÚestÚimportancesÚn_importantÚimportances_parallelrÂ   ÚscaleÚimportances_biss                 r[   Útest_importancesrÕ   '  s$  € ð €IØÕ Ð Ð  YÐ2BÒ%BÐ%BØˆ	õ 	�Š�u 5ˆÑ)Ô)€AÝ�Š�u 5ˆÑ)Ô)€Aå'¨Ô-€Oà
ˆ/ r°YÈQÐ
OÑ
OÔ
O€CØ‡G‚GˆAˆq�M„M€MØÔ*€Kõ ”&˜ sÒ*Ñ+Ô+€KØÔ˜QÔ 2Ò%Ð%Ð%Ð%Ø˜!ÒÐÐÐÝŒ6�+˜b˜q˜b”/ CÒ'Ñ(Ô(Ð(Ð(Ð(ð Ô*€KØ‡N‚N˜!€NÑÔÐØÔ3ÐÝ˜kÐ+?Ñ@Ô@Ð@õ ' qÑ)Ô)×1Ò1°!°R½¸Q¹¼Ñ@Ô@€MØ
ˆ/ r¸ÀYÐ
OÑ
OÔ
O€CØ‡G‚GˆAˆq €GÑ.Ô.Ð.ØÔ*€KÝŒ6�+ Ò$Ñ%Ô%Ð%Ð%Ð%àð Hð HˆØˆo¨2¸AÈÐSÑSÔSˆØ�Š��1 E¨MÑ$9ˆÑ:Ô:Ð:ØÔ2ˆÝŒv�k OÑ3Ñ4Ô4×9Ò9Ñ;Ô;¸iÒGÐGÐGÐGÐGð	Hð Hr]   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¬¦  «                             ||¦  «        }t          d„ |j	        D ¦   «         ¦  «        |j
        z  }t           ‰
|¦  «        t          |¦  «        ¦  «         t          j        ||z
  ¦  «                             ¦   «         dk     sJ ‚d S )Nc                 óv   — | dk     s| |k    rdn+t          t          |¦  «        t          | ¦  «        d¬¦  «        S )Nr   T)Úexact)r
   Úint)ÚkÚns     r[   Úbinomialz-test_importances_asymptotic.<locals>.binomial^  s7   € Ø˜’E�E˜Q šU˜Uˆqˆq­­S°©V¬VµS¸±V´VÀ4Ð(HÑ(HÔ(HÐHr]   c                 ó¦   — t          | ¦  «        }d}t          j        | ¦  «        D ]*}d|z  |z  }|dk    r||t          j        |¦  «        z  z  }Œ+|S )NrÃ   ç      ð?r   )rU   r†   ÚbincountÚlog2)Úsamplesr7   ÚentropyÚcountÚps        r[   râ   z,test_importances_asymptotic.<locals>.entropya  s^   € Ý˜‘L”Lˆ	Øˆå”[ Ñ)Ô)ð 	*ð 	*ˆEØ�e‘˜iÑ'ˆAØ�1ŠuˆuØ˜1�rœw q™zœz™>Ñ)�øàˆr]   c           
      óP  •‡‡‡‡— ‰j         \  }}t          t          |¦  «        ¦  «        }|                     | ¦  «         ˆfd„t          |¦  «        D ¦   «         Šd}t          |¦  «        D �]7}d ‰||¦  «        ||z
  z  z  }t	          ||¦  «        D �]Št          ˆˆfd„t          |¦  «        D ¦   «         Ž D ]æ}	t          j        |t          ¬¦  «        }
t          |¦  «        D ]!}|
‰d d …‰|         f         |	|         k    z  }
Œ"‰|
d d …f         ||
         }}t          |¦  «        Š‰dk    rog }‰|          D ]-}|d d …| f         |k    }| 
                    ||         ¦  «         Œ.||d‰z  |z  z   ‰|¦  «        t          ˆˆfd„|D ¦   «         ¦  «        z
  z  z  }Œç�Œ�Œ9|S )Nc                 óL   •— g | ] }t          j        ‰d d …|f         ¦  «        ‘Œ!S )N)r†   Úunique)Ú.0ÚirP   s     €r[   ú
<listcomp>zGtest_importances_asymptotic.<locals>.mdi_importance.<locals>.<listcomp>q  s/   ø€ Ð@Ð@Ð@¨•"”)˜A˜a˜a˜a ˜dœGÑ$Ô$Ð@Ð@Ð@r]   rÃ   rÞ   c                 ó,   •— g | ]}‰‰|                  ‘ŒS © rì   )rè   ÚjÚBÚvaluess     €€r[   rê   zGtest_importances_asymptotic.<locals>.mdi_importance.<locals>.<listcomp>|  s!   ø€ Ð"BÐ"BÐ"B°A 6¨!¨A¬$¤<Ð"BÐ"BÐ"Br]   ©r¸   r   c                 óL   •— g | ] } ‰|¦  «        t          |¦  «        z  ‰z  ‘Œ!S rì   )rU   )rè   Úcrâ   Ún_samples_bs     €€r[   rê   zGtest_importances_asymptotic.<locals>.mdi_importance.<locals>.<listcomp>’  sA   ø€ ð %&ð %&ð %&à,-ð )0¨°©
¬
µS¸±V´VÑ(;¸kÑ(Ið%&ð %&ð %&r]   )rW   ÚlistÚrangeÚpopr   r   r†   rµ   ÚboolrU   Úappendr    )ÚX_mrP   rQ   r7   r8   ÚfeaturesÚimprÚ   r‘   ÚbÚmask_brí   ÚX_Úy_ÚchildrenÚxiÚmask_xirî   ró   rï   rÜ   râ   s    `               @@@€€r[   Úmdi_importancez3test_importances_asymptotic.<locals>.mdi_importancel  s&  øøøøø€ Ø !¤Ñˆ	�:å�˜jÑ)Ô)Ñ*Ô*ˆØ�Š�SÑÔÐØ@Ð@Ð@Ð@­e°JÑ.?Ô.?Ð@Ñ@Ô@ˆàˆå�zÑ"Ô"ð #	ñ #	ˆAà˜(˜( 1 jÑ1Ô1°ZÀ!±^ÑDÑEˆDõ " (¨AÑ.Ô.ð ñ �å Ð"BÐ"BÐ"BÐ"BÐ"B½¸q¹¼Ð"BÑ"BÔ"BÐCð ð �AÝœW YµdÐ;Ñ;Ô;�Få" 1™XœXð 5ð 5˜Ø ! A A A q¨¤t G¤*°°!´Ò"4Ñ4˜˜à˜v q q q˜yœ\¨1¨V¬9˜�BÝ"% b¡'¤'�Kà" Q’�Ø#%˜à"(¨¤+ð 9ð 9˜BØ&(¨¨¨¨C¨¤j°BÒ&6˜GØ$ŸOšO¨B¨w¬KÑ8Ô8Ð8Ð8àØ Ø" [Ñ0°9Ñ<ñ>ð !( ¨¡¤Ý"%ð%&ð %&ð %&ð %&ð %&à19ð%&ñ %&ô %&ñ#"ô #"ñ!"ñ
ñ˜øñ!ñð@ ˆ
r]   )r   r   r2   r   r   r2   r   r2   )r2   r   r2   r2   r2   r   r2   r3   )r2   r   r2   r2   r   r2   r2   r4   )r   r2   r2   r2   r   r2   r   rª   )r2   r2   r   r2   r   r2   r2   rj   )r2   r2   r   r2   r2   r2   r2   rk   )r2   r   r2   r   r   r2   r   é   )r2   r2   r2   r2   r2   r2   r2   é   )r2   r2   r2   r2   r   r2   r2   é	   )r2   r2   r2   r   r2   r2   r2   r   r  rð   r2   r5   rD   r   )rL   rM   r^   r=   c              3   óL   K  — | ]}|j                              d ¬¦  «        V — Œ dS )F)Ú	normalizeN)Útree_Úcompute_feature_importances©rè   Útrees     r[   ú	<genexpr>z.test_importances_asymptotic.<locals>.<genexpr>º  sI   è è € ð 
ð 
àð ŒJ×2Ò2¸UÐ2ÑCÔCð
ð 
ð 
ð 
ð 
ð 
r]   rº   )r†   Úarrayr÷   rW   Úzerosrõ   r   rO   r    Úestimators_rL   r%   rÌ   r�   )r  re   rP   rQ   r8   Útrue_importancesré   rY   rÐ   rÜ   râ   s            @@r[   Útest_importances_asymptoticr  Y  sÿ  øø€ ð
Ið Ið Ið	ð 	ð 	ð.ð .ð .ð .ð .ð .õ` Œ8à$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$Ø$Ð$Ð$ð	
ñô €Dõ Œ8�D˜˜˜˜B˜Q˜B˜”K¥tÐ,Ñ,Ô,¨d°1°1°1°a°4¬j€q€AØ”˜”€Jõ ”x 
Ñ+Ô+Ðå�:ÑÔð 6ð 6ˆØ,˜n¨Q°°1Ñ5Ô5Ð˜ÑÐõ Ø q°JÈQðñ ô ç	‚cˆ!ˆQ�i„ið õ
 	ð 
ð 
àœð
ñ 
ô 
ñ 	
ô 	
ð Ô
ñ		ð õ ˜˜ ™
œ
¥C¨Ñ$4Ô$4Ñ5Ô5Ð5ÝŒ6Ð" [Ñ0Ñ1Ô1×6Ò6Ñ8Ô8¸4Ò?Ð?Ð?Ð?Ð?Ð?r]   c                 óÜ   — d                      | ¦  «        }t          j        t          |¬¦  «        5  t	          t          |          ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NzfThis {} instance is not fitted yet. Call 'fit' with appropriate arguments before using this estimator.©ÚmatchrÈ   )Úformatr¡   Úraisesr   ÚgetattrrA   )rI   Úerr_msgs     r[   Ú!test_unfitted_feature_importancesr  Æ  sÃ   € ð	=ß=CºVÀD¹\¼\ð õ 
Œ•~¨WÐ	5Ñ	5Ô	5ð Cð CÝÕ! $Ô'Ñ)Ô)Ð+AÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð Cð Cs   ±#A!Á!A%Á(A%rX   ÚX_type)r  Ú
sparse_csrÚ
sparse_csczX, y, lower_bound_accuracyi,  )r7   Ú	n_classesr=   ra   éè  rk   )r7   r  r9   r=   gÍÌÌÌÌÌä?g
×£p=
Ç?Ú	oob_scoreTÚmicro)Úaveragec                 ó\  — t          ||¬¦  «        }t          ||dd¬¦  «        \  }}}}	 | dd|d¬¦  «        }
t          |
d¦  «        rJ ‚t          |
d	¦  «        rJ ‚|
                     ||¦  «         t	          |¦  «        r  ||	|
                     |¦  «        ¦  «        }n#|
                     ||	¦  «        }|
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}n?|j
        d         t          t          |dd…df         ¦  «        ¦  «        |j
        d         f}|
j        j
        |k    sJ ‚dS )z5Check that OOB score is close to score on a test set.©Úconstructor_namerc   r   r}   é(   T©rL   rŸ   r   r=   Ú
oob_score_Úoob_decision_function_g)\�Âõ(¼?z	abs_diff=z is greater than 0.11Úoob_prediction_r2   N)r#   r    r«   rO   ÚcallablerR   rg   r(  rÌ   ÚndimrW   rU   Úsetr)  )rX   rP   rQ   r  Úlower_bound_accuracyr   r’   r“   r”   r•   Ú
classifierÚ
test_scoreÚabs_diffÚexpected_shapes                 r[   Útest_forest_classifier_oobr3  Ð  sú  € õ> 	˜1¨vÐ6Ñ6Ô6€AÝ'7Ø	Ø	ØØð	(ñ (ô (Ñ$€GˆV�W˜fð "Ð!ØØØØð	ñ ô €Jõ �z <Ñ0Ô0Ð0Ð0Ð0Ý�zÐ#;Ñ<Ô<Ð<Ð<Ð<à‡N‚N�7˜GÑ$Ô$Ð$Ý�	ÑÔð =Ø�Y˜v z×'9Ò'9¸&Ñ'AÔ'AÑBÔBˆ
ˆ
à×%Ò% f¨fÑ5Ô5ˆ
ØÔ$Ð(<Ò<Ð<Ð<Ð<å�: 
Ô 5Ñ5Ñ6Ô6€HØ�tÒÐÐÐ@ Ð@Ð@Ð@ÑÔÐå�:˜|Ñ,Ô,Ð,Ð,Ð,Ý�zÐ#4Ñ5Ô5Ð5Ð5Ð5Ý�:Ð7Ñ8Ô8Ð8Ð8Ð8à„v�‚{€{Ø!œ-¨Ô*­Cµ°A±´©K¬KÐ8ˆˆà!œ-¨Ô*­Cµ°A°a°a°a¸°d´G±´Ñ,=Ô,=¸q¼wÀq¼zÐJˆØÔ,Ô2°nÒDÐDÐDÐDÐDÐDr]   ro   zX, y, lower_bound_r2)r7   r8   Ú	n_targetsr=   çffffffæ?gš™™™™™á?c                 ó´  — t          ||¬¦  «        }t          ||dd¬¦  «        \  }}}}	 | dd|d¬¦  «        }
t          |
d¦  «        rJ ‚t          |
d	¦  «        rJ ‚|
                     ||¦  «         t	          |¦  «        r  ||	|
                     |¦  «        ¦  «        }n#|
                     ||	¦  «        }|
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 ‚dS )z\Check that forest-based regressor provide an OOB score close to the
    score on a test set.r$  rc   r   r}   é2   Tr'  r(  r*  r¾   r)  r2   N)r#   r    r«   rO   r+  rR   rg   r(  rÌ   r,  rW   r*  )ro   rP   rQ   r  Úlower_bound_r2r   r’   r“   r”   r•   Ú	regressorr0  r2  s                r[   Útest_forest_regressor_oobr:    s¯  € õ. 	˜1¨vÐ6Ñ6Ô6€AÝ'7Ø	Ø	ØØð	(ñ (ô (Ñ$€GˆV�W˜fð  �ØØØØð	ñ ô €Iõ �y ,Ñ/Ô/Ð/Ð/Ð/Ý�yÐ"3Ñ4Ô4Ð4Ð4Ð4à‡M‚M�'˜7Ñ#Ô#Ð#Ý�	ÑÔð 6Ø�Y˜v y×'8Ò'8¸Ñ'@Ô'@ÑAÔAˆ
ˆ
à—_’_ V¨VÑ4Ô4ˆ
ØÔ# ~Ò5Ð5Ð5Ð5åˆz˜IÔ0Ñ0Ñ1Ô1°SÒ8Ð8Ð8Ð8å�9˜lÑ+Ô+Ð+Ð+Ð+Ý�9Ð/Ñ0Ô0Ð0Ð0Ð0Ý�yÐ":Ñ;Ô;Ð;Ð;Ð;à„v�‚{€{Ø!œ-¨Ô*Ð,ˆˆà!œ-¨Ô*¨A¬FÐ3ˆØÔ$Ô*¨nÒ<Ð<Ð<Ð<Ð<Ð<r]   rÎ   c                 óà   —  | dddd¬¦  «        }t          j        t          d¬¦  «        5  |                     t          j        t          j        ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zfCheck that a warning is raised when not enough estimator and the OOB
    estimates will be inaccurate.r2   Tr   ©rL   r   rŸ   r=   z"Some inputs do not have OOB scoresr  N)r¡   ÚwarnsÚUserWarningrO   rd   re   rf   )rÎ   Ú	estimators     r[   Útest_forest_oob_warningr@  Q  sº   € ð  �ØØØØð	ñ ô €Iõ 
Œ•kÐ)MÐ	NÑ	NÔ	Nð .ð .Ø�Š•d”i¥¤Ñ-Ô-Ð-ð.ð .ð .ñ .ô .ð .ð .ð .ð .ð .ð .ð .øøøð .ð .ð .ð .ð .ð .s   «+A#Á#A'Á*A'c                 óè   — t           j        }t           j        }d} | dd¬¦  «        }t          j        t
          |¬¦  «        5  |                     ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )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)rd   re   rf   r¡   r  Ú
ValueErrorrO   )rÎ   rP   rQ   r  r?  s        r[   Ú(test_forest_oob_score_requires_bootstraprD  _  s¸   € õ
 	Œ	€AÝŒ€AØF€GØ�¨$¸%Ð@Ñ@Ô@€IÝ	Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø�Š�a˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÁA'Á'A+Á.A+c                 óš  — t           j                             d¦  «        }t          j        }|                     ddt          j        j        d         df¬¦  «        }t          |¦  «        }|dk    sJ ‚ | dd¬¦  «        }d	}t          j	        t          |¬
¦  «        5  |                     ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )zwCheck that we raise an error with when requesting OOB score with
    multiclass-multioutput classification target.
    rs   r   rj   r3   ru   zmulticlass-multioutputTrB  z:The type of target cannot be used to compute OOB estimatesr  N)r†   r‡   rˆ   rd   re   rË   rW   r-   r¡   r  rC  rO   )rX   rŽ   rP   rQ   Úy_typer?  r  s          r[   Ú6test_classifier_error_oob_score_multiclass_multioutputrG  l  s  € õ
 Œ)×
Ò
 Ñ
#Ô
#€CÝŒ	€AØ�Š˜ ­¬¬¸Ô);¸QÐ(?ˆÑ@Ô@€AÝ˜AÑÔ€FØÐ-Ò-Ð-Ð-Ð-Ø Ð ¨4¸4Ð@Ñ@Ô@€IØJ€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø�Š�a˜ÑÔÐðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ÂC Ã CÃCc           	      ó0  — t           j                             d¦  «        }t          j        }|                     ddt          j        j        d         df¬¦  «        } | dddd¬¦  «        }|                     ||¦  «         t          t          |¦  «        |j
        d	¦  «        }|j        d         d
z  }t          j        |dg¦  «        }t          |d	|…         ¦  «        D ]˜\  }}	d}
t          j        d¦  «        }|j        D ]m}t          |j        t          |¦  «        |d	¦  «        }||v rC|
dz  }
||                     |	                     dd¦  «        ¦  «                             ¦   «         z  }Œn||
z  ||<   Œ™t'          ||j        d	|…         ¦  «         d	S )z”Check that multioutput regression with integral values is not interpreted
    as a multiclass-multioutput target and OOB score can be computed.
    rs   r   r6   r3   ru   é   Tr<  Nrª   r2   r1   )r†   r‡   rˆ   rd   re   rË   rW   rO   r   rU   Úmax_samplesr  Ú	enumerater  r   r=   rR   ÚreshapeÚsqueezer$   r*  )ro   rŽ   rP   rQ   r?  Ún_samples_bootstrapÚn_samples_testÚoob_predÚ
sample_idxÚsampleÚn_samples_oobÚoob_pred_sampler  Úoob_unsampled_indicess                 r[   Ú2test_forest_multioutput_integral_regression_targetrV  |  s¤  € õ
 Œ)×
Ò
 Ñ
#Ô
#€CÝŒ	€AØ�Š˜ ­$¬)¬/¸!Ô*<¸aÐ)@ˆÑAÔA€AØ�Ø 4°4Àaðñ ô €Ið ‡M‚M�!�QÑÔÐå2µ3°q±6´6¸9Ô;PÐRVÑWÔWÐØ”W˜Q”Z 1‘_€NÝŒx˜¨Ð+Ñ,Ô,€HÝ'¨¨/¨>¨/Ô(:Ñ;Ô;ð 
?ð 
?Ñˆ
�FØˆÝœ( 1™+œ+ˆØÔ)ð 	Qð 	QˆDÝ$?ØÔ!¥3 q¡6¤6Ð+>Àñ%ô %Ð!ð Ð2Ð2Ð2Ø Ñ"�Ø 4§<¢<°·²¸qÀ"Ñ0EÔ0EÑ#FÔ#F×#NÒ#NÑ#PÔ#PÑP�øØ.°Ñ>ˆ�ÑÐÝ�H˜iÔ7¸¸¸ÔHÑIÔIÐIÐIÐIr]   c                 óL  — t          j        t          d¬¦  «        5  t          | ¬¦  «         d d d ¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          ¦   «                              t          t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nz"got an unexpected keyword argumentr  ©r   zOOB score not supported)r¡   r  Ú	TypeErrorr   ÚNotImplementedErrorÚ_set_oob_score_and_attributesrP   rQ   rX  s    r[   Ú+test_random_trees_embedding_raise_error_oobr\  š  s)  € å	Œ•yÐ(LÐ	MÑ	MÔ	Mð 2ð 2Ý yÐ1Ñ1Ô1Ð1ð2ð 2ð 2ñ 2ô 2ð 2ð 2ð 2ð 2ð 2ð 2øøøð 2ð 2ð 2ð 2å	ŒÕ*Ð2KÐ	LÑ	LÔ	Lð Cð CÝÑÔ×<Ò<½QÅÑBÔBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cð Cð Cs   œ9¹=Á =Á-BÂBÂ Bc                 ó¨   — t          |          ¦   «         }t          |dddœ¦  «        }|                     t          j        t          j        ¦  «         d S )N©r2   r3   )rL   r²   )rN   r   rO   rd   re   rf   )rI   ÚforestrY   s      r[   Útest_gridsearchr`  ¢  sI   € õ   Ô%Ñ'Ô'€FÝ
�v°ÀVÐLÐLÑ
MÔ
M€CØ‡G‚G�DŒI•t”{Ñ#Ô#Ð#Ð#Ð#r]   c                 óÒ  — | t           v rt          j        }t          j        }n| t          v rt
          }t          }t          |          } |ddd¬¦  «        }|                     ||¦  «         t          |¦  «        dk    sJ ‚| 
                    d¬¦  «         |                     |¦  «        }| 
                    d¬¦  «         |                     |¦  «        }t          ||d¦  «         dS )	z-Check parallel computations in classificationr6   r4   r   ©rL   rÀ   r=   r2   r¿   r3   N)rN   rd   re   rf   rl   rm   rn   rA   rO   rU   rÊ   rR   r&   )rI   rP   rQ   rÎ   r_  Úy1Úy2s          r[   Útest_parallelre  ª  sé   € ð Õ!Ð!Ð!ÝŒIˆÝŒKˆˆØ	Õ"Ð	"Ð	"ÝˆÝˆå'¨Ô-€OØˆ_¨"°QÀQÐGÑGÔG€Fà
‡J‚Jˆq�!ÑÔÐÝˆv‰;Œ;˜"ÒÐÐÐà
×Ò˜QÐÑÔÐØ	�Š˜Ñ	Ô	€BØ
×Ò˜QÐÑÔÐØ	�Š˜Ñ	Ô	€BÝ˜b " aÑ(Ô(Ð(Ð(Ð(r]   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¬¦  «        }|                     ||¦  «         | 	                    ||¦  «        }t          j        |¦  «        }t          j        |¦  «        }t          |¦  «        |j        k    sJ ‚| 	                    ||¦  «        }||k    sJ ‚d S )Nr3   r   r¥   )rN   rd   re   rf   rl   rm   rn   rA   rO   rg   ÚpickleÚdumpsÚloadsÚtypeÚ	__class__)	rI   rP   rQ   rÎ   Úobjrg   Úpickle_objectÚobj2Úscore2s	            r[   Útest_picklerp  Á  sø   € ð Õ!Ð!Ð!ÝŒI�c�c˜�cŒNˆÝŒK˜˜˜!˜ÔˆˆØ	Õ"Ð	"Ð	"Ý�#�#�A�#ŒJˆÝ�#�#�A�#ŒJˆå'¨Ô-€OØ
ˆ/ qÐ
)Ñ
)Ô
)€CØ‡G‚GˆAˆq�M„M€MØ�IŠI�a˜‰OŒO€EÝ”L Ñ%Ô%€MåŒ<˜Ñ&Ô&€DÝ�‰:Œ:˜œÒ&Ð&Ð&Ð&Ø�ZŠZ˜˜1ÑÔ€FØ�FŠ?ˆ?ˆ?ˆ?ˆ?ˆ?r]   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¬¦  «        }|                     ||¦  «                             |¦  «        }t          ||¦  «         | t          v rÑt          j        d	¬
¦  «        5  |                     |¦  «        }t          |¦  «        dk    sJ ‚|d         j	        dk    sJ ‚|d         j	        dk    sJ ‚| 
                    |¦  «        }t          |¦  «        dk    sJ ‚|d         j	        dk    sJ ‚|d         j	        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S d S )Nr0   r1   r2   r3   r   r4   F©r=   rŸ   r¯   r°   ©rª   r3   ©rª   rª   )rA   rO   rR   r&   rN   r†   r³   r´   rU   rW   r¶   ©	rI   r’   r”   r“   r•   rÏ   Úy_predÚprobaÚ	log_probas	            r[   Útest_multioutputry  ×  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Ñ
BÔ
B€CØ�WŠW�W˜gÑ&Ô&×.Ò.¨vÑ6Ô6€FÝ˜f fÑ-Ô-Ð-àÕ!Ð!Ð!ÝŒ[ Ð)Ñ)Ô)ð 		0ð 		0Ø×%Ò% fÑ-Ô-ˆEÝ�u‘:”: ’?�?�?�?Ø˜”8”> VÒ+Ð+Ð+Ð+Ø˜”8”> VÒ+Ð+Ð+Ð+à×-Ò-¨fÑ5Ô5ˆIÝ�y‘>”> QÒ&Ð&Ð&Ð&Ø˜Q”<Ô%¨Ò/Ð/Ð/Ð/Ø˜Q”<Ô%¨Ò/Ð/Ð/Ð/Ð/ð		0ð 		0ð 		0ñ 		0ô 		0ð 		0ð 		0ð 		0ð 		0ð 		0ð 		0ð 		0øøøð 		0ð 		0ð 		0ð 		0ð 		0ð 		0ð "Ð!s   ÃB!FÆF
ÆF
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¬¦  «        }|                     ||¦  «                             |¦  «        }t          ||¦  «         t	          j        d¬¦  «        5  |                     |¦  «        }t          |¦  «        dk    sJ ‚|d
         j        dk    sJ ‚|d         j        dk    sJ ‚| 	                    |¦  «        }t          |¦  «        dk    sJ ‚|d
         j        dk    sJ ‚|d         j        dk    sJ ‚	 d d d ¦  «         d S # 1 swxY w Y   d S )Nr0   r1   r2   r3   ÚredÚblueÚgreenÚpurpleÚyellowr   Frr  r¯   r°   rs  rt  )
rA   rO   rR   r'   r†   r³   r´   rU   rW   r¶   ru  s	            r[   Útest_multioutput_stringr€    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Ñ
BÔ
B€CØ�WŠW�W˜gÑ&Ô&×.Ò.¨vÑ6Ô6€FÝ�v˜vÑ&Ô&Ð&å	Œ˜HÐ	%Ñ	%Ô	%ð 	,ð 	,Ø×!Ò! &Ñ)Ô)ˆÝ�5‰zŒz˜QŠˆˆˆØ�QŒxŒ~ Ò'Ð'Ð'Ð'Ø�QŒxŒ~ Ò'Ð'Ð'Ð'à×)Ò)¨&Ñ1Ô1ˆ	Ý�9‰~Œ~ Ò"Ð"Ð"Ð"Ø˜Œ|Ô! VÒ+Ð+Ð+Ð+Ø˜Œ|Ô! VÒ+Ð+Ð+Ð+Ð+ð	,ð 	,ð 	,ñ 	,ô 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,ð 	,øøøð 	,ð 	,ð 	,ð 	,ð 	,ð 	,s   ÃB!E=Å=FÆFc                 óÞ  — t           |          } |d¬¦  «                             t          t          ¦  «        }|j        dk    sJ ‚t          |j        ddg¦  «         t          j        t          t          j	        t          ¦  «        dz  f¦  «        j
        } |d¬¦  «                             t          |¦  «        }t          |j        ddg¦  «         t          |j        ddgddgg¦  «         d S )Nr   r¥   r3   r1   r2   r0   )rN   rO   rP   rQ   r§   r'   r¦   r†   Úvstackr  rS   )rI   rX   rY   Ú_ys       r[   Útest_classes_shaper„  C  sà   € õ *¨$Ô/Ðð Ð
¨Ð
*Ñ
*Ô
*×
.Ò
.­qµ!Ñ
4Ô
4€CàŒ>˜QÒÐÐÐÝ�s”| b¨! WÑ-Ô-Ð-õ 
Œ•A•r”x¥‘{”{ Q‘Ð'Ñ	(Ô	(Ô	*€BØ
Ð
¨Ð
*Ñ
*Ô
*×
.Ò
.­q°"Ñ
5Ô
5€Cå�s”~¨¨1 vÑ.Ô.Ð.Ý�s”| r¨1 g°°A¨wÐ%7Ñ8Ô8Ð8Ð8Ð8r]   c                  óº   — t          dd¬¦  «        } t          j        d¬¦  «        \  }}|                      |¦  «        }t	          |t
          j        ¦  «        sJ ‚d S )Nr6   F)rL   Úsparse_outputrc   ©Úfactor)r   r   Úmake_circlesÚfit_transformÚ
isinstancer†   Úndarray)ÚhasherrP   rQ   ÚX_transformeds       r[   Útest_random_trees_dense_typer�  V  s`   € õ
 "¨rÀÐGÑGÔG€FÝÔ ¨Ð,Ñ,Ô,�D€A€qØ×(Ò(¨Ñ+Ô+€Mõ �m¥R¤ZÑ0Ô0Ð0Ð0Ð0Ð0Ð0r]   c                  ó  — t          ddd¬¦  «        } t          ddd¬¦  «        }t          j        d¬¦  «        \  }}|                      |¦  «        }|                     |¦  «        }t	          |                     ¦   «         |¦  «         d S )Nr6   Fr   )rL   r†  r=   Trc   r‡  )r   r   r‰  rŠ  r'   Útoarray)Úhasher_denseÚhasher_sparserP   rQ   ÚX_transformed_denseÚX_transformed_sparses         r[   Útest_random_trees_dense_equalr–  c  s£   € õ
 (Ø u¸1ðñ ô €Lõ )Ø t¸!ðñ ô €Mõ Ô ¨Ð,Ñ,Ô,�D€A€qØ&×4Ò4°QÑ7Ô7ÐØ(×6Ò6°qÑ9Ô9Ðõ Ð+×3Ò3Ñ5Ô5Ð7JÑKÔKÐKÐKÐKr]   c                  ó°  — t          dd¬¦  «        } t          j        d¬¦  «        \  }}|                      |¦  «        }t          dd¬¦  «        } t	          |                      |¦  «                             |¦  «                             ¦   «         |                     ¦   «         ¦  «         |j        d         |j        d         k    sJ ‚t	          | 	                    d¬¦  «        | j
        ¦  «         t          d¬	¦  «        }|                     |¦  «        }t          ¦   «         }|                     ||¦  «         |                     ||¦  «        d
k    sJ ‚d S )NrI  r2   rK   rc   r‡  r   ry   r3   )Ún_componentsrÞ   )r   r   r‰  rŠ  r'   rO   Ú	transformr‘  rW   r    rL   r   r!   rg   )r�  rP   rQ   rŽ  ÚsvdÚ	X_reducedÚ
linear_clfs          r[   Útest_random_hasherr�  v  s@  € õ
 "¨rÀÐBÑBÔB€FÝÔ ¨Ð,Ñ,Ô,�D€A€qØ×(Ò(¨Ñ+Ô+€Mõ "¨rÀÐBÑBÔB€FÝ�v—z’z !‘}”}×.Ò.¨qÑ1Ô1×9Ò9Ñ;Ô;¸]×=RÒ=RÑ=TÔ=TÑUÔUÐUð Ô˜qÔ! Q¤W¨Q¤ZÒ/Ð/Ð/Ð/Ý�}×(Ò(¨aÐ(Ñ0Ô0°&Ô2EÑFÔFÐFÝ
 AÐ
&Ñ
&Ô
&€CØ×!Ò! -Ñ0Ô0€IÝ‘”€JØ‡N‚N�9˜aÑ Ô Ð Ø×Ò˜I qÑ)Ô)¨SÒ0Ð0Ð0Ð0Ð0Ð0r]   Úcsc_containerc                 ó&  — t          j        d¬¦  «        \  }}t          dd¬¦  «        }|                     |¦  «        }|                      | |¦  «        ¦  «        }t	          |                     ¦   «         |                     ¦   «         ¦  «         d S )Nr   r¥   rI  r2   rK   )r   Úmake_multilabel_classificationr   rŠ  r'   r‘  )rž  rP   rQ   r�  rŽ  r•  s         r[   Útest_random_hasher_sparse_datar¡  �  s‹   € åÔ2ÀÐBÑBÔB�D€A€qÝ!¨rÀÐBÑBÔB€FØ×(Ò(¨Ñ+Ô+€MØ!×/Ò/°°¸aÑ0@Ô0@ÑAÔAÐÝÐ+×3Ò3Ñ5Ô5°}×7LÒ7LÑ7NÔ7NÑOÔOÐOÐOÐOr]   c                  óH  ‡‡‡	— t          d¦  «        } d\  }}|                      ||¦  «        Š|                      dd|¦  «        Š	ˆˆ	fd„dD ¦   «         }|                      ||¦  «        Šˆfd„|D ¦   «         }t          j        |¦  «        D ]\  }}t          ||¦  «         Œd S )Né!0  )éP   rI  r   r3   c                 ó\   •— g | ](}t          d |d¬¦  «                             ‰‰¦  «        ‘Œ)S )r?   i90  rb  )r   rO   )rè   rÀ   r’   r”   s     €€r[   rê   z'test_parallel_train.<locals>.<listcomp>œ  sO   ø€ ð ð ð ð õ 	¨B°vÈEÐRÑRÔR×VÒVØ�Wñ	
ô 	
ðð ð r]   )r2   r3   r4   r  é   é    c                 ó:   •— g | ]}|                      ‰¦  «        ‘ŒS rì   )r´   )rè   rY   r“   s     €r[   rê   z'test_parallel_train.<locals>.<listcomp>¤  s'   ø€ Ð8Ð8Ð8¨Cˆc×Ò Ñ'Ô'Ð8Ð8Ð8r]   )r/   ÚrandnrË   Ú	itertoolsÚpairwiser&   )
rŽ   r7   r8   ÚclfsÚprobasÚproba1Úproba2r“   r’   r”   s
          @@@r[   Útest_parallel_trainr°  –  sÜ   øøø€ Ý
˜UÑ
#Ô
#€CØ"Ñ€IˆzØ�iŠi˜	 :Ñ.Ô.€GØ�kŠk˜!˜Q 	Ñ*Ô*€Gðð ð ð ð ð +ð	ñ ô €Dð �YŠY�y *Ñ-Ô-€FØ8Ð8Ð8Ð8°4Ð8Ñ8Ô8€FÝ#Ô,¨VÑ4Ô4ð 2ð 2‰ˆ�Ý! &¨&Ñ1Ô1Ð1Ð1ð2ð 2r]   c                  ó   ‡— t          d¦  «        } |                      ddd¬¦  «        }|                      d¦  «        }dŠt          ‰d¬	¦  «                             ||¦  «        }t          t          ¦  «        }|j        D ]S}d
                     d„ t          |j
        j        |j
        j        ¦  «        D ¦   «         ¦  «        }||xx         dz  cc<   ŒTt          ˆfd„|                     ¦   «         D ¦   «         ¦  «        }t          |¦  «        dk    sJ ‚d|d         d         k    sJ ‚d|d         d         k    sJ ‚d|d         d         k    sJ ‚d|d         d         k    sJ ‚|d         d         dk    sJ ‚|d         d         dk    sJ ‚t!          j        d¦  «        }t           j                             ddd¦  «        |d d …df<   t           j                             ddd¦  «        |d d …df<   |                      d¦  «        }t          dd¬¦  «                             ||¦  «        }t          t          ¦  «        }|j        D ]S}d
                     d„ t          |j
        j        |j
        j        ¦  «        D ¦   «         ¦  «        }||xx         dz  cc<   ŒTd„ |                     ¦   «         D ¦   «         }t          |¦  «        dk    sJ ‚d S )Nr£  r   rª   )r  r2   ©rx   r  r5   rs   rK   Ú c              3   óT   K  — | ]#\  }}|d k    rd|t          |¦  «        fz  ndV — Œ$dS ©r   z%d,%d/ú-N©rÙ   ©rè   ÚfÚts      r[   r  z$test_distribution.<locals>.<genexpr>µ  óV   è è € ð 
ð 
á��1ð ()¨A¢v vˆX˜�C ™FœF˜Ñ#Ð#°3ð
ð 
ð 
ð 
ð 
ð 
r]   r2   c                 ó*   •— g | ]\  }}d |z  ‰z  |f‘ŒS )rÞ   rì   )rè   r  rã   Ún_treess      €r[   rê   z%test_distribution.<locals>.<listcomp>¼  s+   ø€ ÐWÐWÐW¹¸¸e�s˜U‘{ WÑ,¨dÐ3ÐWÐWÐWr]   rj   gš™™™™™É?r3   r4   ç333333Ó?z0,1/0,0/--0,2/--)r  r3   )rM   r=   c              3   óT   K  — | ]#\  }}|d k    rd|t          |¦  «        fz  ndV — Œ$dS rµ  r·  r¸  s      r[   r  z$test_distribution.<locals>.<genexpr>Ô  r»  r]   c                 ó   — g | ]	\  }}||f‘Œ
S rì   rì   )rè   r  rã   s      r[   rê   z%test_distribution.<locals>.<listcomp>Û  s    € Ð@Ð@Ð@¡  u��tˆ}Ð@Ð@Ð@r]   r  )r/   rË   Úrandr   rO   r   rÙ   r  ÚjoinÚzipr	  ÚfeatureÚ	thresholdÚsortedÚitemsrU   r†   Úemptyr‡   )rŽ   rP   rQ   rp   Úuniquesr  r½  s         @r[   Útest_distributionrÊ  ©  só  ø€ Ý
˜UÑ
#Ô
#€Cð 	�Š�A�q˜yˆÑ)Ô)€AØ�Š�‰Œ€AØ€Gå
¨7ÀÐ
DÑ
DÔ
D×
HÒ
HÈÈAÑ
NÔ
N€Cå�#ÑÔ€GØ”ð ð ˆØ�wŠwð 
ð 
å˜DœJÔ.°´
Ô0DÑEÔEð
ñ 
ô 
ñ 
ô 
ˆð
 	�ˆˆŒ˜Ñˆˆ‰ˆåÐWÐWÐWÐWÀwÇ}Â}ÁÄÐWÑWÔWÑXÔX€Gõ ˆw‰<Œ<˜1ÒÐÐÐØ�'˜!”*˜Q”-ÒÐÐÐØ�'˜!”*˜Q”-ÒÐÐÐØ�'˜!”*˜Q”-ÒÐÐÐØ�'˜!”*˜Q”-ÒÐÐÐØ�1Œ:�aŒ=˜3ÒÐÐÐØ�1Œ:�aŒ=Ð.Ò.Ð.Ð.Ð.õ 	Œ�ÑÔ€AÝŒi×Ò  1 dÑ+Ô+€A€a€a€aˆ€d�GÝŒi×Ò  1 dÑ+Ô+€A€a€a€aˆ€d�GØ�Š�‰Œ€Aå
¨1¸1Ð
=Ñ
=Ô
=×
AÒ
AÀ!ÀQÑ
GÔ
G€Cå�#ÑÔ€GØ”ð ð ˆØ�wŠwð 
ð 
å˜DœJÔ.°´
Ô0DÑEÔEð
ñ 
ô 
ñ 
ô 
ˆð
 	�ˆˆŒ˜Ñˆˆ‰ˆà@Ð@°·²±´Ð@Ñ@Ô@€GÝˆw‰<Œ<˜1ÒÐÐÐÐÐr]   c                 óZ  — t           t          }}t          |          } |dddd¬¦  «                             ||¦  «        }|j        d                              ¦   «         dk    sJ ‚ |ddd¬¦  «                             ||¦  «        }|j        d                              ¦   «         dk    sJ ‚d S )Nr2   rª   r   )r²   Úmax_leaf_nodesrL   r=   )r²   rL   r=   )Úhastie_XÚhastie_yrA   rO   r  Ú	get_depth©rI   rP   rQ   rÎ   rÏ   s        r[   Útest_max_leaf_nodes_max_depthrÑ  ß  s¼   € å•X€q€Aõ (¨Ô-€OØ
ˆ/Ø A°AÀAðñ ô ç	‚cˆ!ˆQ�i„ið ð Œ?˜1Ô×'Ò'Ñ)Ô)¨QÒ.Ð.Ð.Ð.à
ˆ/ A°AÀAÐ
FÑ
FÔ
F×
JÒ
JÈ1ÈaÑ
PÔ
P€CØŒ?˜1Ô×'Ò'Ñ)Ô)¨QÒ.Ð.Ð.Ð.Ð.Ð.r]   c                 óÌ  — t           t          }}t          |          } |ddd¬¦  «        }|                     ||¦  «         |j        d         j        j        dk    }|j        d         j        j        |         }t          j	        |¦  «        t          |¦  «        dz  dz
  k    sJ d                     | ¦  «        ¦   «         ‚ |ddd¬¦  «        }|                     ||¦  «         |j        d         j        j        dk    }|j        d         j        j        |         }t          j	        |¦  «        t          |¦  «        dz  dz
  k    sJ d                     | ¦  «        ¦   «         ‚d S )Nr6   r2   r   )Úmin_samples_splitrL   r=   r1   rc   úFailed with {0})rÍ  rÎ  rA   rO   r  r	  Úchildren_leftÚn_node_samplesr†   ÚminrU   r  )rI   rP   rQ   rÎ   rÏ   Únode_idxÚnode_sampless          r[   Útest_min_samples_splitrÚ  î  sG  € å•X€q€AÝ'¨Ô-€Oà
ˆ/¨B¸QÈQÐ
OÑ
OÔ
O€CØ‡G‚GˆAˆq�M„M€MØŒ˜qÔ!Ô'Ô5¸Ò;€HØ”? 1Ô%Ô+Ô:¸8ÔD€LåŒ6�,ÑÔ¥# a¡&¤&¨3¡,°Ñ"2Ò2Ð2Ð2Ð4E×4LÒ4LÈTÑ4RÔ4RÑ2Ô2Ð2à
ˆ/¨C¸aÈaÐ
PÑ
PÔ
P€CØ‡G‚GˆAˆq�M„M€MØŒ˜qÔ!Ô'Ô5¸Ò;€HØ”? 1Ô%Ô+Ô:¸8ÔD€LåŒ6�,ÑÔ¥# a¡&¤&¨3¡,°Ñ"2Ò2Ð2Ð2Ð4E×4LÒ4LÈTÑ4RÔ4RÑ2Ô2Ð2Ð2Ð2r]   c                 óÚ  — t           t          }}t          |          } |ddd¬¦  «        }|                     ||¦  «         |j        d         j                             |¦  «        }t          j        |¦  «        }||dk             }t          j	        |¦  «        dk    sJ d 
                    | ¦  «        ¦   «         ‚ |ddd¬¦  «        }|                     ||¦  «         |j        d         j                             |¦  «        }t          j        |¦  «        }||dk             }t          j	        |¦  «        t          |¦  «        dz  dz
  k    sJ d 
                    | ¦  «        ¦   «         ‚d S )Nrj   r2   r   )r€   rL   r=   rª   rÔ  g      Ð?)rÍ  rÎ  rA   rO   r  r	  rV   r†   rß   r×  r  rU   )rI   rP   rQ   rÎ   rÏ   ÚoutÚnode_countsÚ
leaf_counts           r[   Útest_min_samples_leafrß    sT  € å•X€q€Aõ (¨Ô-€Oà
ˆ/¨1¸1È1Ð
MÑ
MÔ
M€CØ‡G‚GˆAˆq�M„M€MØ
Œ/˜!Ô
Ô
"×
(Ò
(¨Ñ
+Ô
+€CÝ”+˜cÑ"Ô"€Kà˜[¨AÒ-Ô.€JÝŒ6�*ÑÔ Ò!Ð!Ð!Ð#4×#;Ò#;¸DÑ#AÔ#AÑ!Ô!Ð!à
ˆ/¨4¸aÈaÐ
PÑ
PÔ
P€CØ‡G‚GˆAˆq�M„M€MØ
Œ/˜!Ô
Ô
"×
(Ò
(¨Ñ
+Ô
+€CÝ”+˜cÑ"Ô"€Kà˜[¨AÒ-Ô.€JÝŒ6�*ÑÔ¥ A¡¤¨¡°Ñ 1Ò1Ð1Ð1Ð3D×3KÒ3KÈDÑ3QÔ3QÑ1Ô1Ð1Ð1Ð1r]   c                 óŠ  — t           t          }}t          |          }t          j                             d¦  «        }|                     |j        d         ¦  «        }t          j        |¦  «        }t          j	        ddd¦  «        D ]½} ||dd¬¦  «        }d| v rd|_
        |                     |||¬¦  «         |j        d         j                             |¦  «        }	t          j        |	|¬	¦  «        }
|
|
dk             }t          j        |¦  «        ||j        z  k    s#J d
                     | |j        ¦  «        ¦   «         ‚Œ¾d S )Nr   rc   rk   r2   )Úmin_weight_fraction_leafrL   r=   ÚRandomForestFrÁ   ©Úweightsz,Failed with {0} min_weight_fraction_leaf={1})rÍ  rÎ  rA   r†   r‡   rˆ   rÁ  rW   r    ÚlinspacerŸ   rO   r  r	  rV   rß   r×  rá  r  )rI   rP   rQ   rÎ   rŽ   rä  Útotal_weightÚfracrÏ   rÜ  Únode_weightsÚleaf_weightss               r[   Útest_min_weight_fraction_leafrê    sL  € å•X€q€Aõ (¨Ô-€OÝ
Œ)×
Ò
 Ñ
"Ô
"€CØ�hŠh�q”w˜q”zÑ"Ô"€GÝ”6˜'‘?”?€Lõ ”˜A˜s AÑ&Ô&ð 
ð 
ˆØˆoØ%)¸Èð
ñ 
ô 
ˆð ˜TÐ!Ð!Ø!ˆCŒMà�Š��1 GˆÑ,Ô,Ð,ØŒo˜aÔ Ô&×,Ò,¨QÑ/Ô/ˆÝ”{ 3°Ð8Ñ8Ô8ˆà# L°AÒ$5Ô6ˆÝŒv�lÑ#Ô# |°cÔ6RÑ'RÒRÐRÐRØ:×AÒAØ�cÔ2ñô ñ SÔRÐRÐRð
ð 
r]   Úsparse_containerc                 ó€  — t          j        dd¬¦  «        \  }}t          |          } |dd¬¦  «                             ||¦  «        } |dd¬¦  «                              ||¦  «        |¦  «        }t	          |                     |¦  «        |                     |¦  «        ¦  «         | t          v s	| t          v rPt	          |                     |¦  «        |                     |¦  «        ¦  «         t	          |j	        |j	        ¦  «         | t          v rlt	          | 
                    |¦  «        | 
                    |¦  «        ¦  «         t	          |                     |¦  «        |                     |¦  «        ¦  «         | t          v r¶t	          |                     |¦  «                             ¦   «         |                     |¦  «                             ¦   «         ¦  «         t	          |                     |¦  «                             ¦   «         |                     |¦  «                             ¦   «         ¦  «         d S d S )Nr   r7  )r=   r7   r3   )r=   r²   )r   r   rA   rO   r&   rV   rN   rl   rR   rÈ   r´   r¶   ÚFOREST_TRANSFORMERSr™  r‘  rŠ  )rI   rë  rP   rQ   rÎ   ÚdenseÚsparses          r[   Útest_sparse_inputrð  :  s  € õ
 Ô2ÀÈRÐPÑPÔP�D€A€qå'¨Ô-€OàˆO¨°aÐ8Ñ8Ô8×<Ò<¸QÀÑBÔB€EØˆ_¨!°qÐ9Ñ9Ô9×=Ò=Ð>NÐ>NÈqÑ>QÔ>QÐSTÑUÔU€Få˜fŸlšl¨1™oœo¨u¯{ª{¸1©~¬~Ñ>Ô>Ð>àÕ!Ð!Ð! TÕ->Ð%>Ð%>Ý! &§.¢.°Ñ"3Ô"3°U·]²]À1Ñ5EÔ5EÑFÔFÐFÝ!ØÔ'¨Ô)Cñ	
ô 	
ð 	
ð Õ!Ð!Ð!Ý! &×"6Ò"6°qÑ"9Ô"9¸5×;NÒ;NÈqÑ;QÔ;QÑRÔRÐRÝ!Ø×$Ò$ QÑ'Ô'¨×)@Ò)@ÀÑ)CÔ)Cñ	
ô 	
ð 	
ð Õ"Ð"Ð"Ý!Ø×Ò˜QÑÔ×'Ò'Ñ)Ô)¨5¯?ª?¸1Ñ+=Ô+=×+EÒ+EÑ+GÔ+Gñ	
ô 	
ð 	
õ 	"Ø× Ò  Ñ#Ô#×+Ò+Ñ-Ô-¨u×/BÒ/BÀ1Ñ/EÔ/E×/MÒ/MÑ/OÔ/Oñ	
ô 	
ð 	
ð 	
ð 	
ð	 #Ð"r]   c                 ó\  — 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 ]]\  }} |t          j        fd|i|¤Ž}t          j        }t          |                     ||¦  «         	                    |¦  «        |¦  «         Œ^|j
        j        t          v rtt          t          z   t          z   D ]\} |t          j        |¬¦  «        }t          j        }t          |                     ||¦  «         	                    |¦  «        |¦  «         Œ]t          j        t          j        d d d	…         |¬¦  «        }t          j        d d d	…         }t          |                     ||¦  «         	                    |¦  «        |¦  «         d S )
Nr   Frr  ÚorderÚCÚFr¸   rð   r4   )rA   r†   ÚasarrayÚascontiguousarrayrd   re   rf   r&   rO   rR   r?  Úsplitterr"   r*   r+   r,   )rI   r¸   rÏ   Ú	containerÚkwargsrP   rQ   rë  s           r[   Útest_memory_layoutrú  ]  s–  € õ ˜DÔ
!¨q¸EÐ
BÑ
BÔ
B€Cõ 
Œ�RÐÝ	Œ�g˜s�^Ð$Ý	Œ�g˜s�^Ð$Ý	Ô	˜rÐ"ð	ð ?ð ?Ñˆ	�6ð ˆI•d”iÐ7Ð7 uÐ7°Ð7Ð7ˆÝŒKˆÝ! #§'¢'¨!¨Q¡-¤-×"7Ò"7¸Ñ":Ô":¸AÑ>Ô>Ð>Ð>ð „}ÔÕ!1Ð1Ð1Ý .µÑ ?Å.Ñ Pð 	Cð 	CÐØ Ð ¥¤°%Ð8Ñ8Ô8ˆAÝ”ˆAÝ% c§g¢g¨a°¡m¤m×&;Ò&;¸AÑ&>Ô&>ÀÑBÔBÐBÐBõ 	Œ
•4”9˜S˜S˜q˜S”>¨Ð/Ñ/Ô/€AÝŒ�C�C�a�CÔ€AÝ˜cŸgšg a¨™mœm×3Ò3°AÑ6Ô6¸Ñ:Ô:Ð:Ð:Ð:r]   c                 óœ  — t           j        d d …df         }t           j        d d …df                              d¦  «        }t           j        }t	          ¦   «         5  t
          |          }t          j        t          ¦  «        5   |dd¬¦  «         	                    ||¦  «         d d d ¦  «         n# 1 swxY w Y    |d¬¦  «        }| 	                    ||¦  «         | t          v s	| t          v rFt          j        t          ¦  «        5  |                     |¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr   ©r1   r2   r2   rK   r¥   )rd   re   rL  rf   r(   rA   r¡   r  rC  rO   rN   rl   rR   )rI   rP   ÚX_2drQ   rÎ   rÏ   s         r[   Útest_1d_inputrþ  {  s  € åŒ	�!�!�!�Q�$Œ€AÝŒ9�Q�Q�Q˜�TŒ?×"Ò" 7Ñ+Ô+€DÝŒ€Aå	Ñ	Ô	ð 
ð 
Ý+¨DÔ1ˆÝŒ]�:Ñ&Ô&ð 	Fð 	FØˆO¨¸Ð;Ñ;Ô;×?Ò?ÀÀ1ÑEÔEÐEð	Fð 	Fð 	Fñ 	Fô 	Fð 	Fð 	Fð 	Fð 	Fð 	Fð 	Føøøð 	Fð 	Fð 	Fð 	Fð ˆo¨1Ð-Ñ-Ô-ˆØ�Š��aÑÔÐàÕ%Ð%Ð%¨Õ1BÐ)BÐ)BÝ”�zÑ*Ô*ð ð Ø—’˜A‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s[   Á'EÂ"B/Â#EÂ/B3	Â3EÂ6B3	Â7AEÄD)ÄEÄ)D-	Ä-EÄ0D-	Ä1EÅEÅEr  )r3   r4   rª   c                 ó6  — t           |          } |d¬¦  «        }t          j        t          j        |¦  «        d¦  «        }t          j                             |¦  «        }|                     ddt          |¦  «        ¬¦  «        }t          j        ||¬¦  «        | 	                    ¦   «         z  }d||z  z  }	t          j
        |d¦  «        }
|
j        \  |_        |_        |                     dd	|¬¦  «        }t          t          |¦  «        ¦  «        }|                     |¬
¦  «         |                     |
|¦  «        \  }}t%          |||         ¦  «         |                     d¬
¦  «         |                     |
|¦  «        \  }}t%          ||	|         ¦  «         |                     dd¬¦  «         |                     |
|¦  «        \  }}t%          ||	|         ¦  «         |                     dd¬¦  «         |                     |
|¦  «        \  }}|�J ‚d S )Nr   r¥   r4   r2   rj   r²  rã  rü  r  ©Úclass_weightÚbalancedÚbalanced_subsampleF)r  rŸ   T)rN   r†   ÚrepeatÚaranger‡   rˆ   rË   rU   rß   r    rL  rW   Ú
_n_samplesÚ
n_outputs_ÚdictrK  rÊ   Ú_validate_y_class_weightr$   )rI   r  Úglobal_random_seedrX   rY   rQ   rŽ   ÚswÚweighted_frequencyÚbalanced_class_weightÚ
y_reshapedr  Úclass_weight_dictÚ_Úexpanded_class_weights                  r[   Útest_validate_y_class_weightr  Ž  s  € õ *¨$Ô/ÐØ
Ð
¨Ð
*Ñ
*Ô
*€Cå
Œ	•"”)˜IÑ&Ô&¨Ñ*Ô*€AÝ
Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ	�Š�Q˜¥ A¡¤ˆÑ	'Ô	'€BÝœ Q°Ð3Ñ3Ô3°b·f²f±h´hÑ>ÐØ Ð-?Ñ!?Ñ@Ðå”˜A˜wÑ'Ô'€Jà%/Ô%5Ñ"€C„N�C”Nð —;’;˜q !¨)�;Ñ4Ô4€LÝ�Y |Ñ4Ô4Ñ5Ô5ÐØ‡N‚NÐ 1€NÑ2Ô2Ð2Ø"×;Ò;¸JÈÑKÔKÑ€AÐÝÐ)¨<¸¬?Ñ;Ô;Ð;ð ‡N‚N 
€NÑ+Ô+Ð+Ø"×;Ò;¸JÈÑKÔKÑ€AÐÝÐ)Ð+@ÀÔ+CÑDÔDÐDð ‡N‚NÐ 4À€NÑFÔFÐFØ"×;Ò;¸JÈÑKÔKÑ€AÐÝÐ)Ð+@ÀÔ+CÑDÔDÐDð ‡N‚NÐ 4À€NÑEÔEÐEØ"×;Ò;¸JÈÑKÔKÑ€AÐØ Ð(Ð(Ð(Ð(Ð(r]   rŸ   c                 óÀ  — t           |          } |||¬¦  «        }t          |¦  «        }|                     t          j        t          j        t          j        t          j        ¦  «        ¬¦  «         t          |¦  «                             d¬¦  «        }|                     t          j        t          j        ¦  «         t          |j
        d¦  «         t          |j        |j        ¦  «         t          j        t          j        t          j        t          j        f¦  «        j        }t          |¦  «                             ddddœddddœddddœg¬¦  «        }|                     t          j        |¦  «         t          |j
        d	¦  «         t          |j        |j        d
¬¦  «         t          |¦  «                             d¬¦  «        }	|	                     t          j        |¦  «         t          |	j
        d¦  «         t          |j        |	j        ¦  «         t          j        t          j        j        ¦  «        }
|
t          j        dk    xx         dz  cc<   ddddœ}t          |¦  «        }|                     t          j        t          j        |
¦  «         t          |¦  «                             |¬¦  «        }|                     t          j        t          j        ¦  «         t          |j
        |j
        ¦  «         t          |j        |j        ¦  «         t          |¦  «        }|                     t          j        t          j        |
dz  ¦  «         t          |¦  «                             |¬¦  «        }|                     t          j        t          j        |
¦  «         t          |j
        |j
        ¦  «         t          |j        |j        ¦  «         d S )Nrr  rÁ   r  r   r2   g       @rÞ   )r   r2   r3   rª   gü©ñÒMb`?)ÚatolrÄ   g      Y@r3   )rN   r   rO   rd   re   rf   r†   Ú	ones_likerÊ   r%   Ú_sample_weightrÈ   r‚  rS   r$   rµ   rW   )rI   rŸ   r
  rX   rY   Úclf1Úclf2Ú
iris_multiÚclf3Úclf4rÂ   r  s               r[   Útest_class_weights_forestr  ·  s&  € õ *¨$Ô/ÐØ
Ð
Ð(:ÀiÐ
PÑ
PÔ
P€Cõ �‰:Œ:€DØ‡H‚H�TŒY�œµ2´<ÅÄÑ3LÔ3L€HÑMÔMÐMÝ�‰:Œ:× Ò ¨jÐ Ñ9Ô9€DØ‡H‚H�TŒY�œÑ$Ô$Ð$Ý˜Ô+¨QÑ/Ô/Ð/Ý˜Ô1°4Ô3LÑMÔMÐMõ ”�DœK­¬µd´kÐBÑCÔCÔE€Jå�‰:Œ:× Ò à˜ Ð$Ð$Ø˜ Ð$Ð$Ø˜ Ð$Ð$ð
ð !ñ ô €Dð 	‡H‚H�TŒY˜
Ñ#Ô#Ð#å˜Ô+¨YÑ7Ô7Ð7å�DÔ-¨tÔ/HÈuÐUÑUÔUÐUå�‰:Œ:× Ò ¨jÐ Ñ9Ô9€DØ‡H‚H�TŒY˜
Ñ#Ô#Ð#Ý˜Ô+¨QÑ/Ô/Ð/Ý˜Ô1°4Ô3LÑMÔMÐMõ ”G�DœKÔ-Ñ.Ô.€MØ•$”+ Ò"Ð#Ð#Ô# sÑ*Ð#Ð#Ñ#Ø˜u¨Ð-Ð-€LÝ�‰:Œ:€DØ‡H‚H�TŒY�œ ]Ñ3Ô3Ð3Ý�‰:Œ:× Ò ¨lÐ Ñ;Ô;€DØ‡H‚H�TŒY�œÑ$Ô$Ð$Ý˜Ô+¨TÔ-@ÑAÔAÐAÝ˜Ô1°4Ô3LÑMÔMÐMõ �‰:Œ:€DØ‡H‚H�TŒY�œ ]°AÑ%5Ñ6Ô6Ð6Ý�‰:Œ:× Ò ¨lÐ Ñ;Ô;€DØ‡H‚H�TŒY�œ ]Ñ3Ô3Ð3Ý˜Ô+¨TÔ-@ÑAÔAÐAÝ˜Ô1°4Ô3LÑMÔMÐMÐMÐMr]   c                 ó”  — t           |          }t          j        t          t          j        t          ¦  «        dz  f¦  «        j        } |dd¬¦  «        }|                     t          |¦  «          |dddœdddœgd¬¦  «        }|                     t          |¦  «          |d	d¬¦  «        }|                     t          |¦  «         d S )
Nr3   r  r   ©r  r=   rc   rÞ   rü  )r0   r3   r  )rN   r†   r‚  rQ   r  rS   rO   rP   )rI   rX   rƒ  rY   s       r[   Ú5test_class_weight_balanced_and_bootstrap_multi_outputr  ô  sÇ   € õ *¨$Ô/ÐÝ	Œ•A•r”x¥‘{”{ Q‘Ð'Ñ	(Ô	(Ô	*€BØ
Ð
¨
ÀÐ
CÑ
CÔ
C€CØ‡G‚G�Aˆr�N„N€NØ
Ð
Ø 3Ð'Ð'¨c°cÐ):Ð):Ð;È!ðñ ô €Cð ‡G‚G�Aˆr�N„N€Nà
Ð
Ð(<È1Ð
MÑ
MÔ
M€CØ‡G‚G�Aˆr�N„N€N€N€Nr]   c                 óL  — t           |          }t          j        t          t          j        t          ¦  «        dz  f¦  «        j        } |ddd¬¦  «        }|                     t          t          ¦  «         d}t          j	        t          |¬¦  «        5  |                     t          |¦  «         d d d ¦  «         n# 1 swxY w Y    |dd	d
œgd¬¦  «        }t          j        t          ¦  «        5  |                     t          |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr3   r  Tr   )r  Ú
warm_startr=   úJWarm-start fitting without increasing n_estimators does not fit new trees.r  rc   rÞ   rü  r  )rN   r†   r‚  rQ   r  rS   rO   rP   r¡   r=  r>  r  rC  )rI   rX   rƒ  rY   Úwarn_msgs        r[   Útest_class_weight_errorsr$    sŒ  € õ *¨$Ô/ÐÝ	Œ•A•r”x¥‘{”{ Q‘Ð'Ñ	(Ô	(Ô	*€Bð Ð
¨
¸tÐRSÐ
TÑ
TÔ
T€CØ‡G‚G�A�q�M„M€Mð 	Uð õ 
Œ•k¨Ð	2Ñ	2Ô	2ð ð Ø�Š•�2‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð Ð
¨c°cÐ):Ð):Ð(;È!Ð
LÑ
LÔ
L€CÝ	Œ•zÑ	"Ô	"ð ð Ø�Š•�2‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   ÂB;Â;B?ÃB?Ã0DÄDÄ Dc                 ó8  — t           t          }}t          |          }d }dD ]T}|€ ||dd¬¦  «        }n|                     |¬¦  «         |                     ||¦  «         t          |¦  «        |k    sJ ‚ŒU |ddd¬¦  «        }|                     ||¦  «         t          d„ |D ¦   «         ¦  «        t          d	„ |D ¦   «         ¦  «        k    sJ ‚t          |                     |¦  «        |                     |¦  «        d
 	                    | ¦  «        ¬¦  «         d S )N)rj   r6   rs   T)rL   r=   r!  ©rL   r6   Fc                 ó   — g | ]	}|j         ‘Œ
S rì   r¥   r  s     r[   rê   z#test_warm_start.<locals>.<listcomp>.  s   € Ð5Ð5Ð5 d�Ô!Ð5Ð5Ð5r]   c                 ó   — g | ]	}|j         ‘Œ
S rì   r¥   r  s     r[   rê   z#test_warm_start.<locals>.<listcomp>/  s   € Ð1Ð1Ð1˜tˆÔ	Ð1Ð1Ð1r]   rÔ  )r  )
rÍ  rÎ  rA   rÊ   rO   rU   r-  r'   rV   r  )rI   rP   rQ   rÎ   Úest_wsrL   Ú	est_no_wss          r[   Útest_warm_startr+    sZ  € õ •X€q€AÝ'¨Ô-€OØ€FØð +ð +ˆØˆ>Ø$�_Ø)¸Àtðñ ô ˆFˆFð ×Ò¨<ÐÑ8Ô8Ð8Ø�
Š
�1�aÑÔÐÝ�6‰{Œ{˜lÒ*Ð*Ð*Ð*Ð*à�¨R¸bÈUÐSÑSÔS€IØ‡M‚M�!�QÑÔÐåÐ5Ð5¨fÐ5Ñ5Ô5Ñ6Ô6½#Ø1Ð1 yÐ1Ñ1Ô1ñ;ô ;ò ð ð ð õ Ø�Š�Q‰Œ˜Ÿš¨Ñ+Ô+Ð5F×5MÒ5MÈdÑ5SÔ5Sðñ ô ð ð ð r]   c                 ó–  — t           t          }}t          |          } |dddd¬¦  «        }|                     ||¦  «          |dddd¬¦  «        }|                     ||¦  «         |                     dd¬¦  «         |                     ||¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         d S )Nrj   r2   F©rL   r²   r!  r=   Tr3   )r!  r=   )rÍ  rÎ  rA   rO   rÊ   r&   rV   )rI   rP   rQ   rÎ   rÏ   Úest_2s         r[   Útest_warm_start_clearr/  7  sÇ   € õ •X€q€AÝ'¨Ô-€OØ
ˆ/ q°AÀ%ÐVWÐ
XÑ
XÔ
X€CØ‡G‚GˆAˆq�M„M€MàˆOØ !°À1ðñ ô €Eð 
‡I‚Iˆa��O„O€OØ	×Ò °AÐÑ6Ô6Ð6Ø	‡I‚Iˆa��O„O€Oå˜eŸkšk¨!™nœn¨c¯iªi¸©l¬lÑ;Ô;Ð;Ð;Ð;r]   c                 ó@  — t           t          }}t          |          } |ddd¬¦  «        }|                     ||¦  «         |                     d¬¦  «         t          j        t          ¦  «        5  |                     ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nrj   r2   T)rL   r²   r!  rª   r&  )rÍ  rÎ  rA   rO   rÊ   r¡   r  rC  rÐ  s        r[   Ú$test_warm_start_smaller_n_estimatorsr1  I  s×   € õ •X€q€AÝ'¨Ô-€OØ
ˆ/ q°AÀ$Ð
GÑ
GÔ
G€CØ‡G‚GˆAˆq�M„M€MØ‡N‚N €NÑ"Ô"Ð"Ý	Œ•zÑ	"Ô	"ð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á/BÂBÂBc                 óþ  — t           t          }}t          |          } |dddd¬¦  «        }|                     ||¦  «          |dddd¬¦  «        }|                     ||¦  «         |                     d¬¦  «         d}t          j        t          |¬	¦  «        5  |                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   t          | 	                    |¦  «        | 	                    |¦  «        ¦  «         d S )
Nrj   r4   Tr2   r-  r3   r¥   r"  r  )
rÍ  rÎ  rA   rO   rÊ   r¡   r=  r>  r'   rV   )rI   rP   rQ   rÎ   rÏ   r.  r#  s          r[   Ú"test_warm_start_equal_n_estimatorsr3  U  s=  € õ •X€q€AÝ'¨Ô-€OØ
ˆ/ q°AÀ$ÐUVÐ
WÑ
WÔ
W€CØ‡G‚GˆAˆq�M„M€MàˆOØ !°À1ðñ ô €Eð 
‡I‚Iˆa��O„O€Oð 
×Ò !ÐÑ$Ô$Ð$àTð õ 
Œ•k¨Ð	2Ñ	2Ô	2ð ð Ø�	Š	�!�Q‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ �s—y’y ‘|”| U§[¢[°¡^¤^Ñ4Ô4Ð4Ð4Ð4s   ÂB<Â<C ÃC c                 óz  — t           t          }}t          |          } |dddddd¬¦  «        }|                     ||¦  «          |dddddd¬¦  «        }|                     ||¦  «         |                     ddd¬¦  «         |                     ||¦  «         t          |d	¦  «        sJ ‚|j        |j        k    sJ ‚ |dddddd¬¦  «        }|                     ||¦  «         t          |d	¦  «        rJ ‚|                     d¬
¦  «          t          |j        ¦  «        ||¦  «         |j        |j        k    sJ ‚d S )Né   r4   Fr2   T)rL   r²   r!  r=   rŸ   r   rj   )r!  r   rL   r(  rX  )rÍ  rÎ  rA   rO   rÊ   r«   r(  r(   )rI   rP   rQ   rÎ   rÏ   r.  Úest_3s          r[   Útest_warm_start_oobr7  o  s‡  € õ •X€q€AÝ'¨Ô-€Oà
ˆ/ØØØØØØðñ ô €Cð ‡G‚GˆAˆq�M„M€MàˆOØØØØØØðñ ô €Eð 
‡I‚Iˆa��O„O€Oà	×Ò °À2ÐÑFÔFÐFØ	‡I‚Iˆa��O„O€Oå�5˜,Ñ'Ô'Ð'Ð'Ð'ØŒ>˜UÔ-Ò-Ð-Ð-Ð-ð ˆOØØØØØØðñ ô €Eð 
‡I‚Iˆa��O„O€OÝ�u˜lÑ+Ô+Ð+Ð+Ð+à	×Ò˜tÐÑ$Ô$Ð$Ø…O�E”IÑÔ˜q !Ñ$Ô$Ð$àŒ>˜UÔ-Ò-Ð-Ð-Ð-Ð-Ð-r]   c                 óª  — t           t          }}t          |          } |dddd¬¦  «        }t          j        |d|j        ¬¦  «        5 }|                     ||¦  «         t          j        t          d¬¦  «        5  |                     ||¦  «         d d d ¦  «         n# 1 swxY w Y   | 
                    ¦   «          d d d ¦  «         d S # 1 swxY w Y   d S )Nr6   T)rL   r!  rŸ   r   r[  )Úwrapsz%Warm-start fitting without increasingr  )rÍ  rÎ  rA   r	   Úobjectr[  rO   r¡   r=  r>  Úassert_called_once)rI   rP   rQ   rÎ   rÏ   Ú!mock_set_oob_score_and_attributess         r[   Útest_oob_not_computed_twicer=  ¢  s]  € õ •X€q€AÝ'¨Ô-€Oà
ˆ/Ø D°DÀDðñ ô €Cõ 
ŒØÐ,°CÔ4Uð
ñ 
ô 
ð ?à	*Ø�Š��1‰ŒˆåŒ\�+Ð-TÐUÑUÔUð 	ð 	Ø�GŠG�A�q‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	*×<Ò<Ñ>Ô>Ð>ð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?ð ?ð ?s6   Á2CÁ9BÂCÂB 	Â CÂ#B 	Â$CÃCÃCr5  c                 ó  — t          dd¬¦  «        }t          j        | ¦  «        }d„ dd | …         D ¦   «         }|                     ||¦  «                             |¦  «        }t          |j        |¦  «         t          ||¦  «         d S )Nr   Frr  c                 ó   — g | ]}|‘ŒS rì   rì   )rè   Úchs     r[   rê   z&test_dtype_convert.<locals>.<listcomp>»  s   € Ð:Ð:Ð:�ˆÐ:Ð:Ð:r]   ÚABCDEFGHIJKLMNOPQRSTU)r   r†   ÚeyerO   rR   r'   r¦   )r  r/  rP   rQ   Úresults        r[   Útest_dtype_convertrD  ·  sŠ   € Ý'°QÀ%ÐHÑHÔH€Jå
ŒˆyÑÔ€AØ:Ð:Ð-¨j¨y¨jÔ9Ð:Ñ:Ô:€Aà�^Š^˜A˜qÑ!Ô!×)Ò)¨!Ñ,Ô,€FÝ�zÔ*¨AÑ.Ô.Ð.Ý�v˜qÑ!Ô!Ð!Ð!Ð!r]   c                 óˆ  ‡‡	‡
— t           t          }}|j        d         }t          |          } |dddd¬¦  «        }|                     ||¦  «         |                     |¦  «        \  Š	Š
‰	j        d         ‰
d         k    sJ ‚‰	j        d         |k    sJ ‚t          t          j        ‰
¦  «        d„ |j	        D ¦   «         ¦  «         | 
                    |¦  «        }t          |j        d         ¦  «        D ]LŠˆˆ	ˆ
fd„t          |d d …‰f         ¦  «        D ¦   «         }t          |t          j        |¬	¦  «        ¦  «         ŒMd S )
Nr   rj   r2   Fr-  r1   c                 ó&   — g | ]}|j         j        ‘ŒS rì   )r	  Ú
node_count)rè   Úes     r[   rê   z&test_decision_path.<locals>.<listcomp>Î  s   € ÐKÐKÐK°a˜qœwÔ1ÐKÐKÐKr]   c                 ó<   •— g | ]\  }}‰|‰‰         |z   f         ‘ŒS rì   rì   )rè   ré   rí   Úest_idÚ	indicatorÚn_nodes_ptrs      €€€r[   rê   z&test_decision_path.<locals>.<listcomp>Ô  sA   ø€ ð 
ð 
ð 
á��1ð �a˜ VÔ,¨qÑ0Ð0Ô1ð
ð 
ð 
r]   )rW   )rÍ  rÎ  rW   rA   rO   Údecision_pathr'   r†   Údiffr  rV   rõ   rK  r&   rµ   )rI   rP   rQ   r7   rÎ   rÏ   ÚleavesÚleave_indicatorrJ  rK  rL  s           @@@r[   Útest_decision_pathrQ  Â  sp  øøø€ å•X€q€AØ”˜”
€IÝ'¨Ô-€OØ
ˆ/ q°AÀ%ÐVWÐ
XÑ
XÔ
X€CØ‡G‚GˆAˆq�M„M€MØ ×.Ò.¨qÑ1Ô1Ñ€Iˆ{àŒ?˜1Ô ¨R¤Ò0Ð0Ð0Ð0ØŒ?˜1Ô Ò*Ð*Ð*Ð*ÝÝ
Œ�ÑÔÐKÐK¸3¼?ÐKÑKÔKñô ð ð
 �YŠY�q‰\Œ\€FÝ˜œ QœÑ(Ô(ð Mð Mˆð
ð 
ð 
ð 
ð 
ð 
å! &¨¨¨¨F¨Ô"3Ñ4Ô4ð
ñ 
ô 
ˆõ 	" /µ2´7ÀÐ3KÑ3KÔ3KÑLÔLÐLÐLðMð Mr]   c                  óè   — t          j        dd¬¦  «        \  } }t          t          t          t
          g}|D ];} |d¬¦  «        }|                     | |¦  «         |j        D ]}|j        dk    sJ ‚ŒŒ<d S )NrÄ   r2   r@   r¾   )Úmin_impurity_decrease)	r   r   r   r   r   r   rO   r  rS  )rP   rQ   Úall_estimatorsÚ	EstimatorrÏ   r  s         r[   Útest_min_impurity_decreaserV  Û  s›   € ÝÔ$¨sÀÐCÑCÔC�D€A€qåÝÝÝð	€Nð $ð 5ð 5ˆ	Øˆi¨cÐ2Ñ2Ô2ˆØ�Š��1‰ŒˆØ”Oð 	5ð 	5ˆDð Ô-°Ò4Ð4Ð4Ð4Ð4ð	5ð5ð 5r]   c                  óŒ  — t          d¬¦  «        } t          j        d¦  «        }g d¢}d}t          j        t
          |¬¦  «        5  |                      ||¦  «         d d d ¦  «         n# 1 swxY w Y   g d¢}d}t          j        t
          |¬¦  «        5  |                      ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	NrH   ©r^   )r4   r4   )r1   r2   r4   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  rC  rO   )rÏ   rP   rQ   r  s       r[   Útest_poisson_y_positive_checkrY  í  sR  € Ý
¨)Ð
4Ñ
4Ô
4€CÝ
Œ�ÑÔ€Aàˆ
ˆ
€Að	/ð õ 
Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð 	ˆ	ˆ	€Að	0ð õ 
Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s$   ÁA)Á)A-Á0A-ÂB9Â9B=Ã B=c                   ó(   ‡ — e Zd Zˆ fd„Zˆ fd„Zˆ xZS )Ú	MyBackendc                 óH   •— d| _          t          ¦   «         j        |i |¤Ž d S )Nr   )rã   ÚsuperÚ__init__)ÚselfÚargsrù  rk  s      €r[   r^  zMyBackend.__init__  s,   ø€ ØˆŒ
Ø�‰ŒÔ˜$Ð) &Ð)Ð)Ð)Ð)Ð)r]   c                 ód   •— | xj         dz  c_         t          ¦   «                              ¦   «         S )Nr2   )rã   r]  Ú
start_call)r_  rk  s    €r[   rb  zMyBackend.start_call  s(   ø€ Øˆ
Œ
�a‰ˆ
Œ
Ý‰wŒw×!Ò!Ñ#Ô#Ð#r]   )Ú__name__Ú
__module__Ú__qualname__r^  rb  Ú__classcell__)rk  s   @r[   r[  r[    sQ   ø€ € € € € ð*ð *ð *ð *ð *ð$ð $ð $ð $ð $ð $ð $ð $ð $r]   r[  Útestingc                  óŒ  — t          dd¬¦  «        } t          j        d¦  «        5 \  }}|                      t          t
          ¦  «         d d d ¦  «         n# 1 swxY w Y   |j        dk    sJ ‚t          j        d¦  «        5 \  }}|                      t          ¦  «         d d d ¦  «         n# 1 swxY w Y   |j        dk    sJ ‚d S )Nr6   r3   )rL   rÀ   rg  r   )r   ÚjoblibÚparallel_backendrO   rP   rQ   rã   r´   )rY   ÚbarÀ   r  s       r[   Útest_backend_respectedrl    s1  € õ !¨b¸Ð
;Ñ
;Ô
;€Cå	Ô	  Ñ	+Ô	+ð ©|°°FØ�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð Œ8�aŠ<ˆ<ˆ<ˆ<õ 
Ô	  Ñ	+Ô	+ð ©w°°AØ×Ò�!ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð Œ8�qŠ=ˆ=ˆ=ˆ=ˆ=ˆ=s#   ¦$AÁAÁAÂB,Â,B0Â3B0c                  óÞ   — t          dddd¬¦  «        \  } }t          ddd¬¦  «                             | |¦  «        }t          j        d|j                             ¦   «         d	¬
¦  «        sJ ‚d S )Nr5  r4   r2   )r7   r9   r=   r  rj   rs   éÈ   )r€   r=   rL   gH¯¼šò×z>)Úabs_tol)r   r   rO   ÚmathÚiscloserÈ   r    )rP   rQ   rY   s      r[   Ú#test_forest_feature_importances_sumrr  #  s„   € ÝØ A°AÀðñ ô �D€A€qõ !Ø¨¸#ðñ ô ç	‚cˆ!ˆQ�i„ið õ Œ<˜˜3Ô3×7Ò7Ñ9Ô9À4ÐHÑHÔHÐHÐHÐHÐHÐHr]   c                  ó  — t          j        d¦  «        } t          j        d¦  «        }t          d¬¦  «                             | |¦  «        }t          |j        t          j        dt           j        ¬¦  «        ¦  «         d S )N)r6   r6   )r6   r6   r&  rð   )r†   r  rµ   r   rO   r'   rÈ   Úfloat64)rP   rQ   Úgbrs      r[   Ú*test_forest_degenerate_feature_importancesrv  -  sh   € å
Œ�ÑÔ€AÝ
Œ�‰Œ€AÝ
¨RÐ
0Ñ
0Ô
0×
4Ò
4°Q¸Ñ
:Ô
:€CÝ�sÔ/µ´¸"ÅBÄJÐ1OÑ1OÔ1OÑPÔPÐPÐPÐPr]   c                 ó¬  — t           t          }}d}t          ||j        d         z  ¦  «        }t	          |          d|d¬¦  «        }|                     ||¦  «         t	          |          d|d¬¦  «        }|                     ||¦  «         |j        |j        k    sJ ‚t          |                     ||¦  «        |                     ||¦  «        ¦  «         d S )Ng      ø?r   Té   ©rŸ   rJ  r=   )	rÍ  rÎ  rÙ   rW   rB   rO   Ú_n_samples_bootstrapr$   rg   )rI   rP   rQ   Úmax_samples_floatÚmax_sample_intÚest1Úest2s          r[   Útest_max_samples_geq_oner  5  sÜ   € õ •X€q€AØÐÝÐ*¨Q¬W°Q¬ZÑ7Ñ8Ô8€NÝ(¨Ô.ØÐ$5ÀBðñ ô €Dð 	‡H‚HˆQ��N„N€NÝ(¨Ô.Ø NÀðñ ô €Dð 	‡H‚HˆQ��N„N€NØÔ$¨Ô(AÒAÐAÐAÐAÝ�D—J’J˜q !Ñ$Ô$ d§j¢j°°AÑ&6Ô&6Ñ7Ô7Ð7Ð7Ð7r]   c                 óà   — t          |          dd¬¦  «        }d}t          j        t          |¬¦  «        5  |                     t
          t          ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NFrc   )rŸ   rJ  zl`max_sample` cannot be set if `bootstrap=False`. Either switch to `bootstrap=True` or set `max_sample=None`.r  )rB   r¡   r  rC  rO   rP   rQ   )rI   rÏ   r  s      r[   Útest_max_samples_bootstrapr�  H  s±   € õ (¨Ô
-¸È3Ð
OÑ
OÔ
O€Cð	ð õ
 
Œ•z¨Ð	1Ñ	1Ô	1ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   µ!A#Á#A'Á*A'c                 óÄ  — t          t          t          ddd¬¦  «        \  }}}}t          |          ddd¬¦  «        }|                     ||¦  «                             |¦  «        }t          |          dd d¬¦  «        }|                     ||¦  «                             |¦  «        }t          ||¦  «        }	t          ||¦  «        }
|	t          j        |
¦  «        k    sJ ‚d S )Nr5  r¾  r   )Ú
train_sizer~   r=   TrÞ   ry  )	r    rm   rn   rl   rO   rR   r   r¡   r¢   )rI   r’   r“   r”   r•   Ú
ms_1_modelÚms_1_predictÚms_None_modelÚms_None_predictÚms_1_msÚ
ms_None_mss              r[   Ú$test_max_samples_boundary_regressorsrŠ  U  só   € å'7Ý�u °À!ð(ñ (ô (Ñ$€GˆV�W˜fõ # 4Ô(Ø C°aðñ ô €Jð —>’> '¨7Ñ3Ô3×;Ò;¸FÑCÔC€Lå% dÔ+Ø D°qðñ ô €Mð $×'Ò'¨°Ñ9Ô9×AÒAÀ&ÑIÔI€Oå  ¨vÑ6Ô6€GÝ# O°VÑ<Ô<€Jà•f”m JÑ/Ô/Ò/Ð/Ð/Ð/Ð/Ð/r]   c                 ó˜  — t          t          t          dt          ¬¦  «        \  }}}}t          |          ddd¬¦  «        }|                     ||¦  «                             |¦  «        }t          |          dd d¬¦  «        }|                     ||¦  «                             |¦  «        }t          j                             ||¦  «         d S )Nr   )r=   ÚstratifyTrÞ   ry  )	r    rÅ   rÇ   rN   rO   r´   r†   rg  r$   )	rI   r’   r“   r”   r  r„  Ú
ms_1_probar†  Úms_None_probas	            r[   Ú%test_max_samples_boundary_classifiersr�  k  sÐ   € å"2Ý• qµ7ð#ñ #ô #Ñ€GˆV�W˜aõ $ DÔ)Ø C°aðñ ô €Jð —’ ¨Ñ1Ô1×?Ò?ÀÑGÔG€Jå& tÔ,Ø D°qðñ ô €Mð "×%Ò% g¨wÑ7Ô7×EÒEÀfÑMÔM€Må„J×Ò˜z¨=Ñ9Ô9Ð9Ð9Ð9r]   Úcsr_containerc                 óà   — g d¢g} | g d¢g¦  «        }t          ¦   «         }d}t          j        t          |¬¦  «        5  |                     ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr¨   r©   z3sparse multilabel-indicator for y is not supported.r  )r   r¡   r  rC  rO   )r�  rP   rQ   rÏ   Úmsgs        r[   Útest_forest_y_sparser“  ~  s¼   € à	ˆˆˆ€AØˆ�y�y�y�kÑ"Ô"€AÝ
 Ñ
"Ô
"€CØ
?€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ¿A#Á#A'Á*A'ÚForestClassc                 ó²  — t           j                             d¦  «        }|                     dd¦  «        }|                     d¦  «        dk    } | d|d ¬¦  «        } | d|d¬¦  «        }|                     ||¦  «         |                     ||¦  «         |j        d         j        }|j        d         j        }d}|j        |j        k    s
J |¦   «         ‚d S )Nr2   i'  r3   r   )rL   r=   rJ  z=Tree without `max_samples` restriction should have more nodes)r†   r‡   rˆ   r©  rO   r  r	  rG  )	r”  rŽ   rP   rQ   r}  r~  Útree1Útree2r’  s	            r[   Ú'test_little_tree_with_small_max_samplesr˜  ˆ  sð   € å
Œ)×
Ò
 Ñ
"Ô
"€Cà�	Š	�%˜ÑÔ€AØ�	Š	�%ÑÔ˜1Ò€Að ˆ;ØØØðñ ô €Dð ˆ;ØØØðñ ô €Dð 	‡H‚HˆQ��N„N€NØ‡H‚HˆQ��N„N€NàÔ˜QÔÔ%€EØÔ˜QÔÔ%€Eà
I€CØÔ˜eÔ.Ò.Ð.Ð.°Ñ.Ô.Ð.Ð.Ð.r]   ÚForestc                 óÚ   — ddl m} t                               dd¦  «        }|j        \  }} |||¦  «        }t          |          dd|¬¦  «        }|                     t          |¦  «         d S )Nr   )ÚMSEr1   r2   r3   )rL   rÀ   r^   )Úsklearn.tree._criterionr›  rn   rL  rW   rl   rO   rm   )r™  r›  rQ   r7   Ú	n_outputsÚmse_criterionrÏ   s          r[   Ú-test_mse_criterion_object_segfault_smoke_testrŸ  §  sy   € ð ,Ð+Ð+Ð+Ð+Ð+å�Š�b˜!ÑÔ€AØœ7Ñ€IˆyØ�C˜	 9Ñ-Ô-€MÝ
˜FÔ
#°¸1ÈÐ
VÑ
VÔ
V€Cà‡G‚G�E�1ÑÔÐÐÐr]   c                  ó@  — t           j                             d¦  «        } t          j        |                      dd¦  «        ¦  «        }t          dddd¬¦  «                             |¦  «        }|                     ¦   «         }d„ dD ¦   «         }t          ||¦  «         d	S )
z3Check feature names out for Random Trees Embedding.r   rÄ   rª   r3   F)rL   r²   r†  r=   c                 ó$   — g | ]\  }}d |› d|› �‘ŒS )Úrandomtreesembedding_r  rì   )rè   r  Úleafs      r[   rê   zAtest_random_trees_embedding_feature_names_out.<locals>.<listcomp>¿  s>   € ð ð ð ñ ˆD�$ð 	. Ð-Ð- tÐ-Ð-ðð ð r]   ))r   r3   )r   r4   )r   rj   )r   rk   r^  )r2   r4   )r2   rj   )r2   rk   N)	r†   r‡   rˆ   rÌ   r©  r   rO   Úget_feature_names_outr'   )r=   rP   r�  ÚnamesÚexpected_namess        r[   Ú-test_random_trees_embedding_feature_names_outr§  ·  s¬   € å”9×(Ò(¨Ñ+Ô+€LÝ
Œˆ|×!Ò! # qÑ)Ô)Ñ*Ô*€AÝ!Ø !°5Àqðñ ô ç	‚cˆ!�f„fð ð ×(Ò(Ñ*Ô*€Eðð ð	
ð	ñ ô €Nõ �~ uÑ-Ô-Ð-Ð-Ð-r]   c                 óF  — |                      t          j        j        dt	          t
          d¬¦  «        ¦  «         t          j                             d¬¦  «        }t          dd|¬¦  «        \  }} | |d¬	¦  «        }t          d
|¬¦  «        }t          |||d
¬¦  «         dS )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   )Úseedrn  r>   Tr¼   r3   )rÀ   r=   )ÚcvN)ÚsetattrÚsklearnÚensembleÚ_forestr   r.   r†   r‡   rˆ   r   r   r   )r�  ÚmonkeypatchrŽ   rP   rQ   rY   s         r[   Útest_read_only_bufferr±  Ñ  s­   € ð ×ÒÝÔÔ ØÝ• SÐ)Ñ)Ô)ñô ð õ
 Œ)×
Ò
 QÐ
Ñ
'Ô
'€Cå¨¸È3ÐOÑOÔO�D€A€qØˆ�a˜dÐ#Ñ#Ô#€Aå
 ¨¸Ð
<Ñ
<Ô
<€CÝ�C˜˜A !Ð$Ñ$Ô$Ð$Ð$Ð$r]   r  r  c                 óˆ   — t          j        d¬¦  «        \  }}t          dd| d¬¦  «        }|                     ||¦  «         dS )z^Check low max_samples works and is rounded to one.

    Non-regression test for gh-24037.
    T)Ú
return_X_yr6   g-Cëâ6?r   )rL   rJ  r  r=   N)r   Ú	load_winer   rO   )r  rP   rQ   r_  s       r[   Ú.test_round_samples_to_one_when_samples_too_lowrµ  å  sU   € õ Ô¨Ð.Ñ.Ô.�D€A€qÝ#Ø T¸ÐSTðñ ô €Fð ‡J‚Jˆq�!ÑÔÐÐÐr]   rª  c                 ó   — t          dd¬¦  «        \  }}|rd}nd} | d|d||¬¦  «        }|                     ||¦  «         |j                             ¦   «         }t	          ||j        ¦  «         |j        }t          |t          ¦  «        sJ ‚t          |¦  «        t          |¦  «        k    sJ ‚|d         j	        t          j        k    sJ ‚t          t          |¦  «        ¦  «        D ]¥}	|rlt          ||	         ¦  «        t          |¦  «        d	z  k    sJ ‚t          t          j        ||	         ¦  «        ¦  «        t          ||	         ¦  «        k     sJ ‚Œpt          t          ||	         ¦  «        ¦  «        t          |¦  «        k    sJ ‚Œ¦d}
||
         }||
         }||         }||         }|j        j        }t#          |¦  «        }|                     ||¦  «         |j        j        }t%          ||¦  «         dS )
z›Estimators_samples_ property should be consistent.

    Tests consistency across fits and whether or not the seed for the random generator
    is set.
    rn  r2   r@   rc   Nr6   )rL   rJ  rM   r=   rŸ   r   r3   )r   rO   Úestimators_samples_r½   r'   r  r‹  rô   rU   r¸   r†   Úint32rõ   rç   r-  r	  Úvaluer   r$   )r”  rŸ   rª  rP   rQ   rJ  rÏ   Úestimators_samplesÚ
estimatorsré   Úestimator_indexÚestimator_samplesr?  r’   r”   Úorig_tree_valuesÚnew_tree_valuess                    r[   Útest_estimators_samplesrÀ  ò  s"  € õ  c¸Ð:Ñ:Ô:�D€A€qàð ØˆˆàˆØ
ˆ+ØØØØØðñ ô €Cð ‡G‚GˆAˆq�M„M€MàÔ0×5Ò5Ñ7Ô7Ðõ Ð)¨3Ô+BÑCÔCÐCØ”€JåÐ(­$Ñ/Ô/Ð/Ð/Ð/ÝÐ!Ñ"Ô"¥c¨*¡o¤oÒ5Ð5Ð5Ð5Ø˜aÔ Ô&­"¬(Ò2Ð2Ð2Ð2å•3�z‘?”?Ñ#Ô#ð =ð =ˆØð 	=ÝÐ)¨!Ô,Ñ-Ô-µ°Q±´¸1±Ò<Ð<Ð<Ð<õ •r”yÐ!3°AÔ!6Ñ7Ô7Ñ8Ô8½3Ð?QÐRSÔ?TÑ;UÔ;UÒUÐUÐUÐUÐUå•sÐ-¨aÔ0Ñ1Ô1Ñ2Ô2µc¸!±f´fÒ<Ð<Ð<Ð<Ð<à€OØ*¨?Ô;ÐØ˜?Ô+€IàÐ!Ô"€GØÐ!Ô"€Gà ”Ô,ÐÝ�iÑ Ô €IØ‡M‚M�'˜7Ñ#Ô#Ð#Ø”oÔ+€OÝÐ$ oÑ6Ô6Ð6Ð6Ð6r]   zForest, criterionc                 ó  — t           j                             d¦  «        }d\  }}|t          v rt          nt
          } ||||¬¦  «        \  }}|dk    r|t          j        |¦  «        z  }|                     ¦   «         }t           j        || 	                    ddg|j
        ddg¬	¦  «        <   t          j        |¦  «                             ¦   «         sJ ‚t          ||d¬
¦  «        \  }	}
}} | ||d¬¦  «        }|                     |	|¦  «         |                     |
|¦  «        }t          ||d¬
¦  «        \  }}}} | ||d¬¦  «        }|                     ||¦  «         |                     ||¦  «        }|d|z  k    sJ ‚dS )zJCheck that forest can deal with missing values and has decent performance.r   )r5   rj   r>   rH   FTgffffffî?r»   )rx   rä   r¥   r7  )r=   r^   rL   r…   N)r†   r‡   rˆ   ÚREG_CRITERIONSr   r   r×  r½   ÚnanÚchoicerW   ÚisnanÚanyr    rO   rg   )r™  r^   rŽ   r7   r8   Ú	make_datarP   rQ   Ú	X_missingÚX_missing_trainÚX_missing_testr”   r•   Úforest_with_missingÚscore_with_missingr’   r“   r_  Úscore_without_missings                      r[   Ú test_missing_values_is_resilientrÎ  ,  s®  € õ Œ)×
Ò
 Ñ
"Ô
"€CØ"Ñ€IˆzØ#,µÐ#>Ð#>•�ÕDW€IØˆ9˜y°ZÈcÐRÑRÔR�D€A€qð �IÒÐØ	�RŒV�A‰YŒY‰ˆð —’‘”€IÝIKÌ€Iˆc�jŠj˜% ˜¨Q¬W¸¸t¸ˆjÑEÔEÑFÝŒ8�IÑÔ×"Ò"Ñ$Ô$Ð$Ð$Ð$å7GØ�1 1ð8ñ 8ô 8Ñ4€O�^ W¨fð
 !˜&¨c¸YÐUWÐXÑXÔXÐØ×Ò˜O¨WÑ5Ô5Ð5Ø,×2Ò2°>À6ÑJÔJÐõ (8¸¸1È1Ð'MÑ'MÔ'MÑ$€GˆV�W˜fØˆV °	ÈÐKÑKÔK€FØ
‡J‚Jˆw˜Ñ Ô Ð Ø"ŸLšL¨°Ñ8Ô8Ðð  Ð(=Ñ!=Ò=Ð=Ð=Ð=Ð=Ð=r]   c                 óâ  — t           j                             |¦  «        }d}d}|                     |d¦  «        }|                     |¦  «        dk     }|                     |¦  «        }|                     |¦  «        dk     }	t           j        |||	z  <   t          j        |¦  «                             ¦   «         sJ ‚|                     ¦   «         }
||
dd…df<   t          |
||d¬	¦  «        \  }}}}}} | d|¬
¦  «        }| 
                    ||¦  «          | d|¬
¦  «        }| 
                    ||¦  «         |                     ||¦  «        }|                     ||¦  «        }|||z   k    sJ ‚dS )z_Check that the forest learns when missing values are only present for
    a predictive feature.r  r¾  r3   rc   r»   Nr2   r   r¥   )r=   r^   )r†   r‡   rˆ   r©  rÁ  rÃ  rÅ  rÆ  r½   r    rO   rg   )r™  r^   r
  rŽ   r7   Úexpected_score_gapÚX_non_predictiverQ   Úpredictive_featureÚ
noise_maskÚX_predictiveÚX_predictive_trainÚX_predictive_testÚX_non_predictive_trainÚX_non_predictive_testr”   r•   Úforest_predictiveÚforest_non_predictiveÚpredictive_test_scoreÚnon_predictive_test_scores                        r[   Ú test_missing_value_is_predictiverÝ  X  sª  € õ Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ€IØÐð —y’y ¨AÑ.Ô.ÐØ�Š�ÑÔ˜cÒ!€Að Ÿš 9Ñ-Ô-ÐØ—’˜)Ñ$Ô$ tÒ+€Jå)+¬Ð�q˜:‘~Ñ&ÝŒ8Ð&Ñ'Ô'×+Ò+Ñ-Ô-Ð-Ð-Ð-à#×(Ò(Ñ*Ô*€LØ+€L����A�Ñõ 	˜Ð'7¸ÈÐKÑKÔKñØØØØØØà˜¨A¸ÐCÑCÔCÐØ×ÒÐ,¨gÑ6Ô6Ð6Ø"˜F°¸YÐGÑGÔGÐØ×ÒÐ4°gÑ>Ô>Ð>à-×3Ò3Ð4EÀvÑNÔNÐØ 5× ;Ò ;Ø˜vñ!ô !Ðð !Ð$=Ð@RÑ$RÒRÐRÐRÐRÐRÐRr]   c                 ó†   — t          j        t          d¬¦  «        5   | d¬¦  «        }d d d ¦  «         d S # 1 swxY w Y   d S )NrG   r  rX  )r¡   r=  ÚFutureWarning)r™  r  s     r[   Útest_friedman_mse_deprecationrà  Œ  s�   € å	Œ•m¨>Ð	:Ñ	:Ô	:ð -ð -ØˆF˜^Ð,Ñ,Ô,ˆð-ð -ð -ñ -ô -ð -ð -ð -ð -ð -ð -ð -øøøð -ð -ð -ð -ð -ð -s   œ6¶:½:)r5  )¼Ú__doc__rª  rp  rg  Úcollectionsr   Ú	functoolsr   r   r   Útypingr   r   Úunittest.mockr	   ri  Únumpyr†   r¡   Úscipy.specialr
   r­  r   r   Úsklearn.datasetsr   r   r   Úsklearn.decompositionr   Úsklearn.dummyr   Úsklearn.ensembler   r   r   r   r   Úsklearn.ensemble._bootstrapr   Úsklearn.ensemble._forestr   Ú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/   rP   rQ   rS   rT   rÅ   rÇ   Ú	load_irisrd   rŽ   Úpermutationrf   rx   Úpermre   rm   rn   rÍ  rÎ  rÆ   Úfloat32ÚparallelÚget_active_backendrk  ÚDEFAULT_JOBLIB_BACKENDrN   rl   rí  r  rA   ÚstrÚ__annotations__Úupdater½   rB   ÚCLF_CRITERIONSrÂ  ÚmarkÚparametrizer\   rh   Úfilterwarningsrq   r�   r£   r­   r·   rt  ÚchainrÕ   r  r  rï   r   r3  r:  r@  rD  rG  rV  r\  r`  re  rp  ry  r€  r„  r�  r–  r�  r¡  r°  rÊ  rÑ  rÚ  rß  rê  rð  rú  rþ  r  r  r  r$  r+  r/  r1  r3  r7  r=  rD  rQ  rV  rY  r[  Úregister_parallel_backendÚthread_unsaferl  rr  rv  r  r�  rŠ  r�  r“  r˜  rŸ  r§  r±  rµ  rÀ  rÎ  rÝ  rà  rì   r]   r[   ú<module>r	     sO  ððð ð ð Ð Ð Ð Ø €€€Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø Ð Ð Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à €€€Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð à €€€Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ .Ð .Ð .Ð .Ð .Ð .Ø (Ð (Ð (Ð (Ð (Ð (ðð ð ð ð ð ð ð ð ð ð ð ð ð ð AÐ @Ð @Ð @Ð @Ð @Ø @Ð @Ð @Ð @Ð @Ð @Ø -Ð -Ð -Ð -Ð -Ð -ðð ð ð ð ð ð ð ð ð ð ð ð TÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SÐ SØ !Ð !Ð !Ð !Ð !Ð !Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð OÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NØ 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø +Ð +Ð +Ð +Ð +Ð +Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7ð 	ˆ"€X��Bˆx˜"˜b˜ A q 6¨A¨q¨6°A°q°6Ð:€ØÐÐ€Øˆ"€X��1ˆv˜˜1�vÐ€Øˆjˆj€ð 0�8Ô/ØØØØØØØðñ ô Ñ €ˆð €xÔÑÔ€ØÐ˜ÑÔ€Ø
‡‚�t”{Ô'Ñ(Ô(€ØŒI�dŒO€„	ØŒk˜$Ô€„ð (ˆxÔ'°#À"ÐSTÐUÑUÔU�€€uð /�XÔ.¸È!ÐLÑLÔLÑ €ˆ(Ø�?Š?˜2œ:Ñ&Ô&€ð  œ×;Ò;Ñ=Ô=¸aÔ@ÔJÐ ð 1Ø4ðð Ð ð /Ø2ðð Ð ð Ð0ðÐ ð %) D¡F¤FÐ �4˜˜S˜”>Ð *Ð *Ñ *Ø × Ò Ð+Ñ ,Ô ,Ð ,Ø × Ò Ð*Ñ +Ô +Ð +Ø × Ò Ð,Ñ -Ô -Ð -à0B×0GÒ0GÑ0IÔ0IÐ ˜t C¨ Hœ~Ð IÐ IÑ IØ × $Ò $Ð%6Ñ 7Ô 7Ð 7à%€ØO€ð „×Ò˜Ð!3Ñ4Ô4ð<ð <ñ 5Ô4ð<ð& „×Ò˜Ð!3Ñ4Ô4Ø„×Ò˜Ð&:Ñ;Ô;ðWð Wñ <Ô;ñ 5Ô4ðWð$ „×ÒÐCÑDÔDØ„×Ò˜Ð!2Ñ3Ô3Ø„×ÒØÐDñô ðð ñô ñ 4Ô3ñ EÔDð
ð42/ð 2/ð 2/ðj „×Ò˜Ð&BÑCÔCð>ð >ñ DÔCð>ð& „×Ò˜Ð!2Ñ3Ô3ð(ð (ñ 4Ô3ð(ð „×Ò˜Ð!3Ñ4Ô4ð
ð 
ñ 5Ô4ð
ð  „×Ò˜ 2¤:¨r¬zÐ":Ñ;Ô;Ø„×ÒØØ€I„OØˆÐ" V¨ZÐ$8Ñ9Ô9ØˆÐ! OÐ5EÐ#FÑGÔGñô ñô ð'Hð 'Hñô ñ <Ô;ð'HðTj@ð j@ð j@ðZ „×Ò˜Ð!2Ñ3Ô3ðCð Cñ 4Ô3ðCð „×ÒÐ+Ð-?×-FÒ-FÑ-HÔ-HÑIÔIØ„×Ò˜Ð#HÐ#HÐ#HÑIÔIØ„×ÒØ ð	
Ø)ˆXÔ)°CÀ1ÐSTÐUÑUÔUð	
àð	
ð 	
ð	
Ø)ˆXÔ)Ø¨!¸1È1ðñ ô ð	
ð ð		
ð 	
ð ŒIØŒK˜!‰O˜aÑØð	
ð
	
Ø4ˆXÔ4¸sÐQRÐSÑSÔSð	
àð	
ð 	
ð!ñô ð0 „×Ò˜ t¨W¨W°XÀwÐ-OÑ-OÔ-OÐ&PÑQÔQð'Eð 'Eñ RÔQñ1ô ñ JÔIñ JÔIð6'EðT „×ÒÐ*Ð,=×,DÒ,DÑ,FÔ,FÑGÔGØ„×Ò˜Ð#HÐ#HÐ#HÑIÔIØ„×ÒØð	
Ø%ˆXÔ%Ø¨"¸Èðñ ô ð	
ð ð		
ð 	
ð	
Ø%ˆXÔ%Ø¨"¸Èðñ ô ð	
ð ð		
ð 	
ðñô ð" „×Ò˜ tÐ-EÐ&FÑGÔGð%=ð %=ñ HÔGñ#ô ñ JÔIñ HÔGð(%=ðP „×ÒÐ*Ð,I×,PÒ,PÑ,RÔ,RÑSÔSð
.ð 
.ñ TÔSð
.ð „×ÒÐ*Ð,I×,PÒ,PÑ,RÔ,RÑSÔSð	ð 	ñ TÔSð	ð „×ÒÐ+Ð-?×-FÒ-FÑ-HÔ-HÑIÔIðð ñ JÔIðð „×ÒÐ*Ð,=×,DÒ,DÑ,FÔ,FÑGÔGðJð Jñ HÔGðJð: „×Ò˜ t¨U mÑ4Ô4ðCð Cñ 5Ô4ðCð „×Ò˜Ð!3Ñ4Ô4ð$ð $ñ 5Ô4ð$ð „×Ò˜Ð!>Ñ?Ô?ð)ð )ñ @Ô?ð)ð, „×Ò˜Ð!>Ñ?Ô?ðð ñ @Ô?ðð* „×Ò˜Ð!>Ñ?Ô?ð00ð 00ñ @Ô?ð00ðf „×Ò˜Ð!3Ñ4Ô4ð4,ð 4,ñ 5Ô4ð4,ðn „×Ò˜Ð!3Ñ4Ô4ð9ð 9ñ 5Ô4ð9ð$
1ð 
1ð 
1ðLð Lð Lð&1ð 1ð 1ð. „×Ò˜¨.Ñ9Ô9ðPð Pñ :Ô9ðPð2ð 2ð 2ð&3ð 3ð 3ðl „×Ò˜Ð!2Ñ3Ô3ð/ð /ñ 4Ô3ð/ð „×Ò˜Ð!2Ñ3Ô3ðSð Sñ 4Ô3ðSð& „×Ò˜Ð!2Ñ3Ô3ðRð Rñ 4Ô3ðRð. „×Ò˜Ð!2Ñ3Ô3ð
ð 
ñ 4Ô3ð
ð> „×Ò˜Ð!2Ñ3Ô3Ø„×ÒØ˜¨Ñ7¸.ÑHñô ð
ð 
ñô ñ 4Ô3ð
ð> „×Ò˜Ð!>Ñ?Ô?Ø„×Ò˜ 2¤:¨r¬zÐ":Ñ;Ô;ð;ð ;ñ <Ô;ñ @Ô?ð;ð8 „×Ò˜Ð!2Ñ3Ô3ðð ñ 4Ô3ðð$ „×Ò˜Ð!3Ñ4Ô4Ø„×Ò˜ i i iÑ0Ô0ð$)ð $)ñ 1Ô0ñ 5Ô4ð$)ðN „×Ò˜Ð!3Ñ4Ô4Ø„×Ò˜ t¨U mÑ4Ô4ð8Nð 8Nñ 5Ô4ñ 5Ô4ð8Nðv „×Ò˜Ð!3Ñ4Ô4ðð ñ 5Ô4ðð „×Ò˜Ð!3Ñ4Ô4ðð ñ 5Ô4ðð* „×Ò˜Ð!2Ñ3Ô3ðð ñ 4Ô3ðð8 „×Ò˜Ð!2Ñ3Ô3ð<ð <ñ 4Ô3ð<ð" „×Ò˜Ð!2Ñ3Ô3ðð ñ 4Ô3ðð „×Ò˜Ð!2Ñ3Ô3ð5ð 5ñ 4Ô3ð5ð2 „×Ò˜Ð!>Ñ?Ô?ð/.ð /.ñ @Ô?ð/.ðd „×Ò˜Ð!>Ñ?Ô?ð?ð ?ñ @Ô?ð?ð("ð "ð "ð "ð „×Ò˜Ð!>Ñ?Ô?ðMð Mñ @Ô?ðMð05ð 5ð 5ð$ð ð ð,$ð $ð $ð $ð $Ð&ñ $ô $ð $ð !€Ô   ¨IÑ 6Ô 6Ð 6ð
 „ÔØðð ñ Ôñ ÔððIð Ið IðQð Qð Qð „×Ò˜Ð!>Ñ?Ô?ð8ð 8ñ @Ô?ð8ð$ „×Ò˜Ð!>Ñ?Ô?ð	ð 	ñ @Ô?ð	ð „×Ò˜Ð!2Ñ3Ô3ð0ð 0ñ 4Ô3ð0ð* „×Ò˜Ð!3Ñ4Ô4ð:ð :ñ 5Ô4ð:ð$ „×Ò˜¨.Ñ9Ô9ðð ñ :Ô9ðð „×Ò˜Ð)?ÐAVÐ(WÑXÔXð4ð 4ñ YÔXð4ð< „×Ò˜Ð#4Ñ5Ô5ðð ñ 6Ô5ðð.ð .ð .ð4 „×Ò˜¨.Ñ9Ô9ð%ð %ñ :Ô9ð%ð& „×Ò˜Ð*>ÀÐ)EÑFÔFð	ð 	ñ GÔFð	ð „×Ò˜ $¨ Ñ+Ô+Ø„×Ò˜ t¨U mÑ4Ô4Ø„×Ò˜Ð(E×(LÒ(LÑ(NÔ(NÑOÔOð37ð 37ñ PÔOñ 5Ô4ñ ,Ô+ð37ðn „×ÒÐCÑDÔDØ„×ÒØðØ	ˆÐ"×)Ò)Ñ+Ô+¨^Ñ	<Ô	<ðà	ˆÐ#×*Ò*Ñ,Ô,¨nÑ	=Ô	=ðñô ð >ð  >ñô ñ EÔDð >ðH „×ÒÐCÑDÔDØ„×ÒØðØ	ˆÐ"×)Ò)Ñ+Ô+¨^Ñ	<Ô	<ðà	ˆÐ#×*Ò*Ñ,Ô,¨nÑ	=Ô	=ðñô ð(Sð (Sñô ñ EÔDð(SðX „×Ò˜Ð#4×#;Ò#;Ñ#=Ô#=Ñ>Ô>ð-ð -ñ ?Ô>ð-ð -ð -r]   