§
    §éUg‰å  ã            
       ó.  — d Z ddl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 ddlmZmZ ddlmZmZ ddlmZmZ dd	lmZ dd
lmZ ddlmZmZ ddlmZ ddlmZ ddl m!Z! ddl"m#Z# ddl$m%Z% ddl&m'Z' ddl(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/m0Z0m1Z1 ddl2m3Z3m4Z4m5Z5 eegZ6ddgddgddgddgddgddggZ7g d¢Z8ddgddgddggZ9g d¢Z: eddd d!d"¬#¦  «        \  Z;Z< e%e<¦  «        Z<ej=         >                    d¦  «        Z? e	j@        ¦   «         ZAe? B                    eAjC        jD        ¦  «        ZEeAjF        eE         eA_F        eAjC        eE         eA_C        d$„ ZGd%„ ZHejI         J                    d&d'¦  «        d(„ ¦   «         ZKejI         J                    d&d'¦  «        d)„ ¦   «         ZLejI         J                    d&d*¦  «        ejI         J                    d+d,¦  «        d-„ ¦   «         ¦   «         ZMejI         J                    d+d,¦  «        ejI         J                    d.d/¦  «        d0„ ¦   «         ¦   «         ZNd1„ ZOejI         J                    d2ee;e<feeAjF        eAjC        fg¦  «        d3„ ¦   «         ZPd4„ ZQd5„ ZRejI         J                    d6e4¦  «        d7„ ¦   «         ZSd8„ ZTd9„ ZUd:„ ZVd;„ ZWd<„ ZXejI         J                    d=e6¦  «        d>„ ¦   «         ZYd?„ ZZd@„ Z[dA„ Z\dB„ Z]dC„ Z^dD„ Z_dE„ Z`ejI         J                    dFe6¦  «        dG„ ¦   «         ZaejI         J                    dFe6¦  «        dH„ ¦   «         ZbejI         J                    dIedJfedKfedLfedJfedKfedLfg¦  «        dM„ ¦   «         ZcdN„ ZddO„ ZedP„ ZfejI         J                    dQe6¦  «        dR„ ¦   «         ZgejI         J                    dQe6¦  «        dS„ ¦   «         ZhejI         J                    dQe6¦  «        dT„ ¦   «         ZiejI         J                    dQe6¦  «        dU„ ¦   «         ZjejI         J                    dVe6¦  «        dW„ ¦   «         ZkejI         J                    dQe6¦  «        dX„ ¦   «         ZlejI         J                    dQe6¦  «        dY„ ¦   «         ZmejI         J                    dQe6¦  «        dZ„ ¦   «         ZnejI         J                    dQe6¦  «        d[„ ¦   «         ZoejI         J                    dQe6¦  «        ejI         J                    d\e3e4z   e5z   ¦  «        d]„ ¦   «         ¦   «         ZpejI         J                    dQe6¦  «        d^„ ¦   «         Zqd_„ ZrejI         J                    dQe6¦  «        d`„ ¦   «         Zsda„ Ztdb„ Zudc„ Zvdd„ ZwejI         J                    dee6¦  «        df„ ¦   «         ZxejI         J                    dee6¦  «        dg„ ¦   «         Zydh„ ZzejI         J                    dig dj¢¦  «        dk„ ¦   «         Z{dl„ Z|e1ejI         J                    dmeef¦  «        ejI         J                    d\e3e4z   e5z   ¦  «        dn„ ¦   «         ¦   «         ¦   «         Z}ejI         J                    dFeeg¦  «        do„ ¦   «         Z~dp„ Zdq„ Z€dr„ Z�ds„ Z‚ejI         J                    dteeefee‚efeeefgg du¢¬v¦  «        dw„ ¦   «         Zƒdx„ Z„dy„ Z…dz„ Z†d{„ Z‡d|„ Zˆd}„ Z‰e1d~„ ¦   «         ZŠd„ Z‹d€„ ZŒd�„ Z�dS )‚zP
Testing for the gradient boosting module (sklearn.ensemble.gradient_boosting).
é    N)Úassert_allclose)Údatasets)Úclone)Úmake_classificationÚmake_regression)ÚDummyClassifierÚDummyRegressor)ÚGradientBoostingClassifierÚGradientBoostingRegressor)Ú_safe_divide)Úpredict_stages)ÚDataConversionWarningÚNotFittedError)ÚLinearRegression)Úmean_squared_error)Útrain_test_split)Úmake_pipeline)Úscale)ÚNuSVR)Úcheck_random_state)ÚNoSampleWeightWrapper)ÚInvalidParameterError)Úassert_array_almost_equalÚassert_array_equalÚskip_if_32bit)ÚCOO_CONTAINERSÚCSC_CONTAINERSÚCSR_CONTAINERSéþÿÿÿéÿÿÿÿé   é   )r    r    r    r!   r!   r!   é   )r    r!   r!   éd   é   é   é
   é   )Ú	n_samplesÚ
n_featuresÚn_informativeÚnoiseÚrandom_statec                  óæ   — t          d¬¦  «        } d}t          j        t          |¬¦  «        5  |                      t
          j        t
          j        ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z/Test exponential loss raises for n_classes > 2.Úexponential©Úlossz?loss='exponential' is only suitable for a binary classification©ÚmatchN)r
   ÚpytestÚraisesÚ
ValueErrorÚfitÚirisÚdataÚtarget©ÚclfÚmsgs     úl/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyÚtest_exponential_n_classes_gt_2r?   ;   s¨   € å
$¨-Ð
8Ñ
8Ô
8€CØ
K€CÝ	Œ•z¨Ð	-Ñ	-Ô	-ð (ð (Ø�Š•”	�4œ;Ñ'Ô'Ð'ð(ð (ð (ñ (ô (ð (ð (ð (ð (ð (ð (ð (øøøð (ð (ð (ð (ð (ð (s   ®+A&Á&A*Á-A*c                  óÜ   — t          t          ¬¦  «        } d}t          j        t          |¬¦  «        5  |                      t          t          ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z0Test raise if init_ has no predict_proba method.©ÚinitzŠThe 'init' parameter of GradientBoostingClassifier must be a str among {'zero'}, None or an object implementing 'fit' and 'predict_proba'.r2   N)r
   r   r4   r5   r6   r7   ÚXÚyr;   s     r>   Ú'test_raise_if_init_has_no_predict_probarE   C   sª   € å
$Õ*CÐ
DÑ
DÔ
D€Cð	Nð õ 
Œ•z¨Ð	-Ñ	-Ô	-ð ð Ø�Š••1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ³!A!Á!A%Á(A%r1   ©Úlog_lossr/   c                 óN  — t          | d|¬¦  «        }t          j        t          ¦  «        5  |                     t
          ¦  «         d d d ¦  «         n# 1 swxY w Y   |                     t          t          ¦  «         t          |                     t
          ¦  «        t          ¦  «         dt          |j        ¦  «        k    sJ ‚|j        d d…         |j        dd …         z
  }t          j        |dk    ¦  «        sJ ‚|                     t          ¦  «        }|j        dk    sJ ‚d S )Nr'   )r1   Ún_estimatorsr-   r    r!   ç        )é   r'   r!   )r
   r4   r5   r6   ÚpredictÚTr7   rC   rD   r   Útrue_resultÚlenÚestimators_Útrain_score_ÚnpÚanyÚapplyÚshape)r1   Úglobal_random_seedr<   Úlog_loss_decreaseÚleavess        r>   Útest_classification_toyrY   N   sE  € õ %Ø Ð1Cðñ ô €Cõ 
Œ•zÑ	"Ô	"ð ð Ø�Š•A‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡G‚G�A�q�M„M€MÝ�s—{’{¥1‘~”~¥{Ñ3Ô3Ð3Ø•�S”_Ñ%Ô%Ò%Ð%Ð%Ð%àÔ(¨¨"¨Ô-°Ô0@ÀÀÀÔ0DÑDÐÝŒ6Ð# sÒ*Ñ+Ô+Ð+Ð+Ð+à�YŠY•q‰\Œ\€FØŒ<˜:Ò%Ð%Ð%Ð%Ð%Ð%s   ¬AÁAÁAc                 óˆ  — t          j        d|¬¦  «        \  }}d}|d |…         ||d …         }}|d |…         ||d …         }}dd| |dœ}	t          dddi|	¤Ž}
|
                     ||¦  «         t          ddd	i|	¤Ž}|                     ||¦  «         |
                     ||¦  «        |                     ||¦  «        k     sJ ‚d
d| |dœ}	t          dddi|	¤Ž}|                     ||¦  «         t          dddi|	¤Ž}|                     ||¦  «         |                     ||¦  «        |                     ||¦  «        k    sJ ‚d S )NéÐ  ©r)   r-   iô  r!   ç      ð?)Ú	max_depthÚlearning_rater1   r-   rI   r'   é2   éÈ   )rI   r_   r1   r-   r^   Úmax_leaf_nodes© )r   Úmake_hastie_10_2r
   r7   Úscore)r1   rV   rC   rD   Ú	split_idxÚX_trainÚX_testÚy_trainÚy_testÚcommon_paramsÚgbrt_10_stumpsÚgbrt_50_stumpsÚgbrt_stumpsÚgbrt_10_nodess                 r>   Útest_classification_syntheticrp   c   s«  € õ Ô$¨tÐBTÐUÑUÔU�D€A€qà€IØ˜
˜˜
”m Q y z z¤]ˆV€GØ˜
˜˜
”m Q y z z¤]ˆV€Gð ØØØ*ð	ð €Mõ 0ÐQÐQ¸RÐQÀ=ÐQÐQ€NØ×Ò�w Ñ(Ô(Ð(å/ÐQÐQ¸RÐQÀ=ÐQÐQ€NØ×Ò�w Ñ(Ô(Ð(à×Ò ¨Ñ/Ô/°.×2FÒ2FÀvÈvÑ2VÔ2VÒVÐVÐVÐVð
 ØØØ*ð	ð €Mõ -ÐJÐJ°qÐJ¸MÐJÐJ€KØ‡O‚O�G˜WÑ%Ô%Ð%å.ÐRÐR¸bÐRÀMÐRÐR€MØ×Ò�g˜wÑ'Ô'Ð'à×Ò˜V VÑ,Ô,¨}×/BÒ/BÀ6È6Ñ/RÔ/RÒRÐRÐRÐRÐRÐRó    )Úsquared_errorÚabsolute_errorÚhuberÚ	subsample)r]   ç      à?c           
      ó¢  — t          j        t          t          ¦  «        ¦  «        }d }d |d|z  fD ]�}t	          d| d|d|d¬¦  «        }|                     t          t          |¬¦  «         |                     t          ¦  «        }|j        dk    sJ ‚| 	                    t          ¦  «        }t          t          |¦  «        }	|	dk     sJ ‚|�	 |}Œžd S )	Nr"   é   r%   rv   )rI   r1   r^   ru   Úmin_samples_splitr-   r_   ©Úsample_weight)r$   rx   gš™™™™™©?)rR   ÚonesrO   Úy_regr   r7   ÚX_regrT   rU   rL   r   )
r1   ru   rV   r|   Úlast_y_predr{   ÚregrX   Úy_predÚmses
             r>   Útest_regression_datasetrƒ   ‘   sê   € õ
 Œ7•3•u‘:”:ÑÔ€DØ€KØ  a¨$¡hÐ/ð ð ˆõ (ØØØØØØ+Øð
ñ 
ô 
ˆð 	�Š••u¨MˆÑ:Ô:Ð:Ø—’�5Ñ!Ô!ˆØŒ|˜yÒ(Ð(Ð(Ð(à—’�UÑ#Ô#ˆÝ ¥¨Ñ/Ô/ˆØ�TŠzˆzˆzˆzàÐ"ð àˆˆð?ð rq   r{   )Nr!   c                 ó¢  — |dk    r+t          j        t          t          j        ¦  «        ¦  «        }t          dd|| ¬¦  «        }|                     t          j        t          j        |¬¦  «         |                     t          j        t          j        ¦  «        }|dk    sJ ‚| 	                    t          j        ¦  «        }|j
        dk    sJ ‚d S )Nr!   r$   rG   ©rI   r1   r-   ru   rz   çÍÌÌÌÌÌì?)é–   r$   r#   )rR   r|   rO   r8   r:   r
   r7   r9   re   rT   rU   )ru   r{   rV   r<   re   rX   s         r>   Ú	test_irisrˆ   º   s¶   € ð ˜ÒÐÝœ¥¥D¤KÑ 0Ô 0Ñ1Ô1ˆå
$ØØØ'Øð	ñ ô €Cð ‡G‚G�DŒI•t”{°-€GÑ@Ô@Ð@Ø�IŠI•d”i¥¤Ñ-Ô-€EØ�3Š;ˆ;ˆ;ˆ;à�YŠY•t”yÑ!Ô!€FØŒ<˜=Ò(Ð(Ð(Ð(Ð(Ð(rq   c                 óŒ  — t          | ¦  «        }ddddd| dœ}t          j        d|d¬	¦  «        \  }}|d d
…         |d d
…         }}|d
d …         |d
d …         }}t          di |¤Ž}	|	                     ||¦  «         t          ||	                     |¦  «        ¦  «        }
|
dk     sJ ‚t          j        d|¬¦  «        \  }}|d d
…         |d d
…         }}|d
d …         |d
d …         }}t          di |¤Ž}	|	                     ||¦  «         t          ||	                     |¦  «        ¦  «        }
|
dk     sJ ‚t          j        d|¬¦  «        \  }}|d d
…         |d d
…         }}|d
d …         |d
d …         }}t          di |¤Ž}	|	                     ||¦  «         t          ||	                     |¦  «        ¦  «        }
|
dk     sJ ‚d S )Nr$   r%   r"   çš™™™™™¹?rr   )rI   r^   ry   r_   r1   r-   é°  r]   ©r)   r-   r,   ra   g      @r\   g     ˆ£@gš™™™™™™?rc   )	r   r   Úmake_friedman1r   r7   r   rL   Úmake_friedman2Úmake_friedman3)rV   r-   Úregression_paramsrC   rD   rg   ri   rh   rj   r<   r‚   s              r>   Útest_regression_syntheticr‘   Î   s  € õ &Ð&8Ñ9Ô9€LàØØØØØ*ðð Ðõ Ô"¨TÀÐTWÐXÑXÔX�D€A€qØ˜˜#˜”w  $ 3 $¤ˆW€GØ�s�t�t”W˜a   œgˆF€Få
#Ð
8Ð
8Ð&7Ð
8Ð
8€CØ‡G‚GˆG�WÑÔÐÝ
˜V S§[¢[°Ñ%8Ô%8Ñ
9Ô
9€CØ�Š9ˆ9ˆ9ˆ9õ Ô"¨TÀÐMÑMÔM�D€A€qØ˜˜#˜”w  $ 3 $¤ˆW€GØ�s�t�t”W˜a   œgˆF€Få
#Ð
8Ð
8Ð&7Ð
8Ð
8€CØ‡G‚GˆG�WÑÔÐÝ
˜V S§[¢[°Ñ%8Ô%8Ñ
9Ô
9€CØ�Š<ˆ<ˆ<ˆ<õ Ô"¨TÀÐMÑMÔM�D€A€qØ˜˜#˜”w  $ 3 $¤ˆW€GØ�s�t�t”W˜a   œgˆF€Få
#Ð
8Ð
8Ð&7Ð
8Ð
8€CØ‡G‚GˆG�WÑÔÐÝ
˜V S§[¢[°Ñ%8Ô%8Ñ
9Ô
9€CØ�Š;ˆ;ˆ;ˆ;ˆ;ˆ;rq   zGradientBoosting, X, yc                 óŽ   —  | ¦   «         }t          |d¦  «        rJ ‚|                     ||¦  «         t          |d¦  «        sJ ‚d S )NÚfeature_importances_)Úhasattrr7   )ÚGradientBoostingrC   rD   Úgbdts       r>   Útest_feature_importancesr—   ú   sW   € ð ÐÑÔ€DÝ�tÐ3Ñ4Ô4Ð4Ð4Ð4Ø‡H‚HˆQ��N„N€NÝ�4Ð/Ñ0Ô0Ð0Ð0Ð0Ð0Ð0rq   c                 ó~  — t          d| ¬¦  «        }t          j        t          ¦  «        5  |                     t
          ¦  «         d d d ¦  «         n# 1 swxY w Y   |                     t          t          ¦  «         t          | 
                    t
          ¦  «        t          ¦  «         |                     t
          ¦  «        }t          j        |dk    ¦  «        sJ ‚t          j        |dk    ¦  «        sJ ‚|j                             |                     d¬¦  «        d¬¦  «        }t          |t          ¦  «         d S )Nr$   ©rI   r-   rJ   r]   r!   )Úaxisr   )r
   r4   r5   r6   Úpredict_probarM   r7   rC   rD   r   rL   rN   rR   ÚallÚclasses_ÚtakeÚargmax)rV   r<   Úy_probar�   s       r>   Útest_probability_logr¡   
  sD  € å
$°#ÐDVÐ
WÑ
WÔ
W€Cå	Œ•zÑ	"Ô	"ð ð Ø×Ò�!ÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ‡G‚G�A�q�M„M€MÝ�s—{’{¥1‘~”~¥{Ñ3Ô3Ð3ð ×Ò¥Ñ"Ô"€GÝŒ6�'˜S’.Ñ!Ô!Ð!Ð!Ð!ÝŒ6�'˜S’.Ñ!Ô!Ð!Ð!Ð!ð Œ\×Ò˜wŸ~š~°1˜~Ñ5Ô5¸AÐÑ>Ô>€FÝ�v�{Ñ+Ô+Ð+Ð+Ð+s   «AÁAÁAc                  óà   — g d¢} t          dd¬¦  «        }d}t          j        t          |¬¦  «        5  |                     t
          t          | ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )N)r   r   r   r!   r!   r!   r$   r!   r™   zty contains 1 class after sample_weight trimmed classes with zero weights, while a minimum of 2 classes are required.r2   rz   )r
   r4   r5   r6   r7   rC   rD   )r{   r<   r=   s      r>   Ú$test_single_class_with_sample_weightr£     s½   € Ø&Ð&Ð&€MÝ
$°#ÀAÐ
FÑ
FÔ
F€Cð	Cð õ 
Œ•z¨Ð	-Ñ	-Ô	-ð 3ð 3Ø�Š••1 MˆÑ2Ô2Ð2ð3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3s   ³#A#Á#A'Á*A'Úcsc_containerc                 ó`  — t          j        dd¬¦  «        \  }} | |¦  «        }t          dd¬¦  «        }|                     ||¦  «         t	          j        |j        ¦  «                             dd¦  «        }d}t          j	        t          |¬¦  «        5  t          |j        ||j        |¦  «         d d d ¦  «         n# 1 swxY w Y   t	          j        |¦  «        }t          j	        t          d¬¦  «        5  t          |j        ||j        |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )	Nr$   r!   r\   r™   r    z3When X is a sparse matrix, a CSR format is expectedr2   z X should be C-ordered np.ndarray)r   rd   r
   r7   rR   ÚzerosrU   Úreshaper4   r5   r6   r   rP   r_   Úasfortranarray)r¤   ÚxrD   Úx_sparse_cscr<   re   Úerr_msgÚ	x_fortrans           r>   Ú test_check_inputs_predict_stagesr­   )  sÀ  € õ Ô$¨sÀÐCÑCÔC�D€A€qØ �= Ñ#Ô#€LÝ
$°#ÀAÐ
FÑ
FÔ
F€CØ‡G‚GˆAˆq�M„M€MÝŒH�a”gÑÔ×'Ò'¨¨AÑ.Ô.€EØC€GÝ	Œ•z¨Ð	1Ñ	1Ô	1ð Pð PÝ�s”¨°cÔ6GÈÑOÔOÐOðPð Pð Pñ Pô Pð Pð Pð Pð Pð Pð Pøøøð Pð Pð Pð PåÔ! !Ñ$Ô$€IÝ	Œ•zÐ)KÐ	LÑ	LÔ	Lð Mð MÝ�s”¨	°3Ô3DÀeÑLÔLÐLðMð Mð Mñ Mô Mð Mð Mð Mð Mð Mð Mð Møøøð Mð Mð Mð Mð Mð Ms$   ÂB?Â?CÃCÃ9D#Ä#D'Ä*D'c                 óV  — t          j        d| ¬¦  «        \  }}|d d…         |dd …         }}|d d…         |dd …         }}t          ddddd| ¬¦  «        }|                     ||¦  «         |                     ||                     |¦  «        ¦  «        }|d	k     sJ d
|z  ¦   «         ‚d S )Néà.  r\   r[   r$   é   r"   rŠ   )rI   ry   r^   r_   Úmax_featuresr-   rv   zGB failed with deviance %.4f)r   rd   r
   r7   Ú_lossÚdecision_function)	rV   rC   rD   rg   rh   ri   rj   ÚgbrtrG   s	            r>   Útest_max_feature_regressionrµ   :  sÈ   € åÔ$¨uÐCUÐVÑVÔV�D€A€qà˜˜˜”h  $ % %¤ˆV€GØ˜˜˜”h  $ % %¤ˆV€Gå%ØØØØØØ'ðñ ô €Dð 	‡H‚HˆW�gÑÔÐØ�zŠz˜& $×"8Ò"8¸Ñ"@Ô"@ÑAÔA€HØ�cŠ>ˆ>ˆ>Ð9¸HÑD‰>Œ>ˆ>ˆ>ˆ>rq   c                 ót  ‡—  | ¦   «         Š‰j         ‰j        }}t          |||¬¦  «        \  }}}}t          dddd|¬¦  «        }|                     ||¦  «         t          j        |j        ¦  «        ddd…         }	ˆfd	„|	D ¦   «         }
|
d
         dk    sJ ‚t          |
dd…         ¦  «        h d£k    sJ ‚dS )a  Test that Gini importance is calculated correctly.

    This test follows the example from [1]_ (pg. 373).

    .. [1] Friedman, J., Hastie, T., & Tibshirani, R. (2001). The elements
       of statistical learning. New York: Springer series in statistics.
    ©r-   rt   rŠ   rK   r$   )r1   r_   rb   rI   r-   Nr    c                 ó*   •— g | ]}‰j         |         ‘ŒS rc   )Úfeature_names)Ú.0ÚsÚ
californias     €r>   ú
<listcomp>z6test_feature_importance_regression.<locals>.<listcomp>g  s!   ø€ ÐGÐGÐG°q�zÔ/°Ô2ÐGÐGÐGrq   r   ÚMedIncr!   r%   >   ÚAveOccupÚLatitudeÚ	Longitude)	r9   r:   r   r   r7   rR   Úargsortr“   Úset)Úfetch_california_housing_fxtrV   rC   rD   rg   rh   ri   rj   r€   Ú
sorted_idxÚsorted_featuresr¼   s              @r>   Ú"test_feature_importance_regressionrÇ   N  s   ø€ ð .Ð-Ñ/Ô/€JØŒ?˜JÔ-€q€AÝ'7Ø	ˆ1Ð-ð(ñ (ô (Ñ$€GˆV�W˜fõ $ØØØØØ'ðñ ô €Cð ‡G‚GˆG�WÑÔÐÝ”˜CÔ4Ñ5Ô5°d°d¸°dÔ;€JØGÐGÐGÐG¸JÐGÑGÔG€Oð ˜1Ô Ò)Ð)Ð)Ð)õ
 ˆ˜q ˜sÔ#Ñ$Ô$Ð(MÐ(MÐ(MÒMÐMÐMÐMÐMÐMrq   c                  óœ  — t          j        dd¬¦  «        \  } }| j        \  }}| d d…         }|d d…         }t          dd ¬¦  «        }|                     ||¦  «         |j        |k    sJ ‚t          dd ¬¦  «        }|                     ||¦  «         |j        |k    sJ ‚t          dd¬¦  «        }|                     ||¦  «         |j        t          |dz  ¦  «        k    sJ ‚t          dd¬¦  «        }|                     ||¦  «         |j        t          t          j	        |¦  «        ¦  «        k    sJ ‚t          dd¬¦  «        }|                     ||¦  «         |j        t          t          j
        |¦  «        ¦  «        k    sJ ‚t          dd	| j        d         z  ¬¦  «        }|                     ||¦  «         |j        dk    sJ ‚d S )
Nr¯   r!   r\   r[   )rI   r±   ç333333Ó?ÚsqrtÚlog2g{®Gáz„?)r   rd   rU   r
   r7   Úmax_features_r   ÚintrR   rÊ   rË   )rC   rD   Ú_r*   rg   ri   r´   s          r>   Útest_max_featuresrÏ   r  sß  € åÔ$¨uÀ1ÐEÑEÔE�D€A€qØ”G�M€A€zà���Œh€GØ���Œh€Gå%°1À4ÐHÑHÔH€DØ‡H‚HˆW�gÑÔÐØÔ Ò+Ð+Ð+Ð+å$°!À$ÐGÑGÔG€DØ‡H‚HˆW�gÑÔÐØÔ Ò+Ð+Ð+Ð+å$°!À#ÐFÑFÔF€DØ‡H‚HˆW�gÑÔÐØÔ¥ Z°#Ñ%5Ñ!6Ô!6Ò6Ð6Ð6Ð6å$°!À&ÐIÑIÔI€DØ‡H‚HˆW�gÑÔÐØÔ¥¥R¤W¨ZÑ%8Ô%8Ñ!9Ô!9Ò9Ð9Ð9Ð9å$°!À&ÐIÑIÔI€DØ‡H‚HˆW�gÑÔÐØÔ¥¥R¤W¨ZÑ%8Ô%8Ñ!9Ô!9Ò9Ð9Ð9Ð9å$°!À$ÈÌÐQRÌÑBSÐTÑTÔT€DØ‡H‚HˆW�gÑÔÐØÔ Ò"Ð"Ð"Ð"Ð"Ð"rq   c                  ó$  — t          j        ddd¬¦  «        \  } }| d d…         |d d…         }}| dd …         }t          ¦   «         }t          j        t
          ¦  «        5  t          j        |                     |¦  «        t          j	        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   | 
                    ||¦  «         |                     |¦  «        }|                     |¦  «        D ]}|j        |j        k    sJ ‚Œt          ||¦  «         d S )Nr‹   r!   r]   rŒ   ra   ©Údtype)r   r�   r   r4   r5   r6   rR   ÚfromiterÚstaged_predictÚfloat64r7   rL   rU   r   )rC   rD   rg   ri   rh   r<   r�   s          r>   Útest_staged_predictrÖ   “  s_  € õ Ô"¨TÀÈÐMÑMÔM�D€A€qØ˜˜#˜”w  $ 3 $¤ˆW€GØˆsˆtˆtŒW€FÝ
#Ñ
%Ô
%€Cå	Œ•zÑ	"Ô	"ð Bð BÝ
Œ�C×&Ò& vÑ.Ô.µb´jÐAÑAÔAÐAðBð Bð Bñ Bô Bð Bð Bð Bð Bð Bð Bøøøð Bð Bð Bð Bð ‡G‚GˆG�WÑÔÐØ�[Š[˜Ñ Ô €Fð ×Ò Ñ'Ô'ð 'ð 'ˆØŒw˜&œ,Ò&Ð&Ð&Ð&Ð&å˜f aÑ(Ô(Ð(Ð(Ð(s   Á 4B Â B$Â'B$c                  ó  — t          j        dd¬¦  «        \  } }| d d…         |d d…         }}| dd …         |dd …         }}t          d¬¦  «        }t          j        t
          ¦  «        5  t          j        |                     |¦  «        t          j	        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   | 
                    ||¦  «         |                     |¦  «        D ]}|j        |j        k    sJ ‚Œt          |                     |¦  «        |¦  «         |                     |¦  «        D ]3}|j        d         |j        d         k    sJ ‚d	|j        d         k    sJ ‚Œ4t          |                     |¦  «        |¦  «         d S )
Nr‹   r!   r\   ra   é   ©rI   rÑ   r   r"   )r   rd   r
   r4   r5   r   rR   rÓ   Ústaged_predict_probarÕ   r7   rÔ   rU   r   rL   r   r›   )	rC   rD   rg   ri   rh   rj   r<   r�   Ústaged_probas	            r>   Útest_staged_predict_probarÜ   ¨  sá  € õ Ô$¨tÀ!ÐDÑDÔD�D€A€qØ˜˜#˜”w  $ 3 $¤ˆW€GØ�s�t�t”W˜a   œgˆF€FÝ
$°"Ð
5Ñ
5Ô
5€Cå	Œ•~Ñ	&Ô	&ð Hð HÝ
Œ�C×,Ò,¨VÑ4Ô4½B¼JÐGÑGÔGÐGðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hð ‡G‚GˆG�WÑÔÐð ×$Ò$ VÑ,Ô,ð ,ð ,ˆØŒ|˜vœ|Ò+Ð+Ð+Ð+Ð+å�s—{’{ 6Ñ*Ô*¨FÑ3Ô3Ð3ð ×0Ò0°Ñ8Ô8ð *ð *ˆØŒ|˜AŒ ,Ô"4°QÔ"7Ò7Ð7Ð7Ð7Ø�LÔ& qÔ)Ò)Ð)Ð)Ð)Ð)å˜c×/Ò/°Ñ7Ô7¸ÑFÔFÐFÐFÐFs   Á+4B+Â+B/Â2B/Ú	Estimatorc                 ó   — t           j                             |¦  «        }|                     d¬¦  «        }d|d d …df         z                       t
          ¦  «        dz   } | ¦   «         }|                     ||¦  «         dD ]‹}t          |d|z   d ¦  «        }|€Œt          j	        d¬	¦  «        5  t           ||¦  «        ¦  «        }d d d ¦  «         n# 1 swxY w Y   d|d         d d …<   t          j        |d         dk    ¦  «        sJ ‚ŒŒd S )
N)r'   r#   )Úsizer%   r   r!   )rL   r³   r›   Ústaged_T)Úrecord)rR   ÚrandomÚRandomStateÚuniformÚastyperÍ   r7   ÚgetattrÚwarningsÚcatch_warningsÚlistrœ   )	rÝ   rV   ÚrngrC   rD   Ú	estimatorÚfuncÚstaged_funcÚstaged_results	            r>   Útest_staged_functions_defensiverï   Ã  s`  € õ Œ)×
Ò
Ð 2Ñ
3Ô
3€CØ�Š˜ˆÑ!Ô!€AØ	
ˆQˆqˆqˆq�!ˆtŒW‰×Ò�SÑ!Ô! AÑ%€AØ�	‘”€IØ‡M‚M�!�QÑÔÐØAð -ð -ˆÝ˜i¨°TÑ)9¸4Ñ@Ô@ˆØÐàÝÔ$¨DÐ1Ñ1Ô1ð 	1ð 	1Ý   ¨Q¡¤Ñ0Ô0ˆMð	1ð 	1ð 	1ñ 	1ô 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1øøøð 	1ð 	1ð 	1ð 	1àˆ�aÔ˜˜˜ÑÝŒv�m AÔ&¨!Ò+Ñ,Ô,Ð,Ð,Ð,Ð,ð-ð -s   Â0CÃC	ÃC	c                  ó  — t          dd¬¦  «        } |                      t          t          ¦  «         t	          |                      t          ¦  «        t          ¦  «         dt          | j	        ¦  «        k    sJ ‚	 dd l
}n# t          $ r dd l}Y nw xY w|                     | |j        ¬¦  «        }d } |                     |¦  «        } t	          |                      t          ¦  «        t          ¦  «         dt          | j	        ¦  «        k    sJ ‚d S )Nr$   r!   r™   r   )Úprotocol)r
   r7   rC   rD   r   rL   rM   rN   rO   rP   ÚcPickleÚImportErrorÚpickleÚdumpsÚHIGHEST_PROTOCOLÚloads)r<   rô   Úserialized_clfs      r>   Útest_serializationrù   Ö  s  € å
$°#ÀAÐ
FÑ
FÔ
F€Cà‡G‚G�A�q�M„M€MÝ�s—{’{¥1‘~”~¥{Ñ3Ô3Ð3Ø•#�c”oÑ&Ô&Ò&Ð&Ð&Ð&ðØ Ð Ð Ð Ð øÝð ð ð Øˆˆˆˆˆðøøøð —\’\ #°Ô0G�\ÑHÔH€NØ
€CØ
�,Š,�~Ñ
&Ô
&€CÝ�s—{’{¥1‘~”~¥{Ñ3Ô3Ð3Ø•#�c”oÑ&Ô&Ò&Ð&Ð&Ð&Ð&Ð&s   Á:A? Á?BÂBc            	      ó¸  — t          dd¬¦  «        } t          j        t          ¦  «        5  |                      t
          t          j        t          t
          ¦  «        ¦  «        ¦  «         d d d ¦  «         n# 1 swxY w Y   t          dd¬¦  «        } |                      t
          t          j        t          t
          ¦  «        ¦  «        ¦  «         |  
                    t                               d¦  «        g¦  «         t          t          j        dt          j        ¬¦  «        |  
                    t                               d¦  «        g¦  «        ¦  «         d S )Nr$   r!   r™   r"   )r!   rÑ   )r
   r4   r5   r6   r7   rC   rR   r|   rO   r   rL   rê   Úrandr   rÕ   ©r<   s    r>   Útest_degenerate_targetsrý   ê  s0  € å
$°#ÀAÐ
FÑ
FÔ
F€Cõ 
Œ•zÑ	"Ô	"ð $ð $Ø�Š••2”7�3�q™6œ6‘?”?Ñ#Ô#Ð#ð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $õ $°À1Ð
EÑ
EÔ
E€CØ‡G‚G�A�rŒw•s�1‘v”v‰ŒÑÔÐØ‡K‚K•—’˜!‘”�ÑÔÐÝ•r”w˜t­2¬:Ð6Ñ6Ô6¸¿ºÅSÇXÂXÈaÁ[Ä[ÀMÑ8RÔ8RÑSÔSÐSÐSÐSs   «A A7Á7A;Á>A;c                 ó\  — t          dddd| ¬¦  «        }|                     t          t          ¦  «         |                     t          ¦  «        }t          ddd| ¬¦  «        }|                     t          t          ¦  «         |                     t          ¦  «        }t          ||¦  «         d S )Nr$   Úquantiler%   rv   )rI   r1   r^   Úalphar-   rs   )rI   r1   r^   r-   )r   r7   r~   r}   rL   r   )rV   Úclf_quantileÚ
y_quantileÚclf_aeÚy_aes        r>   Útest_quantile_lossr  ø  s­   € å,ØØØØØ'ðñ ô €Lð ×Ò•U�EÑ"Ô"Ð"Ø×%Ò%¥eÑ,Ô,€Jå&ØØØØ'ð	ñ ô €Fð ‡J‚J�u•eÑÔÐØ�>Š>�%Ñ Ô €DÝ�J Ñ%Ô%Ð%Ð%Ð%rq   c            	      óz  — t          dd¬¦  «        } t          t          t          t          ¦  «        ¦  «        }|                      t          |¦  «         t          |                      t          ¦  «        t          t          t          t          ¦  «        ¦  «        ¦  «         dt          | j        ¦  «        k    sJ ‚d S )Nr$   r!   r™   )r
   ré   ÚmapÚstrrD   r7   rC   r   rL   rM   rN   rO   rP   )r<   Úsymbol_ys     r>   Útest_symbol_labelsr
    sŠ   € å
$°#ÀAÐ
FÑ
FÔ
F€Cå•C��Q‘K”KÑ Ô €Hà‡G‚G�AˆxÑÔÐÝ�s—{’{¥1‘~”~¥t­Cµµ[Ñ,AÔ,AÑ'BÔ'BÑCÔCÐCØ•#�c”oÑ&Ô&Ò&Ð&Ð&Ð&Ð&Ð&rq   c                  ór  — t          dd¬¦  «        } t          j        t          t          j        ¬¦  «        }|                      t          |¦  «         t          |                      t          ¦  «        t          j        t          t          j        ¬¦  «        ¦  «         dt          | j        ¦  «        k    sJ ‚d S ©Nr$   r!   r™   rÑ   )r
   rR   ÚasarrayrD   Úfloat32r7   rC   r   rL   rM   rN   rO   rP   )r<   Úfloat_ys     r>   Útest_float_class_labelsr    sŠ   € å
$°#ÀAÐ
FÑ
FÔ
F€CåŒj�¥"¤*Ð-Ñ-Ô-€Gà‡G‚G�AˆwÑÔÐÝ�s—{’{¥1‘~”~¥r¤zµ+ÅRÄZÐ'PÑ'PÔ'PÑQÔQÐQØ•#�c”oÑ&Ô&Ò&Ð&Ð&Ð&Ð&Ð&rq   c                  óÌ  — t          dd¬¦  «        } t          j        t          t          j        ¬¦  «        }|d d …t          j        f         }d}t          j        t          |¬¦  «        5  |  	                    t          |¦  «         d d d ¦  «         n# 1 swxY w Y   t          |                      t          ¦  «        t          ¦  «         dt          | j        ¦  «        k    sJ ‚d S )Nr$   r!   r™   rÑ   z†A column-vector y was passed when a 1d array was expected. Please change the shape of y to \(n_samples, \), for example using ravel().r2   )r
   rR   r  rD   Úint32Únewaxisr4   Úwarnsr   r7   rC   r   rL   rM   rN   rO   rP   )r<   Úy_Úwarn_msgs      r>   Útest_shape_yr  '  s  € å
$°#ÀAÐ
FÑ
FÔ
F€Cå	Œ•A�RœXÐ	&Ñ	&Ô	&€BØ	ˆAˆAˆA�rŒzˆMÔ	€Bð	!ð õ
 
ŒÕ+°8Ð	<Ñ	<Ô	<ð ð Ø�Š•�2‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð å�s—{’{¥1‘~”~¥{Ñ3Ô3Ð3Ø•#�c”oÑ&Ô&Ò&Ð&Ð&Ð&Ð&Ð&s   Á*BÂBÂBc                  óæ  — t          j        t          ¦  «        } t          dd¬¦  «        }|                     | t
          ¦  «         t          |                     t          ¦  «        t          ¦  «         dt          |j        ¦  «        k    sJ ‚t          j        t          ¦  «        } t          dd¬¦  «        }|                     | t
          ¦  «         t          |                     t          ¦  «        t          ¦  «         dt          |j        ¦  «        k    sJ ‚t          j        t
          t           j        ¬¦  «        }t          j        |¦  «        }t          dd¬¦  «        }|                     t          |¦  «         t          |                     t          ¦  «        t          ¦  «         dt          |j        ¦  «        k    sJ ‚t          j        t
          t           j        ¬¦  «        }t          j        |¦  «        }t          dd¬¦  «        }|                     t          |¦  «         t          |                     t          ¦  «        t          ¦  «         dt          |j        ¦  «        k    sJ ‚d S r  )rR   r¨   rC   r
   r7   rD   r   rL   rM   rN   rO   rP   Úascontiguousarrayr  r  )ÚX_r<   r  s      r>   Útest_mem_layoutr  <  sÔ  € å	Ô	�1Ñ	Ô	€BÝ
$°#ÀAÐ
FÑ
FÔ
F€CØ‡G‚GˆB•�N„N€NÝ�s—{’{¥1‘~”~¥{Ñ3Ô3Ð3Ø•#�c”oÑ&Ô&Ò&Ð&Ð&Ð&å	Ô	�aÑ	 Ô	 €BÝ
$°#ÀAÐ
FÑ
FÔ
F€CØ‡G‚GˆB•�N„N€NÝ�s—{’{¥1‘~”~¥{Ñ3Ô3Ð3Ø•#�c”oÑ&Ô&Ò&Ð&Ð&Ð&å	Œ•A�RœXÐ	&Ñ	&Ô	&€BÝ	Ô	˜bÑ	!Ô	!€BÝ
$°#ÀAÐ
FÑ
FÔ
F€CØ‡G‚G�Aˆr�N„N€NÝ�s—{’{¥1‘~”~¥{Ñ3Ô3Ð3Ø•#�c”oÑ&Ô&Ò&Ð&Ð&Ð&å	Œ•A�RœXÐ	&Ñ	&Ô	&€BÝ	Ô	˜2Ñ	Ô	€BÝ
$°#ÀAÐ
FÑ
FÔ
F€CØ‡G‚G�Aˆr�N„N€NÝ�s—{’{¥1‘~”~¥{Ñ3Ô3Ð3Ø•#�c”oÑ&Ô&Ò&Ð&Ð&Ð&Ð&Ð&rq   ÚGradientBoostingEstimatorc                 óø   —  | ddd¬¦  «        }|                      t          t          ¦  «         |j        j        d         dk    sJ ‚t          |j        d d…         t          j        g d¢¦  «        d¬	¦  «         d S )
Nr$   r!   rv   ©rI   r-   ru   r   r°   )gR¸…ëQÈ?g333333Ã?g¸…ëQ¸¾?g)\�Âõ(¼¿g)\�Âõ(¼?r"   )Údecimal)r7   rC   rD   Úoob_improvement_rU   r   rR   Úarray)r  rë   s     r>   Útest_oob_improvementr"  Y  s›   € ð *Ð)Ø q°Cðñ ô €Ið ‡M‚M•!•QÑÔÐØÔ%Ô+¨AÔ.°#Ò5Ð5Ð5Ð5åØÔ" 2 A 2Ô&Ý
ŒÐ0Ð0Ð0Ñ1Ô1Øðñ ô ð ð ð rq   c                 óÒ  — t          j        dd¬¦  «        \  }} | ddd¬¦  «        }|                     ||¦  «         |j        j        d         dk    sJ ‚|j        d         t          j        |j        ¦  «        k    sJ ‚ | dddd¬	¦  «        }|                     ||¦  «         |j        j        d         dk     sJ ‚|j        d         t          j        |j        ¦  «        k    sJ ‚d S )
Nr$   r!   r\   rv   r  r   r    r°   )rI   r-   ru   Ún_iter_no_change)r   rd   r7   Úoob_scores_rU   r4   ÚapproxÚ
oob_score_)r  rC   rD   rë   s       r>   Útest_oob_scoresr(  i  s  € õ Ô$¨sÀÐCÑCÔC�D€A€qØ)Ð)Ø q°Cðñ ô €Ið ‡M‚M�!�QÑÔÐØÔ Ô& qÔ)¨SÒ0Ð0Ð0Ð0ØÔ  Ô$­¬°iÔ6JÑ(KÔ(KÒKÐKÐKÐKà)Ð)ØØØØð	ñ ô €Ið ‡M‚M�!�QÑÔÐØÔ Ô& qÔ)¨CÒ/Ð/Ð/Ð/ØÔ  Ô$­¬°iÔ6JÑ(KÔ(KÒKÐKÐKÐKÐKÐKrq   z(GradientBoostingEstimator, oob_attributer   r%  r'  c                 óò   — t          j        dd¬¦  «        \  }} | ddd¬¦  «        }|                     ||¦  «         t          j        t
          ¦  «        5  |j         ddd¦  «         dS # 1 swxY w Y   dS )zZ
    Check that we raise an AttributeError when the OOB statistics were not computed.
    r$   r!   r\   r]   r  N)r   rd   r7   r4   r5   ÚAttributeErrorÚoob_attribute)r  r+  rC   rD   rë   s        r>   Útest_oob_attributes_errorr,    sÐ   € õ Ô$¨sÀÐCÑCÔC�D€A€qØ)Ð)ØØØðñ ô €Ið
 ‡M‚M�!�QÑÔÐÝ	Œ•~Ñ	&Ô	&ð  ð  ØÔÐð ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   ÁA,Á,A0Á3A0c                  óD  — t          dddd¬¦  «        } |                      t          j        t          j        ¦  «         |                      t          j        t          j        ¦  «        }|dk    sJ ‚| j        j        d         | j        k    sJ ‚| j	        j        d         | j        k    sJ ‚| j	        d         t          j        | j        ¦  «        k    sJ ‚t          ddddd	¬
¦  «        } |                      t          j        t          j        ¦  «         |                      t          j        t          j        ¦  «        }| j        j        d         | j        k     sJ ‚| j	        j        d         | j        k     sJ ‚| j	        d         t          j        | j        ¦  «        k    sJ ‚d S )Nr$   rG   r!   rv   r…   r†   r   r    r°   )rI   r1   r-   ru   r$  )r
   r7   r8   r9   r:   re   r   rU   rI   r%  r4   r&  r'  )rë   re   s     r>   Útest_oob_multilcass_irisr.  ™  s  € å*Ø˜z¸ÀSðñ ô €Ið ‡M‚M•$”)�Tœ[Ñ)Ô)Ð)Ø�OŠO�DœI¥t¤{Ñ3Ô3€EØ�3Š;ˆ;ˆ;ˆ;ØÔ%Ô+¨AÔ.°)Ô2HÒHÐHÐHÐHØÔ Ô& qÔ)¨YÔ-CÒCÐCÐCÐCØÔ  Ô$­¬°iÔ6JÑ(KÔ(KÒKÐKÐKÐKå*ØØØØØðñ ô €Ið ‡M‚M•$”)�Tœ[Ñ)Ô)Ð)Ø�OŠO�DœI¥t¤{Ñ3Ô3€EØÔ%Ô+¨AÔ.°Ô1GÒGÐGÐGÐGØÔ Ô& qÔ)¨IÔ,BÒBÐBÐBÐBØÔ  Ô$­¬°iÔ6JÑ(KÔ(KÒKÐKÐKÐKÐKÐKrq   c                  óô  — dd l } ddlm} | j        } |¦   «         | _        t	          dddd¬¦  «        }|                     t          t          ¦  «         | j        }|| _        |                     d¦  «         | 	                    ¦   «          
                    ¦   «         }d                     dgd	gd
z  z   ¦  «        dz  }||k    sJ ‚t          d„ |                     ¦   «         D ¦   «         ¦  «        }d|k    sJ ‚d S )Nr   ©ÚStringIOr$   r!   çš™™™™™é?)rI   r-   Úverboseru   ú ú%10sú%16sr#   )ÚIterú
Train LosszOOB ImproveúRemaining Timec              3   ó   K  — | ]}d V — ŒdS ©r!   Nrc   ©rº   Úls     r>   ú	<genexpr>z&test_verbose_output.<locals>.<genexpr>Ó  ó"   è è € Ð8Ð8˜�!Ð8Ð8Ð8Ð8Ð8Ð8rq   é   ©ÚsysÚior1  Ústdoutr
   r7   rC   rD   ÚseekÚreadlineÚrstripÚjoinÚsumÚ	readlines©rB  r1  Ú
old_stdoutr<   Úverbose_outputÚheaderÚtrue_headerÚn_liness           r>   Útest_verbose_outputrQ  ¹  s  € à€J€J€JØÐÐÐÐÐà”€JØ�‘”€C„JÝ
$Ø q°!¸sðñ ô €Cð ‡G‚G�A�q�M„M€MØ”Z€NØ€C„Jð ×Ò˜ÑÔÐØ×$Ò$Ñ&Ô&×-Ò-Ñ/Ô/€Fà—(’(˜F˜8 v h°¡lÑ2Ñ3Ô3ð 7ñ €Kð ˜&Ò Ð Ð Ð åÐ8Ð8˜^×5Ò5Ñ7Ô7Ð8Ñ8Ô8Ñ8Ô8€Gà�WÒÐÐÐÐÐrq   c                  óò  — dd l } ddlm} | j        } |¦   «         | _        t	          ddd¬¦  «        }|                     t          t          ¦  «         | j        }|| _        |                     d¦  «         | 	                    ¦   «          
                    ¦   «         }d                     dgd	gdz  z   ¦  «        d
z  }||k    sJ ‚t          d„ |                     ¦   «         D ¦   «         ¦  «        }d|k    sJ ‚d S )Nr   r0  r$   r!   r"   )rI   r-   r3  r4  r5  r6  )r7  r8  r9  c              3   ó   K  — | ]}d V — ŒdS r;  rc   r<  s     r>   r>  z+test_more_verbose_output.<locals>.<genexpr>ï  r?  rq   rA  rK  s           r>   Útest_more_verbose_outputrT  Ø  s  € à€J€J€JØÐÐÐÐÐà”€JØ�‘”€C„JÝ
$°#ÀAÈqÐ
QÑ
QÔ
Q€CØ‡G‚G�A�q�M„M€MØ”Z€NØ€C„Jð ×Ò˜ÑÔÐØ×$Ò$Ñ&Ô&×-Ò-Ñ/Ô/€Fà—(’(˜F˜8 v h°¡lÑ2Ñ3Ô3ð 7ñ €Kð
 ˜&Ò Ð Ð Ð åÐ8Ð8˜^×5Ò5Ñ7Ô7Ð8Ñ8Ô8Ñ8Ô8€Gà�'Š>ˆ>ˆ>ˆ>ˆ>ˆ>rq   ÚClsc                 ó|  — t          j        d|¬¦  «        \  }} | dd|¬¦  «        }|                     ||¦  «          | ddd|¬¦  «        }|                     ||¦  «         |                     d¬¦  «         |                     ||¦  «         | t          u r8t          |                     |¦  «        |                     |¦  «        ¦  «         d S t          |                     |¦  «        |                     |¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         d S )	Nr$   r\   ra   r!   ©rI   r^   r-   T©rI   r^   Ú
warm_startr-   rÙ   )	r   rd   r7   Ú
set_paramsr   r   rL   r   r›   ©rU  rV   rC   rD   ÚestÚest_wss         r>   Útest_warm_startr^  ô  s9  € õ Ô$¨sÐASÐTÑTÔT�D€A€qØ
ˆ#˜3¨!Ð:LÐ
MÑ
MÔ
M€CØ‡G‚GˆAˆq�M„M€MàˆSØ A°$ÐEWðñ ô €Fð ‡J‚Jˆq�!ÑÔÐØ
×Ò 3ÐÑ'Ô'Ð'Ø
‡J‚Jˆq�!ÑÔÐà
Õ'Ð'Ð'Ý˜Ÿš qÑ)Ô)¨3¯;ª;°q©>¬>Ñ:Ô:Ð:Ð:Ð:õ 	˜6Ÿ>š>¨!Ñ,Ô,¨c¯kªk¸!©n¬nÑ=Ô=Ð=Ý˜×,Ò,¨QÑ/Ô/°×1BÒ1BÀ1Ñ1EÔ1EÑFÔFÐFÐFÐFrq   c                 óŽ  — t          j        d|¬¦  «        \  }} | dd|¬¦  «        }|                     ||¦  «          | ddd|¬¦  «        }|                     ||¦  «         |                     d¬¦  «         |                     ||¦  «         t	          |                     |¦  «        |                     |¦  «        ¦  «         d S )	Nr$   r\   i,  r!   rW  TrX  rÙ   )r   rd   r7   rZ  r   rL   r[  s         r>   Útest_warm_start_n_estimatorsr`    sÓ   € õ Ô$¨sÐASÐTÑTÔT�D€A€qØ
ˆ#˜3¨!Ð:LÐ
MÑ
MÔ
M€CØ‡G‚GˆAˆq�M„M€MàˆSØ A°$ÐEWðñ ô €Fð ‡J‚Jˆq�!ÑÔÐØ
×Ò 3ÐÑ'Ô'Ð'Ø
‡J‚Jˆq�!ÑÔÐå�F—N’N 1Ñ%Ô% s§{¢{°1¡~¤~Ñ6Ô6Ð6Ð6Ð6rq   c                 óf  — t          j        dd¬¦  «        \  }} | ddd¬¦  «        }|                     ||¦  «         |                     dd¬¦  «         |                     ||¦  «         |j        d	         j        dk    sJ ‚t          dd
¦  «        D ]}|j        | df         j        dk    sJ ‚Œd S )Nr$   r!   r\   T©rI   r^   rY  én   r"   ©rI   r^   ©r   r   é   r   )r   rd   r7   rZ  rP   r^   Úrange)rU  rC   rD   r\  Úis        r>   Útest_warm_start_max_depthri    sÍ   € õ Ô$¨sÀÐCÑCÔC�D€A€qØ
ˆ#˜3¨!¸Ð
=Ñ
=Ô
=€CØ‡G‚GˆAˆq�M„M€MØ‡N‚N ¨q€NÑ1Ô1Ð1Ø‡G‚GˆAˆq�M„M€Mð Œ?˜4Ô Ô*¨aÒ/Ð/Ð/Ð/Ý�1�b‰\Œ\ð 5ð 5ˆØŒ ˜r 1˜uÔ%Ô/°1Ò4Ð4Ð4Ð4Ð4ð5ð 5rq   c                 óŠ  — t          j        dd¬¦  «        \  }} | dd¬¦  «        }|                     ||¦  «          | ddd¬¦  «        }|                     ||¦  «         |                     d¬¦  «         |                     ||¦  «         t	          |                     |¦  «        |                     |¦  «        ¦  «         d S )	Nr$   r!   r\   rd  Trb  F)rY  )r   rd   r7   rZ  r   rL   )rU  rC   rD   r\  Úest_2s        r>   Útest_warm_start_clearrl  +  s½   € õ Ô$¨sÀÐCÑCÔC�D€A€qØ
ˆ#˜3¨!Ð
,Ñ
,Ô
,€CØ‡G‚GˆAˆq�M„M€MàˆC˜S¨A¸$Ð?Ñ?Ô?€EØ	‡I‚Iˆa��O„O€OØ	×Ò ÐÑ&Ô&Ð&Ø	‡I‚Iˆa��O„O€Oå˜eŸmšm¨AÑ.Ô.°·²¸A±´Ñ?Ô?Ð?Ð?Ð?rq   r•   c                 óþ  — t          j        dd¬¦  «        \  }}d} | |dddd¬¦  «        }|                     ||¦  «         |j        |j        }}t          |¦  «        |k    sJ ‚|d         t          j        |¦  «        k    sJ ‚d}|                     |¬	¦  «                             ||¦  «         t          |j        ¦  «        |k    sJ ‚t          |j        d
|…         |¦  «         |                     |d¬¦  «                             ||¦  «         |j        |usJ ‚|j        |usJ ‚t          |j        |¦  «         |j        t          j        |¦  «        k    sJ ‚|d         t          j        |¦  «        k    sJ ‚d
S )zZ
    Check that the states of the OOB scores are cleared when used with `warm_start`.
    r$   r!   r\   rv   T)rI   r^   ru   rY  r-   r    ra   rÙ   NF©rI   rY  )
r   rd   r7   r%  r'  rO   r4   r&  rZ  r   )r•   rC   rD   rI   rë   Ú
oob_scoresÚ	oob_scoreÚn_more_estimatorss           r>   Ú test_warm_start_state_oob_scoresrr  :  s±  € õ
 Ô$¨sÀÐCÑCÔC�D€A€qØ€LØ Ð Ø!ØØØØðñ ô €Ið ‡M‚M�!�QÑÔÐØ%Ô1°9Ô3G�	€JÝˆz‰?Œ?˜lÒ*Ð*Ð*Ð*Ø�bŒ>�Vœ]¨9Ñ5Ô5Ò5Ð5Ð5Ð5àÐØ×ÒÐ&7ÐÑ8Ô8×<Ò<¸QÀÑBÔBÐBÝˆyÔ$Ñ%Ô%Ð):Ò:Ð:Ð:Ð:Ý�IÔ)¨-¨<¨-Ô8¸*ÑEÔEÐEà×Ò l¸uÐÑEÔE×IÒIÈ!ÈQÑOÔOÐOØÔ ¨
Ð2Ð2Ð2Ð2ØÔ yÐ0Ð0Ð0Ð0Ý�IÔ)¨:Ñ6Ô6Ð6ØÔ¥6¤=°Ñ#;Ô#;Ò;Ð;Ð;Ð;Ø�bŒ>�Vœ]¨9Ñ5Ô5Ò5Ð5Ð5Ð5Ð5Ð5rq   c                 ó<  — t          j        dd¬¦  «        \  }} | ddd¬¦  «        }|                     ||¦  «         |                     d¬¦  «         t	          j        t          ¦  «        5  |                     ||¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr$   r!   r\   Trb  éc   rÙ   )r   rd   r7   rZ  r4   r5   r6   ©rU  rC   rD   r\  s       r>   Ú$test_warm_start_smaller_n_estimatorsrv  Z  sÝ   € õ Ô$¨sÀÐCÑCÔC�D€A€qØ
ˆ#˜3¨!¸Ð
=Ñ
=Ô
=€CØ‡G‚GˆAˆq�M„M€MØ‡N‚N €NÑ#Ô#Ð#Ý	Œ•zÑ	"Ô	"ð ð Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á-BÂBÂBc                 ól  — t          j        dd¬¦  «        \  }} | dd¬¦  «        }|                     ||¦  «         t          |¦  «        }|                     |j        d¬¦  «         |                     ||¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         d S )Nr$   r!   r\   rd  Trn  )r   rd   r7   r   rZ  rI   r   rL   )rU  rC   rD   r\  Úest2s        r>   Ú"test_warm_start_equal_n_estimatorsry  e  s¡   € õ Ô$¨sÀÐCÑCÔC�D€A€qØ
ˆ#˜3¨!Ð
,Ñ
,Ô
,€CØ‡G‚GˆAˆq�M„M€Må�‰:Œ:€DØ‡O‚O Ô!1¸d€OÑCÔCÐCØ‡H‚HˆQ��N„N€Nå˜dŸlšl¨1™oœo¨s¯{ª{¸1©~¬~Ñ>Ô>Ð>Ð>Ð>rq   c                 ó†  — t          j        dd¬¦  «        \  }} | ddd¬¦  «        }|                     ||¦  «         |                     dd¬¦  «         |                     ||¦  «         t	          |j        d d…         t          j        d¦  «        ¦  «         t	          |j        d d…         t          j        d¦  «        ¦  «         |j        d	d …         d
k     	                    ¦   «         sJ ‚|j        d	d …         d
k     	                    ¦   «         sJ ‚|j        d         t          j        |j        ¦  «        k    sJ ‚d S )Nr$   r!   r\   Trb  rc  rv   )rI   ru   éöÿÿÿrJ   r    )r   rd   r7   rZ  r   r   rR   r¦   r%  rœ   r4   r&  r'  ru  s       r>   Útest_warm_start_oob_switchr|  s  s/  € õ Ô$¨sÀÐCÑCÔC�D€A€qØ
ˆ#˜3¨!¸Ð
=Ñ
=Ô
=€CØ‡G‚GˆAˆq�M„M€MØ‡N‚N ¨s€NÑ3Ô3Ð3Ø‡G‚GˆAˆq�M„M€Må�sÔ+¨D¨S¨DÔ1µ2´8¸C±=´=ÑAÔAÐAÝ�s” t¨ tÔ,­b¬h°s©m¬mÑ<Ô<Ð<ð Ô    Ô&¨#Ò-×2Ò2Ñ4Ô4Ð4Ð4Ð4ØŒO˜C˜D˜DÔ! SÒ(×-Ò-Ñ/Ô/Ð/Ð/Ð/àŒ?˜2Ô¥&¤-°´Ñ"?Ô"?Ò?Ð?Ð?Ð?Ð?Ð?rq   c                 óv  — t          j        dd¬¦  «        \  }} | dddd¬¦  «        }|                     ||¦  «          | ddddd¬¦  «        }|                     ||¦  «         |                     d¬	¦  «         |                     ||¦  «         t	          |j        d d…         |j        d d…         ¦  «         t	          |j        d d…         |j        d d…         ¦  «         |j        d
         t          j        |j	        ¦  «        k    sJ ‚|j        d
         t          j        |j	        ¦  «        k    sJ ‚d S )Nr$   r!   r\   ra   rv   )rI   r^   ru   r-   T©rI   r^   ru   r-   rY  rÙ   r    )
r   rd   r7   rZ  r   r   r%  r4   r&  r'  )rU  rC   rD   r\  r]  s        r>   Útest_warm_start_oobr  †  sK  € õ Ô$¨sÀÐCÑCÔC�D€A€qØ
ˆ#˜3¨!°sÈÐ
KÑ
KÔ
K€CØ‡G‚GˆAˆq�M„M€MàˆSØ A°À1ÐQUðñ ô €Fð ‡J‚Jˆq�!ÑÔÐØ
×Ò 3ÐÑ'Ô'Ð'Ø
‡J‚Jˆq�!ÑÔÐå˜fÔ5°d°s°dÔ;¸SÔ=QÐRVÐSVÐRVÔ=WÑXÔXÐXÝ˜fÔ0°°#°Ô6¸¼ÈÈÈÔ8MÑNÔNÐNØŒ?˜2Ô¥&¤-°´Ñ"?Ô"?Ò?Ð?Ð?Ð?ØÔ˜bÔ!¥V¤]°6Ô3DÑ%EÔ%EÒEÐEÐEÐEÐEÐErq   Úsparse_containerc                 ó®  — t          j        dd¬¦  «        \  }} | ddddd¬¦  «        }|                     ||¦  «         |                     |¦  «         |                     d¬¦  «         |                     ||¦  «         |                     |¦  «        } ||¦  «        } | ddddd¬¦  «        }|                     ||¦  «         |                     |¦  «         |                     d¬¦  «         |                     ||¦  «         |                     |¦  «        }t          |j        d d…         |j        d d…         ¦  «         |j        d	         t          j	        |j
        ¦  «        k    sJ ‚t          |j        d d…         |j        d d…         ¦  «         |j        d	         t          j	        |j
        ¦  «        k    sJ ‚t          ||¦  «         d S )
Nr$   r!   r\   rv   Tr~  ra   rÙ   r    )r   rd   r7   rL   rZ  r   r   r%  r4   r&  r'  )	rU  r€  rC   rD   Ú	est_denseÚy_pred_denseÚX_sparseÚ
est_sparseÚy_pred_sparses	            r>   Útest_warm_start_sparser‡  š  s  € õ Ô$¨sÀÐCÑCÔC�D€A€qØ�Ø A°À1ÐQUðñ ô €Ið ‡M‚M�!�QÑÔÐØ×Ò�aÑÔÐØ×Ò cÐÑ*Ô*Ð*Ø‡M‚M�!�QÑÔÐØ×$Ò$ QÑ'Ô'€LàÐ Ñ"Ô"€Hà�ØØØØØðñ ô €Jð ‡N‚N�8˜QÑÔÐØ×Ò�qÑÔÐØ×Ò sÐÑ+Ô+Ð+Ø‡N‚N�8˜QÑÔÐØ×&Ò& qÑ)Ô)€MåØÔ" 4 C 4Ô(¨*Ô*EÀdÀsÀdÔ*Kñô ð ð Ô  Ô$­¬°iÔ6JÑ(KÔ(KÒKÐKÐKÐKÝ˜iÔ3°D°S°DÔ9¸:Ô;QÐRVÐSVÐRVÔ;WÑXÔXÐXØÔ! "Ô%­¬°zÔ7LÑ)MÔ)MÒMÐMÐMÐMÝ˜l¨MÑ:Ô:Ð:Ð:Ð:rq   c                 ó  — t          j        d|¬¦  «        \  }} | d|d¬¦  «        } | d|d¬¦  «        }|                     ||¦  «         |                     d¬¦  «         |                     ||¦  «         t	          j        |¦  «        }|                     ||¦  «         |                     d¬¦  «         |                     ||¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         d S )Nr$   r\   r!   T)rI   r-   rY  rf  rÙ   )r   rd   r7   rZ  rR   r¨   r   rL   )rU  rV   rC   rD   Úest_cÚest_fortranÚ	X_fortrans          r>   Útest_warm_start_fortranrŒ  Â  s  € õ Ô$¨sÐASÐTÑTÔT�D€A€qØˆC˜QÐ-?ÈDÐQÑQÔQ€EØ�# 1Ð3EÐRVÐWÑWÔW€Kà	‡I‚Iˆa��O„O€OØ	×Ò "ÐÑ%Ô%Ð%Ø	‡I‚Iˆa��O„O€OåÔ! !Ñ$Ô$€IØ‡O‚O�I˜qÑ!Ô!Ð!Ø×Ò¨ÐÑ+Ô+Ð+Ø‡O‚O�I˜qÑ!Ô!Ð!å�E—M’M !Ñ$Ô$ k×&9Ò&9¸!Ñ&<Ô&<Ñ=Ô=Ð=Ð=Ð=rq   c                 ó   — | dk    rdS dS )z#Returns True on the 10th iteration.é	   TFrc   )rh  r\  Úlocalss      r>   Úearly_stopping_monitorr�  Ö  s   € àˆA‚v€vØˆtàˆurq   c                 óT  — t          j        dd¬¦  «        \  }} | dddd¬¦  «        }|                     ||t          ¬¦  «         |j        dk    sJ ‚|j        j        d         d	k    sJ ‚|j        j        d         d	k    sJ ‚|j        j        d         d	k    sJ ‚|j	        j        d         d	k    sJ ‚|j	        d
         t          j        |j        ¦  «        k    sJ ‚|                     d¬¦  «         |                     ||¦  «         |j        dk    sJ ‚|j        j        d         dk    sJ ‚|j        j        d         dk    sJ ‚|j        j        d         dk    sJ ‚|j	        j        d         dk    sJ ‚|j	        d
         t          j        |j        ¦  «        k    sJ ‚ | ddddd¬¦  «        }|                     ||t          ¬¦  «         |j        dk    sJ ‚|j        j        d         d	k    sJ ‚|j        j        d         d	k    sJ ‚|j        j        d         d	k    sJ ‚|j	        j        d         d	k    sJ ‚|j	        d
         t          j        |j        ¦  «        k    sJ ‚|                     dd¬¦  «         |                     ||¦  «         |j        dk    sJ ‚|j        j        d         dk    sJ ‚|j        j        d         dk    sJ ‚|j        j        d         dk    sJ ‚|j	        j        d         dk    sJ ‚|j	        d
         t          j        |j        ¦  «        k    sJ ‚d S )Nr$   r!   r\   rØ   rv   )rI   r^   r-   ru   )Úmonitorr   r'   r    rx   rÙ   T)rI   r^   r-   ru   rY  Frn  )r   rd   r7   r�  rI   rP   rU   rQ   r   r%  r4   r&  r'  rZ  ru  s       r>   Útest_monitor_early_stoppingr“  Þ  sy  € õ Ô$¨sÀÐCÑCÔC�D€A€qà
ˆ#˜2¨¸ÀcÐ
JÑ
JÔ
J€CØ‡G‚GˆAˆqÕ0€GÑ1Ô1Ð1ØÔ˜rÒ!Ð!Ð!Ð!ØŒ?Ô  Ô# rÒ)Ð)Ð)Ð)ØÔÔ! !Ô$¨Ò*Ð*Ð*Ð*ØÔÔ% aÔ(¨BÒ.Ð.Ð.Ð.ØŒ?Ô  Ô# rÒ)Ð)Ð)Ð)ØŒ?˜2Ô¥&¤-°´Ñ"?Ô"?Ò?Ð?Ð?Ð?ð ‡N‚N €NÑ#Ô#Ð#Ø‡G‚GˆAˆq�M„M€MØÔ˜rÒ!Ð!Ð!Ð!ØŒ?Ô  Ô# rÒ)Ð)Ð)Ð)ØÔÔ! !Ô$¨Ò*Ð*Ð*Ð*ØÔÔ% aÔ(¨BÒ.Ð.Ð.Ð.ØŒ?Ô  Ô# rÒ)Ð)Ð)Ð)ØŒ?˜2Ô¥&¤-°´Ñ"?Ô"?Ò?Ð?Ð?Ð?à
ˆ#Ø 1°1ÀÐPTðñ ô €Cð ‡G‚GˆAˆqÕ0€GÑ1Ô1Ð1ØÔ˜rÒ!Ð!Ð!Ð!ØŒ?Ô  Ô# rÒ)Ð)Ð)Ð)ØÔÔ! !Ô$¨Ò*Ð*Ð*Ð*ØÔÔ% aÔ(¨BÒ.Ð.Ð.Ð.ØŒ?Ô  Ô# rÒ)Ð)Ð)Ð)ØŒ?˜2Ô¥&¤-°´Ñ"?Ô"?Ò?Ð?Ð?Ð?ð ‡N‚N ¨u€NÑ5Ô5Ð5Ø‡G‚GˆAˆq�M„M€MØÔ˜rÒ!Ð!Ð!Ð!ØÔÔ! !Ô$¨Ò*Ð*Ð*Ð*ØŒ?Ô  Ô# rÒ)Ð)Ð)Ð)ØÔÔ% aÔ(¨BÒ.Ð.Ð.Ð.ØŒ?Ô  Ô# rÒ)Ð)Ð)Ð)ØŒ?˜2Ô¥&¤-°´Ñ"?Ô"?Ò?Ð?Ð?Ð?Ð?Ð?rq   c                  ó2  — ddl m}  t          j        dd¬¦  «        \  }}d}t	          dd d|dz   ¬¦  «        }|                     ||¦  «         |j        d	         j        }|j        |k    sJ ‚|j	        |j	        | k             j
        d         |dz   k    sJ ‚d S )
Nr   ©Ú	TREE_LEAFr$   r!   r\   r%   rØ   ©rI   r^   r-   rb   re  )Úsklearn.tree._treer–  r   rd   r
   r7   rP   Útree_r^   Úchildren_leftrU   )r–  rC   rD   Úkr\  Útrees         r>   Útest_complete_classificationr�    s»   € à,Ð,Ð,Ð,Ð,Ð,åÔ$¨sÀÐCÑCÔC�D€A€qØ	€Aå
$Ø 4°aÈÈAÉðñ ô €Cð ‡G‚GˆAˆq�M„M€MàŒ?˜4Ô Ô&€DØŒ>˜QÒÐÐÐØÔ˜dÔ0°IÒ=Ô>ÔDÀQÔGÈ1ÈqÉ5ÒPÐPÐPÐPÐPÐPrq   c                  óú   — ddl m}  d}t          dd d|dz   ¬¦  «        }|                     t          t
          ¦  «         |j        d         j        }|j        |j        | k             j	        d         |dz   k    sJ ‚d S )Nr   r•  r%   rØ   r!   r—  )r    r   )
r˜  r–  r   r7   r~   r}   rP   r™  rš  rU   )r–  r›  r\  rœ  s       r>   Útest_complete_regressionrŸ    s’   € à,Ð,Ð,Ð,Ð,Ð,à	€Aå
#Ø 4°aÈÈAÉðñ ô €Cð ‡G‚G�E•5ÑÔÐàŒ?˜5Ô!Ô'€DØÔ˜dÔ0°IÒ=Ô>ÔDÀQÔGÈ1ÈqÉ5ÒPÐPÐPÐPÐPÐPrq   c                 ó’  — t          d¬¦  «                             t          t          ¦  «        }t	          |                     t          ¦  «        t          ¦  «        }t          dd| dd¬¦  «        }|                     t          t          ¦  «         |                     t          ¦  «        }t	          t          |¦  «        }||k     sJ ‚d S )NÚmean)Ústrategyr°   r!   Úzerorv   )rI   r^   r-   rB   r_   )r	   r7   r~   r}   r   rL   r   )rV   ÚbaselineÚmse_baseliner\  r�   Úmse_gbdts         r>   Útest_zero_estimator_regr§  ,  s±   € õ  vÐ.Ñ.Ô.×2Ò2µ5½%Ñ@Ô@€HÝ% h×&6Ò&6µuÑ&=Ô&=½uÑEÔE€LÝ
#ØØØ'ØØðñ ô €Cð ‡G‚G�E•5ÑÔÐØ�[Š[�ÑÔ€FÝ!¥%¨Ñ0Ô0€HØ�lÒ"Ð"Ð"Ð"Ð"Ð"rq   c                 ó�  — t           j        }t          j        t           j        ¦  «        }t          dd| d¬¦  «        }|                     ||¦  «         |                     ||¦  «        dk    sJ ‚|dk    }d||<   d|| <   t          dd| d¬¦  «        }|                     ||¦  «         |                     ||¦  «        dk    sJ ‚d S )NrØ   r!   r£  )rI   r^   r-   rB   g¸…ëQ¸î?r   )r8   r9   rR   r!  r:   r
   r7   re   )rV   rC   rD   r\  Úmasks        r>   Útest_zero_estimator_clfrª  ?  sÛ   € åŒ	€AÝ
Œ•”ÑÔ€Aå
$Ø 1Ð3EÈFðñ ô €Cð ‡G‚GˆAˆq�M„M€Mà�9Š9�Q˜‰?Œ?˜TÒ!Ð!Ð!Ð!ð �Š6€DØ€A€d�GØ€A€t€e�HÝ
$Ø 1Ð3EÈFðñ ô €Cð ‡G‚GˆAˆq�M„M€MØ�9Š9�Q˜‰?Œ?˜TÒ!Ð!Ð!Ð!Ð!Ð!rq   ÚGBEstimatorc                 ó:  — t          j        dd¬¦  «        \  }}d} | d|¬¦  «                             ||¦  «        }|j        d         j        }|j        dk    sJ ‚ | d¬¦  «                             ||¦  «        }|j        d         j        }|j        dk    sJ ‚d S )Nr$   r!   r\   r%   )r^   rb   re  )r^   )r   rd   r7   rP   r™  r^   )r«  rC   rD   r›  r\  rœ  s         r>   Útest_max_leaf_nodes_max_depthr­  V  s²   € õ Ô$¨sÀÐCÑCÔC�D€A€qà	€Aà
ˆ+ °!Ð
4Ñ
4Ô
4×
8Ò
8¸¸AÑ
>Ô
>€CØŒ?˜4Ô Ô&€DØŒ>˜QÒÐÐÐà
ˆ+ Ð
"Ñ
"Ô
"×
&Ò
& q¨!Ñ
,Ô
,€CØŒ?˜4Ô Ô&€DØŒ>˜QÒÐÐÐÐÐrq   c                 ó´   — t          j        dd¬¦  «        \  }} | d¬¦  «        }|                     ||¦  «         |j        j        D ]}|j        dk    sJ ‚Œd S )Nr$   r!   r\   rŠ   )Úmin_impurity_decrease)r   rd   r7   rP   Úflatr¯  )r«  rC   rD   r\  rœ  s        r>   Útest_min_impurity_decreaser±  f  su   € åÔ$¨sÀÐCÑCÔC�D€A€qà
ˆ+¨CÐ
0Ñ
0Ô
0€CØ‡G‚GˆAˆq�M„M€MØ”Ô$ð 1ð 1ˆð Ô)¨SÒ0Ð0Ð0Ð0Ð0ð1ð 1rq   c                  ó   — t          dd¬¦  «        } |                      ddgddggddg¦  «         | j        j        d         dk    sJ ‚|                      ddgddggddg¦  «         | j        j        d         dk    sJ ‚d S )Nr'   Trn  r   r!   r"   r#   )r
   r7   rP   rU   rü   s    r>   Ú%test_warm_start_wo_nestimators_changer³  r  sœ   € õ %°"ÀÐ
FÑ
FÔ
F€CØ‡G‚Gˆa�ˆV�a˜�VÐ˜q !˜fÑ%Ô%Ð%ØŒ?Ô  Ô# rÒ)Ð)Ð)Ð)Ø‡G‚Gˆa�ˆV�a˜�VÐ˜q !˜fÑ%Ô%Ð%ØŒ?Ô  Ô# rÒ)Ð)Ð)Ð)Ð)Ð)rq   )r1   Úvalue))rr   rv   )rs   rJ   )rt   rv   )rÿ   rv   c                 óÎ   — ddgddgddgddgg}g d¢}g d¢}t          dd| ¬¦  «        }|                     |||¬¦  «         |                     ddgg¦  «        d         |k    sJ ‚d S )	Nr!   r   ©r   r   r!   r   ©r   r   r!   r!   r]   r"   )r_   rI   r1   rz   )r   r7   rL   )r1   r´  rC   rD   r{   Úgbs         r>   Ú*test_non_uniform_weights_toy_edge_case_regr¹  |  sŽ   € ð ˆQˆ�!�Q�˜!˜Q˜ ! Q Ð(€AØˆˆ€Aà �L�L€MÝ	"°À1È4Ð	PÑ	PÔ	P€BØ‡F‚Fˆ1ˆa˜}€FÑ-Ô-Ð-Ø�:Š:˜˜1�v�hÑÔ Ô" eÒ+Ð+Ð+Ð+Ð+Ð+rq   c                  óÜ   — ddgddgddgddgg} g d¢}g d¢}dD ]R}t          d|¬¦  «        }|                     | ||¬¦  «         t          |                     ddgg¦  «        dg¦  «         ŒSd S )	Nr!   r   r¶  r·  rF   r°   )rI   r1   rz   )r
   r7   r   rL   )rC   rD   r{   r1   r¸  s        r>   Ú*test_non_uniform_weights_toy_edge_case_clfr»  �  sœ   € Ø
ˆQˆ�!�Q�˜!˜Q˜ ! Q Ð(€AØˆˆ€Aà �L�L€MØ+ð 6ð 6ˆÝ'°Q¸TÐBÑBÔBˆØ
�Šˆq�! =ˆÑ1Ô1Ð1Ý˜2Ÿ:š:¨¨1 v hÑ/Ô/°!°Ñ5Ô5Ð5Ð5ð6ð 6rq   ÚEstimatorClassc                 óR  — t          j        dddd¬¦  «        \  }}|d d …df         } ||¦  «        } | dddd¬	¦  «                             ||¦  «        } | dddd¬	¦  «                             ||¦  «        }t          |                     |¦  «        |                     |¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         t          |j        |j        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         t          | t          ¦  «        �r$t          | 	                    |¦  «        | 	                    |¦  «        ¦  «         t          | 
                    |¦  «        | 
                    |¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «         t          |                     |¦  «        |                     |¦  «        ¦  «        D ]\  }}t          ||¦  «         Œd S d S )
Nr   r`   r!   rØ   )r-   r)   r*   Ú	n_classesr'   r"   gH¯¼šò×z>)rI   r-   r^   r¯  )r   Úmake_multilabel_classificationr7   r   rT   rL   r“   Ú
issubclassr
   r›   Úpredict_log_probar³   ÚzipÚstaged_decision_function)	r¼  r€  rD   rC   r„  ÚdenseÚsparseÚ
res_sparseÚress	            r>   Útest_sparse_inputrÈ  š  s§  € õ Ô2Ø "°¸bðñ ô �D€A€qð 	
ˆ!ˆ!ˆ!ˆQˆ$Œ€AØÐ Ñ"Ô"€HàˆNØ a°1ÈDðñ ô ç	‚cˆ!ˆQ�i„ið 
ð ˆ^Ø a°1ÈDðñ ô ç	‚cˆ(�AÑÔð õ ˜fŸlšl¨1™oœo¨u¯{ª{¸1©~¬~Ñ>Ô>Ð>Ý˜fŸnšn¨QÑ/Ô/°·²¸qÑ1AÔ1AÑBÔBÐBÝ˜fÔ9¸5Ô;UÑVÔVÐVå˜fŸnšn¨XÑ6Ô6¸¿ºÀaÑ8HÔ8HÑIÔIÐIÝ˜eŸmšm¨HÑ5Ô5°v·~²~ÀaÑ7HÔ7HÑIÔIÐIå�.Õ"<Ñ=Ô=ñ 7Ý! &×"6Ò"6°qÑ"9Ô"9¸5×;NÒ;NÈqÑ;QÔ;QÑRÔRÐRÝ!Ø×$Ò$ QÑ'Ô'¨×)@Ò)@ÀÑ)CÔ)Cñ	
ô 	
ð 	
õ 	"Ø×$Ò$ XÑ.Ô.°×0HÒ0HÈÑ0KÔ0Kñ	
ô 	
ð 	
õ 	"Ø×#Ò# HÑ-Ô-¨v×/GÒ/GÈÑ/JÔ/Jñ	
ô 	
ð 	
õ  #Ø×+Ò+¨HÑ5Ô5Ø×+Ò+¨AÑ.Ô.ñ 
ô  
ð 	7ð 	7‰OˆJ˜õ & j°#Ñ6Ô6Ð6Ð6ð!7ð 7ð	7ð 	7rq   c                 ó¢  — t          dd¬¦  «        \  }}d} | |ddddd¬¦  «        } | |ddddd	¬¦  «        }t          ||d¬
¦  «        \  }}}}	|                     ||¦  «         |                     ||¦  «         |j        |j        cxk     r|k     sn J ‚|                     ||	¦  «        dk    sJ ‚|                     ||	¦  «        dk    sJ ‚d S )Néè  r   r\   r'   rŠ   r#   é*   )rI   r$  r_   r^   r-   Útolçü©ñÒMbP?r·   gffffffæ?)r   r   r7   Ún_estimators_re   )
r  rC   rD   rI   Úgb_large_tolÚgb_small_tolrg   rh   ri   rj   s
             r>   Ú%test_gradient_boosting_early_stoppingrÑ  É  s1  € õ ¨¸AÐ>Ñ>Ô>�D€A€qØ€Là,Ð,Ø!ØØØØØðñ ô €Lð -Ð,Ø!ØØØØØðñ ô €Lõ (8¸¸1È2Ð'NÑ'NÔ'NÑ$€GˆV�W˜fØ×Ò�W˜gÑ&Ô&Ð&Ø×Ò�W˜gÑ&Ô&Ð&àÔ%¨Ô(BÐQÐQÒQÐQÀ\ÒQÐQÐQÐQÐQÐQà×Ò˜f fÑ-Ô-°Ò3Ð3Ð3Ð3Ø×Ò˜f fÑ-Ô-°Ò3Ð3Ð3Ð3Ð3Ð3rq   c                  ó  — t          dd¬¦  «        \  } }t          dddd¬¦  «        }|                     | |¦  «         t          d	ddd¬¦  «        }|                     | |¦  «         |j        dk    sJ ‚|j        d	k    sJ ‚d S )
NrÊ  r   r\   r`   rŠ   r#   rË  )rI   r_   r^   r-   rx   )r   r
   r7   r   rÎ  )rC   rD   ÚgbcÚgbrs       r>   Ú-test_gradient_boosting_without_early_stoppingrÕ  ï  sª   € õ ¨¸AÐ>Ñ>Ô>�D€A€qå
$Ø s°aÀbðñ ô €Cð ‡G‚GˆAˆq�M„M€MÝ
#Ø s°aÀbðñ ô €Cð ‡G‚GˆAˆq�M„M€Mð Ô Ò"Ð"Ð"Ð"ØÔ Ò"Ð"Ð"Ð"Ð"Ð"rq   c                  ó`  — t          dd¬¦  «        \  } }t          dddddd¬	¦  «        }t          |¦  «                             d
¬¦  «        }t          |¦  «                             d¬¦  «        }t	          dddddd¬¦  «        }t          |¦  «                             d
¬¦  «        }t          |¦  «                             d¬¦  «        }t          | |d¬¦  «        \  }}	}
}|                     ||
¦  «         |                     ||
¦  «         |j        |j        k    sJ ‚|                     ||
¦  «         |                     ||
¦  «         |j        |j        k    sJ ‚|                     ||
¦  «         |                     ||
¦  «         |j        |j        k     sJ ‚|j        |j        k     sJ ‚d S )NrÊ  r   r\   r$   r'   rŠ   r#   rË  )rI   r$  Úvalidation_fractionr_   r^   r-   rÉ   )r×  rØ   ©r$  )rI   r$  r_   r^   r×  r-   r·   )r   r
   r   rZ  r   r   r7   rÎ  )rC   rD   rÓ  Úgbc2Úgbc3rÔ  Úgbr2Úgbr3rg   rh   ri   rj   s               r>   Ú*test_gradient_boosting_validation_fractionrÝ    sÑ  € Ý¨¸AÐ>Ñ>Ô>�D€A€qå
$ØØØØØØðñ ô €Cõ �‰:Œ:× Ò °SÐ Ñ9Ô9€DÝ�‰:Œ:× Ò °"Ð Ñ5Ô5€Då
#ØØØØØØðñ ô €Cõ �‰:Œ:× Ò °SÐ Ñ9Ô9€DÝ�‰:Œ:× Ò °"Ð Ñ5Ô5€Då'7¸¸1È2Ð'NÑ'NÔ'NÑ$€GˆV�W˜fà‡G‚GˆG�WÑÔÐØ‡H‚HˆW�gÑÔÐØÔ Ô 2Ò2Ð2Ð2Ð2à‡G‚GˆG�WÑÔÐØ‡H‚HˆW�gÑÔÐØÔ Ô 2Ò2Ð2Ð2Ð2ð 	‡H‚HˆW�gÑÔÐØ‡H‚HˆW�gÑÔÐØÔ˜tÔ1Ò1Ð1Ð1Ð1ØÔ˜tÔ1Ò1Ð1Ð1Ð1Ð1Ð1rq   c                  óÞ   — ddgddgddgddgg} g d¢}t          d¬¦  «        }t          j        t          d¬	¦  «        5  |                     | |¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )
Nr!   r"   r#   r%   r°   )r   r   r   r!   rØ  z0The least populated class in y has only 1 memberr2   ©r
   r4   r5   r6   r7   )rC   rD   rÓ  s      r>   Útest_early_stopping_stratifiedrà  -  sÍ   € à
ˆQˆ�!�Q�˜!˜Q˜ ! Q Ð(€AØˆˆ€Aå
$°aÐ
8Ñ
8Ô
8€CÝ	ŒÝÐLð
ñ 
ô 
ð ð ð 	�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   ¾A"Á"A&Á)A&c                  ó$   — t          dd¬¦  «        S )Nr#   r!   )r¾  Ún_clusters_per_class)r   rc   rq   r>   Ú_make_multiclassrã  9  s   € Ý¨ÀÐCÑCÔCÐCrq   z!gb, dataset_maker, init_estimator)zbinary classificationzmulticlass classificationÚ
regression)Úidsc                 óö  —  |¦   «         \  }}t           j                             |¦  «                             d¦  «        } |¦   «         } | |¬¦  «                             |||¬¦  «         t           |¦   «         ¦  «        } | |¬¦  «                             ||¦  «         t          j        t          d¬¦  «        5   | |¬¦  «                             |||¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr$   rA   rz   z*estimator.*does not support sample weightsr2   )	rR   râ   rã   rû   r7   r   r4   r5   r6   )r¸  Údataset_makerÚinit_estimatorrV   rC   rD   r{   Úinit_ests           r>   Ú test_gradient_boosting_with_initrê  =  s^  € ð" ˆ=‰?Œ?�D€A€qÝ”I×)Ò)Ð*<Ñ=Ô=×BÒBÀ3ÑGÔG€Mð ˆ~ÑÔ€HØ€BˆHÐÑÔ×Ò˜!˜Q¨mÐÑ<Ô<Ð<õ % ^ ^Ñ%5Ô%5Ñ6Ô6€HØ€BˆHÐÑÔ×Ò˜!˜QÑÔÐÝ	Œ•zÐ)UÐ	VÑ	VÔ	Vð Að AØ
ˆ�ÐÑÔ×Ò˜a °-ÐÑ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Að Aøøøð Að Að Að Að Að As   Â>#C.Ã.C2Ã5C2c            	      óÆ  — t          d¬¦  «        \  } }t          t          ¦   «         ¦  «        }t          |¬¦  «        }|                     | |¦  «         t          j        t          d¬¦  «        5  |                     | |t          j	        | j
        d         ¦  «        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   d}d|› d	�}t          j        t          t          j        |¦  «        ¬¦  «        5  t          d
|¬¦  «        }t          |¬¦  «        }|                     | |t          j	        | j
        d         ¦  «        ¬¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r·   rA   z>The initial estimator Pipeline does not support sample weightsr2   rz   g      ø?zIThe 'nu' parameter of NuSVR must be a float in the range (0.0, 1.0]. Got z	 instead.Úauto)ÚgammaÚnu)r   r   r   r   r7   r4   r5   r6   rR   r|   rU   r   ÚreÚescaper   )rC   rD   rB   r¸  Ú
invalid_nur«   s         r>   Ú)test_gradient_boosting_with_init_pipelinerò  \  sÜ  € õ ¨Ð*Ñ*Ô*�D€A€qÝÕ)Ñ+Ô+Ñ,Ô,€DÝ	"¨Ð	-Ñ	-Ô	-€BØ‡F‚Fˆ1ˆa�L„L€Lå	ŒÝØNð
ñ 
ô 
ð 8ð 8ð 	�Šˆq�!¥2¤7¨1¬7°1¬:Ñ#6Ô#6ˆÑ7Ô7Ð7ð	8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð €Jð	8Ø",ð	8ð 	8ð 	8ð õ 
ŒÕ,µB´I¸gÑ4FÔ4FÐ	GÑ	GÔ	Gð 8ð 8å˜6 jÐ1Ñ1Ô1ˆÝ&¨DÐ1Ñ1Ô1ˆØ
�Šˆq�!¥2¤7¨1¬7°1¬:Ñ#6Ô#6ˆÑ7Ô7Ð7ð	8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð 8ð 8s%   Á06B2Â2B6Â9B6Ã2AEÅEÅEc                  ó  — dggdz  } ddgdgdz  z   }t          ddd¬¦  «        }t          j        t          d¬	¦  «        5  |                     | |¦  «         d d d ¦  «         n# 1 swxY w Y   t          ddd
¬¦  «        }d S )Nr!   r'   r   r&   r°   r2  )r$  r-   r×  z0The training data after the early stopping splitr2   gš™™™™™Ù?rß  )rC   rD   r¸  s      r>   Útest_early_stopping_n_classesrô  z  sè   € ð ˆˆ�‰
€AØ	
ˆAˆ�!��q‘Ñ€AÝ	#Ø¨Àð
ñ 
ô 
€Bõ 
ŒÝÐLð
ñ 
ô 
ð ð ð 	�Šˆq�!‰Œˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
$Ø¨Àð
ñ 
ô 
€B€B€Bs   Á A#Á#A'Á*A'c                  ó   — t          j        d¦  «        } t          j        d¦  «        }t          ¦   «                              | |¦  «        }t          |j        t          j        dt           j        ¬¦  «        ¦  «         d S )N)r'   r'   )r'   r'   rÑ   )rR   r¦   r|   r   r7   r   r“   rÕ   )rC   rD   rÔ  s      r>   Ú'test_gbr_degenerate_feature_importancesrö  �  sc   € å
Œ�ÑÔ€AÝ
Œ�‰Œ€AÝ
#Ñ
%Ô
%×
)Ò
)¨!¨QÑ
/Ô
/€CÝ�sÔ/µ´¸"ÅBÄJÐ1OÑ1OÔ1OÑPÔPÐPÐPÐPrq   c                  ó  — d} d}t          j        t          j        |¦  «        | ¦  «        }t          j        ||dz  ¦  «        }t          j        | | dz  ¦  «        }t           j        ||f         }t           j                             d¦  «        }||                     d|j        ¬¦  «        z   }t          d¬¦  «         
                    ||¦  «        }t          d	¬¦  «         
                    ||¦  «        }t          ¦   «          
                    ||¦  «        }	|                     |¦  «        }
t          j        |                     |¦  «        |
k    ¦  «        sJ ‚t          j        |
|	                     |¦  «        k    ¦  «        sJ ‚d
S )z9Check that huber lies between absolute and squared error.r$   r'   r"   rË  r!   )r   rß   rs   r0   rt   N)rR   ÚtileÚarangeÚminimumÚc_râ   rã   r/   rU   r   r7   rL   rœ   )Ún_repr)   rD   Úx1Úx2rC   rê   Úgbt_absolute_errorÚ	gbt_huberÚgbt_squared_errorÚgbt_huber_predictionss              r>   Útest_huber_vs_mean_and_medianr  ˜  sd  € à€EØ€IÝ
Œ•”	˜)Ñ$Ô$ eÑ,Ô,€AÝ	Œ�A�y 1‘}Ñ	%Ô	%€BÝ	Œ�Q�B˜˜
 Q™Ñ	'Ô	'€BÝ
Œˆb�"ˆfŒ€Aå
Œ)×
Ò
 Ñ
#Ô
#€Cà	ˆC�OŠO !¨!¬'ˆOÑ2Ô2Ñ2€Aå2Ð8HÐIÑIÔI×MÒMÈaÐQRÑSÔSÐÝ)¨wÐ7Ñ7Ô7×;Ò;¸A¸qÑAÔA€IÝ1Ñ3Ô3×7Ò7¸¸1Ñ=Ô=Ðà%×-Ò-¨aÑ0Ô0ÐÝŒ6Ð$×,Ò,¨QÑ/Ô/Ð3HÒHÑIÔIÐIÐIÐIÝŒ6Ð'Ð+<×+DÒ+DÀQÑ+GÔ+GÒGÑHÔHÐHÐHÐHÐHÐHrq   c                  óö  — t          j        ¦   «         5  t          j        d¦  «         t          t	          j        d¦  «        d¦  «        dk    sJ ‚t          t	          j        d¦  «        t	          j        d¦  «        ¦  «        dk    sJ ‚	 ddd¦  «         n# 1 swxY w Y   t          j        t          d¬¦  «        5  t          t	          j        d¦  «        d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	z0Test that _safe_divide handles division by zero.Úerrorgœu ˆ<ä7~r   rJ   NÚoverflowr2   g»½×Ùß|Û=)	rç   rè   Úsimplefilterr   rR   rÕ   r4   r  ÚRuntimeWarningrc   rq   r>   Útest_safe_divider	  ®  sp  € å	Ô	 Ñ	"Ô	"ð Cð CÝÔ˜gÑ&Ô&Ð&Ý�BœJ uÑ-Ô-¨qÑ1Ô1°QÒ6Ð6Ð6Ð6Ý�BœJ s™OœO­R¬Z¸©_¬_Ñ=Ô=ÀÒBÐBÐBÐBÐBðCð Cð Cñ Cô Cð Cð Cð Cð Cð Cð Cøøøð Cð Cð Cð Cõ 
Œ•n¨JÐ	7Ñ	7Ô	7ð /ð /å•R”Z Ñ&Ô&¨Ñ.Ô.Ð.ð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð /ð /s$   ”A7BÂBÂBÂ>#C.Ã.C2Ã5C2c                  óN  — d} t          j        | ¦  «        }t          j        || dz  ¦  «        }t          j        | |  dz  ¦  «        }t           j        ||f         }t	          dd¬¦  «                             ||¦  «        }t          j        g d¢¦  «        }t          |                     |¦  «        |d¬¦  «         t          j        g d	¢¦  «        }t          |j	        d
d…         |d¬¦  «         t          j
        ddg| dz  ¦  «        }t	          dd¬¦  «                             |||¬¦  «        }t          j        g d¢¦  «        }t          |                     |¦  «        |dd¬¦  «         t          j        g d¢¦  «        }t          |j	        d
d…         |dd¬¦  «         dS )zˆTest squared error GBT backward compat on a simple dataset.

    The results to compare against are taken from scikit-learn v1.2.0.
    r'   r"   rr   r$   ©r1   rI   )
gÑµ­O@"?g!ÓÒÃm ð?gŽ_ôì$  @gT )= @g�6 @gÞñNýÿ@g¬lUöÿ@gñ£u¯îÿ@gÍ€«#äÿ@g'aK4íÿ!@ç:Œ0âŽyE>©Úrtol)
geœÔ©(j>gô„¾³ò<e>g †kÏx?a>gèzU:\>gWâýw¾V>gÛÉã·ÈwR>g¶÷ïØÿM>g0¿~JÇYH>gh�1œ`ÁC>gÃ±åØ­
@>r{  Nr!   rz   )
g¥´â°hù#?gq)ßu ð?g	1ú~(  @g_ªQ @g“åÁi @gî�Åªÿÿ@gì3%aøÿ@g[žA"ñÿ@gâdÑ*éÿ@gg¬h9ñÿ!@g�íµ ÷Æ°>gñhãˆµøä>)r  Úatol)
gŸwFàš$f>gÛªÞ5ôa>gÁÕù:Z]>glF2¢U™W>g„Œ²—™!S>gô·‘áO>gƒ×1¿&I>gÍ—¦KÚcD>g‘U}Þ‡@>gùÄ©Î:>rÍ  g•dyáý¥=)rR   rù  rú  rû  r   r7   r!  r   rL   rQ   rø  )	r)   rD   rý  rþ  rC   ÚgbtÚpred_resultÚtrain_scoreÚsample_weightss	            r>   Ú(test_squared_error_exact_backward_compatr  ¹  s×  € ð
 €IÝ
Œ	�)ÑÔ€AÝ	Œ�A�y 1‘}Ñ	%Ô	%€BÝ	Œ�Q�B˜˜
 Q™Ñ	'Ô	'€BÝ
Œˆb�"ˆfŒ€AÝ
#¨ÀsÐ
KÑ
KÔ
K×
OÒ
OÐPQÐSTÑ
UÔ
U€Cå”(ð	
ð 	
ð 	
ñô €Kõ �C—K’K ‘N”N K°dÐ;Ñ;Ô;Ð;å”(ð	
ð 	
ð 	
ñô €Kõ �CÔ$ S T TÔ*¨K¸dÐCÑCÔCÐCõ ”W˜a ˜W i°1¡nÑ5Ô5€NÝ
#¨ÀsÐ
KÑ
KÔ
K×
OÒ
OØ	ˆ1˜Nð Pñ ô €Cõ ”(ð	
ð 	
ð 	
ñô €Kõ �C—K’K ‘N”N K°dÀÐFÑFÔFÐFå”(ð	
ð 	
ð 	
ñô €Kõ �CÔ$ S T TÔ*¨K¸dÈÐOÑOÔOÐOÐOÐOrq   c                  ó(  — d} t          j        | ¦  «        }t          j        || dz  ¦  «        }t          j        | |  dz  ¦  «        }t           j        ||f         }t	          ddd¬¦  «                             ||¦  «        }t          |j        j        j	        d¦  «         t          j
        g d¢¦  «        }t          |                     |¦  «        |d	¬
¦  «         t          j
        g d¢¦  «        }t          |j        dd…         |d	¬
¦  «         dS )z€Test huber GBT backward compat on a simple dataset.

    The results to compare against are taken from scikit-learn v1.2.0.
    r'   r"   rt   r$   r2  )r1   rI   r   g  ¬2‘³%?)
g¦zÝ®j#?g7Àÿh•ÿï?gü31e @gîZ„Zºÿ@gk  @ga8t @gs×uýÿ@g%e 	Úü@g>¸T  @g±Øxìÿ!@r  r  )
gý¯°Ñéi‘>gÃAÉ¤{j�>g…#Æ$%t‰>gD9uà†>gÚíÚß�‚>g:"L”(€>g·Ý�|>gzòñ½Ô‡x>gu}˜¯v>gg—Ý±@s>r{  N)rR   rù  rú  rû  r   r7   r   r²   ÚclossÚdeltar!  rL   rQ   ©r)   rD   rý  rþ  rC   r  r  r  s           r>   Ú test_huber_exact_backward_compatr    s  € ð €IÝ
Œ	�)ÑÔ€AÝ	Œ�A�y 1‘}Ñ	%Ô	%€BÝ	Œ�Q�B˜˜
 Q™Ñ	'Ô	'€BÝ
Œˆb�"ˆfŒ€AÝ
#¨¸sÈ#Ð
NÑ
NÔ
N×
RÒ
RÐSTÐVWÑ
XÔ
X€Cå�C”I”OÔ)Ð+@ÑAÔAÐAå”(ð	
ð 	
ð 	
ñô €Kõ �C—K’K ‘N”N K°dÐ;Ñ;Ô;Ð;å”(ð	
ð 	
ð 	
ñô €Kõ �CÔ$ S T TÔ*¨K¸dÐCÑCÔCÐCÐCÐCrq   c                  ó&  — d} t          j        | ¦  «        dz  }t          j        || dz  ¦  «        }t          j        | |  dz  ¦  «        }t           j        ||f         }t	          dd¬¦  «                             ||¦  «        }t          j        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
¦  «        }t          |                     |¦  «        |d¬	¦  «         t          j        g d
¢¦  «        }t          |j	        dd…         |d¬	¦  «         dS )zŠTest binary log_loss GBT backward compat on a simple dataset.

    The results to compare against are taken from scikit-learn v1.2.0.
    r'   r"   rG   r$   r  gƒ
tÒÿï?gàr¹ƒ3÷ö>r  r  )
g¸Êu>?gŒ5Ò®^Ž?gô ÁÄ?gÒ	ÅÏiì?gN¬î?gËv^q!?g2¾„C6 ?gÈ�Álø?g1oEša	?gÁÑ5ÿC÷?r{  N©
rR   rù  rú  rû  r
   r7   r!  r   r›   rQ   r  s           r>   Ú)test_binomial_error_exact_backward_compatr  <  sP  € ð
 €IÝ
Œ	�)ÑÔ˜qÑ €AÝ	Œ�A�y 1‘}Ñ	%Ô	%€BÝ	Œ�Q�B˜˜
 Q™Ñ	'Ô	'€BÝ
Œˆb�"ˆfŒ€AÝ
$¨*À3Ð
GÑ
GÔ
G×
KÒ
KÈAÈqÑ
QÔ
Q€Cå”(à˜^Ð,Ø˜^Ð,Ø˜^Ð,Ø˜^Ð,Ø˜^Ð,Ø˜^Ð,Ø˜^Ð,Ø˜^Ð,Ø˜^Ð,Ø˜^Ð,ð	
ñô €Kõ �C×%Ò% aÑ(Ô(¨+¸DÐAÑAÔAÐAå”(ð	
ð 	
ð 	
ñô €Kõ �CÔ$ S T TÔ*¨K¸dÐCÑCÔCÐCÐCÐCrq   c                  ó&  — d} t          j        | ¦  «        dz  }t          j        || dz  ¦  «        }t          j        | |  dz  ¦  «        }t           j        ||f         }t	          d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          |                     |¦  «        |d¬¦  «         t          j        g d¢¦  «        }t          |j	        dd…         |d¬¦  «         dS )zŽTest multiclass log_loss GBT backward compat on a simple dataset.

    The results to compare against are taken from scikit-learn v1.2.0.
    r'   r%   r"   rG   r$   r  )çk*omÿÿï?gr¿LD“~>çlÿÁ-a›u>çh,a›u>)gŠÓË?“~>r  r  r   )ç0Q¿¤(€>r!  çW„Qÿÿï?g?öm…}w>)r!  r!  gX
í€}w>r"  r  r  )
g]ÓR4³>g³�õ{a\°>g5õ|ÿñ)¬>guï¶B¨=¨>gÈ@3BÝ¤>g³ b‡Cõ¡>gB2h–Íéž>g�@,y›š>g"âŒy°æ–>gŒœû=¶“>r{  Nr  r  s           r>   Ú,test_multinomial_error_exact_backward_compatr#  i  sZ  € ð
 €IÝ
Œ	�)ÑÔ˜qÑ €AÝ	Œ�A�y 1‘}Ñ	%Ô	%€BÝ	Œ�Q�B˜˜
 Q™Ñ	'Ô	'€BÝ
Œˆb�"ˆfŒ€AÝ
$¨*À3Ð
GÑ
GÔ
G×
KÒ
KÈAÈqÑ
QÔ
Q€Cå”(àLÐLÐLØLÐLÐLØLÐLÐLØLÐLÐLØLÐLÐLØLÐLÐLØLÐLÐLØLÐLÐLØLÐLÐLØLÐLÐLð	
ñô €Kõ �C×%Ò% aÑ(Ô(¨+¸DÐAÑAÔAÐAå”(ð	
ð 	
ð 	
ñô €Kõ �CÔ$ S T TÔ*¨K¸dÐCÑCÔCÐCÐCÐCrq   c                 ó  — t          j        dd¬¦  «        \  }}ddddd| dd	œ}t          di |¤Ž}t          j        ¦   «         5  t          j        d
¦  «         |                     ||¦  «         ddd¦  «         dS # 1 swxY w Y   dS )a`  Test _update_terminal_regions denominator is not zero.

    For instance for log loss based binary classification, the line search step might
    become nan/inf as denominator = hessian = prob * (1 - prob) and prob = 0 or 1 can
    happen.
    Here, we create a situation were this happens (at least with roughly 80%) based
    on the random seed.
    r$   rØ   r\   r]   rv   r%   Nr"   )r_   ru   rI   rb   r^   r-   Úmin_samples_leafr  rc   )r   rd   r
   rç   rè   r  r7   )rV   rC   rD   Úparamsr<   s        r>   Útest_gb_denominator_zeror'  –  sê   € õ Ô$¨sÀÐDÑDÔD�D€A€qð ØØØØØ*Øðð €Fõ %Ð
.Ð
. vÐ
.Ð
.€Cå	Ô	 Ñ	"Ô	"ð ð ÝÔ˜gÑ&Ô&Ð&Ø�Š��1‰Œˆðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s   Á+A;Á;A?ÂA?)ŽÚ__doc__rï  rç   ÚnumpyrR   r4   Únumpy.testingr   Úsklearnr   Úsklearn.baser   Úsklearn.datasetsr   r   Úsklearn.dummyr   r	   Úsklearn.ensembler
   r   Úsklearn.ensemble._gbr   Ú#sklearn.ensemble._gradient_boostingr   Úsklearn.exceptionsr   r   Úsklearn.linear_modelr   Úsklearn.metricsr   Úsklearn.model_selectionr   Úsklearn.pipeliner   Úsklearn.preprocessingr   Úsklearn.svmr   Úsklearn.utilsr   Úsklearn.utils._mockingr   Úsklearn.utils._param_validationr   Úsklearn.utils._testingr   r   r   Úsklearn.utils.fixesr   r   r   ÚGRADIENT_BOOSTING_ESTIMATORSrC   rD   rM   rN   r~   r}   râ   rã   rê   Ú	load_irisr8   Úpermutationr:   rß   Úpermr9   r?   rE   ÚmarkÚparametrizerY   rp   rƒ   rˆ   r‘   r—   r¡   r£   r­   rµ   rÇ   rÏ   rÖ   rÜ   rï   rù   rý   r  r
  r  r  r  r"  r(  r,  r.  rQ  rT  r^  r`  ri  rl  rr  rv  ry  r|  r  r‡  rŒ  r�  r“  r�  rŸ  r§  rª  r­  r±  r³  r¹  r»  rÈ  rÑ  rÕ  rÝ  rà  rã  rê  rò  rô  rö  r  r	  r  r  r  r#  r'  rc   rq   r>   ú<module>rD     s>  ððð ð 
€	€	€	Ø €€€à Ð Ð Ð Ø €€€Ø )Ð )Ð )Ð )Ð )Ð )à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø AÐ AÐ AÐ AÐ AÐ AÐ AÐ AØ 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø RÐ RÐ RÐ RÐ RÐ RÐ RÐ RØ -Ð -Ð -Ð -Ð -Ð -Ø >Ð >Ð >Ð >Ð >Ð >Ø DÐ DÐ DÐ DÐ DÐ DÐ DÐ DØ 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø .Ð .Ð .Ð .Ð .Ð .Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø *Ð *Ð *Ð *Ð *Ð *Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø AÐ AÐ AÐ AÐ AÐ Aðð ð ð ð ð ð ð ð ð ð
 OÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ NÐ Nà :Ð<UÐVÐ ð 	ˆ"€X��Bˆx˜"˜b˜ A q 6¨A¨q¨6°A°q°6Ð:€ØÐÐ€Øˆ"€X��1ˆv˜˜1�vÐ€Øˆjˆj€ð ˆØ˜a¨q¸Èðñ ô �€€uð 	ˆˆe‰Œ€à„i×Ò˜AÑÔ€ð €xÔÑÔ€Ø
‡‚�t”{Ô'Ñ(Ô(€ØŒI�dŒO€„	ØŒk˜$Ô€„ð(ð (ð (ðð ð ð „×Ò˜Ð!<Ñ=Ô=ð&ð &ñ >Ô=ð&ð( „×Ò˜Ð!<Ñ=Ô=ð*Sð *Sñ >Ô=ð*SðZ „×Ò˜Ð!MÑNÔNØ„×Ò˜ jÑ1Ô1ð$ð $ñ 2Ô1ñ OÔNð$ðN „×Ò˜ jÑ1Ô1Ø„×Ò˜¨)Ñ4Ô4ð)ð )ñ 5Ô4ñ 2Ô1ð)ð$)ð )ð )ðX „×ÒØà	" E¨5Ð1Ø	# T¤Y°´Ð<ðñô ð1ð 1ñô ð1ð,ð ,ð ,ð(3ð 3ð 3ð „×Ò˜¨.Ñ9Ô9ðMð Mñ :Ô9ðMð Eð Eð Eð(!Nð !Nð !NðH#ð #ð #ðB)ð )ð )ð*Gð Gð Gð6 „×Ò˜Ð&BÑCÔCð-ð -ñ DÔCð-ð$'ð 'ð 'ð(Tð Tð Tð&ð &ð &ð2'ð 'ð 'ð'ð 'ð 'ð'ð 'ð 'ð*'ð 'ð 'ð: „×ÒÐ4Ð6RÑSÔSðð ñ TÔSðð „×ÒÐ4Ð6RÑSÔSðLð Lñ TÔSðLð* „×ÒØ.à	#Ð%7Ð8Ø	# ]Ð3Ø	# \Ð2Ø	"Ð$6Ð7Ø	" MÐ2Ø	" LÐ1ðñ
ô 
ð ð  ñ
ô 
ð ðLð Lð Lð@ð ð ð>ð ð ð8 „×Ò˜Ð <Ñ=Ô=ðGð Gñ >Ô=ðGð, „×Ò˜Ð <Ñ=Ô=ð7ð 7ñ >Ô=ð7ð  „×Ò˜Ð <Ñ=Ô=ð5ð 5ñ >Ô=ð5ð „×Ò˜Ð <Ñ=Ô=ð@ð @ñ >Ô=ð@ð „×ÒÐ+Ð-IÑJÔJð6ð 6ñ KÔJð6ð> „×Ò˜Ð <Ñ=Ô=ðð ñ >Ô=ðð „×Ò˜Ð <Ñ=Ô=ð
?ð 
?ñ >Ô=ð
?ð „×Ò˜Ð <Ñ=Ô=ð@ð @ñ >Ô=ð@ð$ „×Ò˜Ð <Ñ=Ô=ðFð Fñ >Ô=ðFð& „×Ò˜Ð <Ñ=Ô=Ø„×ÒØ˜¨Ñ7¸.ÑHñô ð!;ð !;ñô ñ >Ô=ð!;ðH „×Ò˜Ð <Ñ=Ô=ð>ð >ñ >Ô=ð>ð&ð ð ð „×Ò˜Ð <Ñ=Ô=ð*@ð *@ñ >Ô=ð*@ðZQð Qð Qð"Qð Qð Qð#ð #ð #ð&"ð "ð "ð. „×Ò˜Ð(DÑEÔEðð ñ FÔEðð „×Ò˜Ð(DÑEÔEð1ð 1ñ FÔEð1ð*ð *ð *ð „×ÒØðð ð ñô ð,ð ,ñô ð,ð6ð 6ð 6ð Ø„×ÒØÐ1Ð3LÐMñô ð „×ÒØ˜¨Ñ7¸.ÑHñô ð%7ð %7ñô ñô ñ „ð%7ðP „×ÒØÐ"<Ð>WÐ!Xñô ð 4ð  4ñô ð 4ðF#ð #ð #ð&(2ð (2ð (2ðV	ð 	ð 	ðDð Dð Dð „×ÒØ'à	#Ð%8¸/ÐJØ	#Ð%5°ÐGØ	" O°^ÐDðð
 	MÐLÐLð ñ ô ðAð Añô ðAð,8ð 8ð 8ð<ð ð ð,Qð Qð QðIð Ið Ið,/ð /ð /ðPPð PPð PPðf ð,Dð ,Dñ „ð,Dð^*Dð *Dð *DðZ*Dð *Dð *DðZð ð ð ð rq   