Ë
    8Ò^j#ä  ã            
       ó`  — d Z ddlZddlZddlZddlZddlmZ 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jz                  j}                  d«      Z? e	j€                  «       ZAe?j…                  eAj†                  jˆ                  «      ZEeAjŒ                  eE   eA_F        eAj†                  eE   eA_C        d$„ ZGd%„ ZHej’                  j•                  d&d'«      d(„ «       ZKej’                  j•                  d&d'«      d)„ «       ZLej’                  j•                  d&d*«      ej’                  j•                  d+d,«      d-„ «       «       ZMej’                  j•                  d+d,«      ej’                  j•                  d.d/«      d0„ «       «       ZNd1„ ZOej’                  j•                  d2ee;e<feeAjŒ                  eAj†                  fg«      d3„ «       ZPd4„ ZQd5„ ZRej’                  j•                  d6e4«      d7„ «       ZSd8„ ZTd9„ ZUd:„ ZVd;„ ZWd<„ ZXej’                  j•                  d=e6«      d>„ «       ZYd?„ ZZd@„ Z[dA„ Z\dB„ Z]dC„ Z^dD„ Z_dE„ Z`ej’                  j•                  dFe6«      dG„ «       Zaej’                  j•                  dFe6«      dH„ «       Zbej’                  j•                  dIedJfedKfedLfedJfedKfedLfg«      dM„ «       ZcdN„ Zdej’                  jÊ                  dO„ «       Zfej’                  jÊ                  dP„ «       Zgej’                  j•                  dQe6«      dR„ «       Zhej’                  j•                  dQe6«      dS„ «       Ziej’                  j•                  dQe6«      dT„ «       Zjej’                  j•                  dQe6«      dU„ «       Zkej’                  j•                  dVe6«      dW„ «       Zlej’                  j•                  dQe6«      dX„ «       Zmej’                  j•                  dQe6«      dY„ «       Znej’                  j•                  dQe6«      dZ„ «       Zoej’                  j•                  dQe6«      d[„ «       Zpej’                  j•                  dQe6«      ej’                  j•                  d\e3e4z   e5z   «      d]„ «       «       Zqej’                  j•                  dQe6«      d^„ «       Zrd_„ Zsej’                  j•                  dQe6«      d`„ «       Ztda„ Zudb„ Zvdc„ Zwdd„ Zxej’                  j•                  dee6«      df„ «       Zyej’                  j•                  dee6«      dg„ «       Zzdh„ Z{ej’                  j•                  dig dj¢«      dk„ «       Z|dl„ Z}e1ej’                  j•                  dmeef«      ej’                  j•                  d\e3e4z   e5z   «      dn„ «       «       «       Z~ej’                  j•                  dFeeg«      do„ «       Zdp„ Z€dq„ Z�dr„ Z‚ds„ Zƒej’                  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Šd~„ Z‹d„ ZŒd€„ Z�d�„ ZŽej’                  j•                  dVe6«      d‚„ «       Z�y)ƒ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  | j	                  t
        j                  t
        j                  «       ddd«       y# 1 sw Y   yxY w)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     úx/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/sklearn/ensemble/tests/test_gradient_boosting.pyÚtest_exponential_n_classes_gt_2r?   ;   sJ   € ä
$¨-Ô
8€CØ
K€CÜ	�‰”z¨Ô	-ñ (Ø�‰”—	‘	œ4Ÿ;™;Ô'÷(÷ (ñ (ús   ª/A"Á"A+c                  ó¼   — t        t        ¬«      } d}t        j                  t        |¬«      5  | j                  t        t        «       ddd«       y# 1 sw Y   yxY w)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   sJ   € ä
$Ô*CÔ
D€Cð	Nð ô 
�‰”z¨Ô	-ñ Ø�‰””1Œ÷÷ ñ ús   ®AÁAr1   ©Úlog_lossr/   c                 ó  — t        | d|¬«      }t        j                  t        «      5  |j	                  t
        «       d d d «       |j                  t        t        «       t        |j	                  t
        «      t        «       dt        |j                  «      k(  sJ ‚|j                  d d |j                  dd  z
  }t        j                  |dk\  «      sJ ‚|j!                  t        «      }|j"                  dk(  sJ ‚y # 1 sw Y   ŒÀxY w)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   sØ   € ô %Ø Ð1Cô€Cô 
�‰”zÓ	"ñ Ø�‰”AŒ÷ð ‡G�GŒAŒq„MÜ�s—{‘{¤1“~¤{Ô3Ø”�S—_‘_Ó%Ò%Ð%Ð%à×(Ñ(¨¨"Ð-°×0@Ñ0@ÀÀÐ0DÑDÐÜ�6‰6Ð# sÑ*Ô+Ð+Ð+à�Y‰Y”q‹\€FØ�<‰<˜:Ò%Ð%Ñ%÷ð ús   ¨C=Ã=Dc                 ó  — t        j                  d|¬«      \  }}d}|d | ||d  }}|d | ||d  }}dd| |dœ}	t        dddi|	¤Ž}
|
j                  ||«       t        ddd	i|	¤Ž}|j                  ||«       |
j	                  ||«      |j	                  ||«      k  sJ ‚d
d| |dœ}	t        dddi|	¤Ž}|j                  ||«       t        dddi|	¤Ž}|j                  ||«       |j	                  ||«      |j	                  ||«      kD  sJ ‚y )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   sN  € ô ×$Ñ$¨tÐBTÔU�D€A€qà€IØ˜
˜�m Q y z ]ˆV€GØ˜
˜�m Q y z ]ˆV€Gð ØØØ*ñ	€Mô 0ÑQ¸RÐQÀ=ÑQ€NØ×Ñ�w Ô(ä/ÑQ¸RÐQÀ=ÑQ€NØ×Ñ�w Ô(à×Ñ ¨Ó/°.×2FÑ2FÀvÈvÓ2VÒVÐVÐVð
 ØØØ*ñ	€Mô -ÑJ°qÐJ¸MÑJ€KØ‡O�O�G˜WÔ%ä.ÑR¸bÐRÀMÑR€MØ×Ñ�g˜wÔ'à×Ñ˜V VÓ,¨}×/BÑ/BÀ6È6Ó/RÒRÐRÑRó    )Úsquared_errorÚabsolute_errorÚhuberÚ	subsample)r]   ç      à?c           
      óp  — t        j                  t        t        «      «      }d }d |d|z  fD ]‡  }t	        d| d|d|d¬«      }|j                  t        t        |¬«       |j                  t        «      }|j                  dk(  sJ ‚|j                  t        «      }t        t        |«      }	|	dk  sJ ‚|�	 |}Œ‰ y )	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‰7”3”u“:Ó€DØ€KØ  a¨$¡hÐ/ò ˆô (ØØØØØØ+Øô
ˆð 	�‰””u¨MˆÔ:Ø—‘œ5Ó!ˆØ�|‰|˜yÒ(Ð(Ð(à—‘œUÓ#ˆÜ ¤¨Ó/ˆØ�TŠzÐˆzàÐ"ð à‰ñ?rq   r{   )Nr!   c                 ó®  — |dk(  r,t        j                  t        t        j                  «      «      }t        dd|| ¬«      }|j                  t        j                  t        j                  |¬«       |j                  t        j                  t        j                  «      }|dkD  sJ ‚|j                  t        j                  «      }|j                  dk(  sJ ‚y )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¡KÓ 0Ó1ˆä
$ØØØ'Øô	€Cð ‡G�GŒD�I‰I”t—{‘{°-€GÔ@Ø�I‰I”d—i‘i¤§¡Ó-€EØ�3Š;Ðˆ;à�Y‰Y”t—y‘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 |¤Ž}	|	j	                  ||«       t        ||	j                  |«      «      }
|
dk  sJ ‚t        j                  d|¬«      \  }}|d d
 |d d
 }}|d
d  |d
d  }}t        di |¤Ž}	|	j	                  ||«       t        ||	j                  |«      «      }
|
dk  sJ ‚t        j                  d|¬«      \  }}|d d
 |d d
 }}|d
d  |d
d  }}t        di |¤Ž}	|	j	                  ||«       t        ||	j                  |«      «      }
|
dk  sJ ‚y )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€LàØØØØØ*ñÐô ×"Ñ"¨TÀÐTWÔX�D€A€qØ˜˜#�w  $ 3 ˆW€GØ�s�t�W˜a  ˜gˆF€Fä
#Ñ
8Ð&7Ñ
8€CØ‡G�GˆG�WÔÜ
˜V S§[¡[°Ó%8Ó
9€CØ�Š9Ðˆ9ô ×"Ñ"¨TÀÔM�D€A€qØ˜˜#�w  $ 3 ˆW€GØ�s�t�W˜a  ˜gˆF€Fä
#Ñ
8Ð&7Ñ
8€CØ‡G�GˆG�WÔÜ
˜V S§[¡[°Ó%8Ó
9€CØ�Š<Ðˆ<ô ×"Ñ"¨TÀÔM�D€A€qØ˜˜#�w  $ 3 ˆW€GØ�s�t�W˜a  ˜gˆF€Fä
#Ñ
8Ð&7Ñ
8€CØ‡G�GˆG�WÔÜ
˜V S§[¡[°Ó%8Ó
9€CØ�Š;Ð‰;rq   zGradientBoosting, X, yc                 ón   —  | «       }t        |d«      rJ ‚|j                  ||«       t        |d«      sJ ‚y )NÚfeature_importances_)Úhasattrr7   )ÚGradientBoostingrC   rD   Úgbdts       r>   Útest_feature_importancesr—   ú   s;   € ñ Ó€DÜ�tÐ3Ô4Ð4Ð4Ø‡H�HˆQ�„NÜ�4Ð/Ô0Ð0Ñ0rq   c                 ó*  — t        d| ¬«      }t        j                  t        «      5  |j	                  t
        «       d d d «       |j                  t        t        «       t        |j                  t
        «      t        «       |j	                  t
        «      }t        j                  |dk\  «      sJ ‚t        j                  |dk  «      sJ ‚|j                  j                  |j!                  d¬«      d¬«      }t        |t        «       y # 1 sw Y   ŒÍxY w)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¡   
  sÍ   € ä
$°#ÐDVÔ
W€Cä	�‰”zÓ	"ñ Ø×Ñœ!Ô÷ð ‡G�GŒAŒq„MÜ�s—{‘{¤1“~¤{Ô3ð ×Ñ¤Ó"€GÜ�6‰6�'˜S‘.Ô!Ð!Ð!Ü�6‰6�'˜S‘.Ô!Ð!Ð!ð �\‰\×Ñ˜wŸ~™~°1˜~Ó5¸AÐÓ>€FÜ�vœ{Õ+÷ð ús   §D	Ä	Dc                  óÂ   — g d¢} t        dd¬«      }d}t        j                  t        |¬«      5  |j	                  t
        t        | ¬«       d d d «       y # 1 sw Y   y xY w)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£     sU   € Ú&€MÜ
$°#ÀAÔ
F€Cð	Cð ô 
�‰”z¨Ô	-ñ 3Ø�‰””1 MˆÔ2÷3÷ 3ñ 3ús   ¯AÁAÚcsc_containerc                 óZ  — t        j                  dd¬«      \  }} | |«      }t        dd¬«      }|j                  ||«       t	        j
                  |j                  «      j                  dd«      }d}t        j                  t        |¬«      5  t        |j                  ||j                  |«       d d d «       t	        j                  |«      }t        j                  t        d¬«      5  t        |j                  ||j                  |«       d d d «       y # 1 sw Y   ŒexY w# 1 sw Y   y xY w)	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�D€A€qÙ  Ó#€LÜ
$°#ÀAÔ
F€CØ‡G�GˆAˆq„MÜ�H‰H�a—g‘gÓ×'Ñ'¨¨AÓ.€EØC€GÜ	�‰”z¨Ô	1ñ PÜ�s—‘¨°c×6GÑ6GÈÔO÷Pä×!Ñ! !Ó$€IÜ	�‰”zÐ)KÔ	Lñ MÜ�s—‘¨	°3×3DÑ3DÀeÔL÷Mð M÷Pð Pú÷Mð Mús   Â#DÃ)#D!ÄDÄ!D*c                 ó  — t        j                  d| ¬«      \  }}|d d |dd  }}|d d |dd  }}t        ddddd| ¬«      }|j                  ||«       |j	                  ||j                  |«      «      }|d	k  s
J d
|z  «       ‚y )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�D€A€qà˜˜�h  $ % ˆV€GØ˜˜�h  $ % ˆV€Gä%ØØØØØØ'ô€Dð 	‡H�HˆW�gÔØ�z‰z˜& $×"8Ñ"8¸Ó"@ÓA€HØ�cŠ>ÐDÐ9¸HÑDÓD‰>rq   c                 óv  —  | «       }|j                   |j                  }}t        |||¬«      \  }}}}t        dddd|¬«      }	|	j	                  ||«       t        j                  |	j                  «      ddd…   }
|
D �cg c]  }|j                  |   ‘Œ }}|d	   d
k(  sJ ‚t        |dd «      h d£k(  sJ ‚yc c}w )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    r   ÚMedIncr!   r%   >   ÚAveOccupÚLatitudeÚ	Longitude)
r9   r:   r   r   r7   rR   Úargsortr“   Úfeature_namesÚset)Úfetch_california_housing_fxtrV   Ú
californiarC   rD   rg   rh   ri   rj   r€   Ú
sorted_idxÚsÚsorted_featuress                r>   Ú"test_feature_importance_regressionrÄ   N  sØ   € ñ .Ó/€JØ�?‰?˜J×-Ñ-€q€AÜ'7Ø	ˆ1Ð-ô(Ñ$€GˆV�W˜fô $ØØØØØ'ô€Cð ‡G�GˆG�WÔÜ—‘˜C×4Ñ4Ó5±d¸°dÑ;€JØ<FÖG°q�z×/Ñ/°Ó2ÐG€OÐGð ˜1Ñ Ò)Ð)Ð)ô
 ˆ˜q Ð#Ó$Ò(MÒMÐMÑMùò Hs   Á>B6c                  óR  — t        j                  dd¬«      \  } }| j                  \  }}| d d }|d d }t        dd ¬«      }|j	                  ||«       |j
                  |k(  sJ ‚t        dd ¬«      }|j	                  ||«       |j
                  |k(  sJ ‚t        dd¬«      }|j	                  ||«       |j
                  t        |dz  «      k(  sJ ‚t        dd¬«      }|j	                  ||«       |j
                  t        t        j                  |«      «      k(  sJ ‚t        dd¬«      }|j	                  ||«       |j
                  t        t        j                  |«      «      k(  sJ ‚t        dd	| j                  d   z  ¬«      }|j	                  ||«       |j
                  dk(  sJ ‚y )
Nr¯   r!   r\   r[   )rI   r±   ç333333Ó?ÚsqrtÚlog2ç{®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�D€A€qØ—G‘G�M€A€zà��ˆh€GØ��ˆh€Gä%°1À4ÔH€DØ‡H�HˆW�gÔØ×Ñ Ò+Ð+Ð+ä$°!À$ÔG€DØ‡H�HˆW�gÔØ×Ñ Ò+Ð+Ð+ä$°!À#ÔF€DØ‡H�HˆW�gÔØ×Ñ¤ Z°#Ñ%5Ó!6Ò6Ð6Ð6ä$°!À&ÔI€DØ‡H�HˆW�gÔØ×Ñ¤¤R§W¡W¨ZÓ%8Ó!9Ò9Ð9Ð9ä$°!À&ÔI€DØ‡H�HˆW�gÔØ×Ñ¤¤R§W¡W¨ZÓ%8Ó!9Ò9Ð9Ð9ä$°!À$ÈÏÉÐQRÉÑBSÔ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                  |j                  |«      t        j                  ¬«       d d d «       |j                  ||«       |j                  |«      }|j                  |«      D ]  }|j                  |j                  k(  rŒJ ‚ t        ||«       y # 1 sw Y   ŒjxY w)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�D€A€qØ˜˜#�w  $ 3 ˆW€GØˆsˆtˆW€FÜ
#Ó
%€Cä	�‰”zÓ	"ñ BÜ
�‰�C×&Ñ& vÓ.´b·j±jÕA÷Bð ‡G�GˆG�WÔØ�[‰[˜Ó €Fð ×Ñ Ó'ò 'ˆØ�w‰w˜&Ÿ,™,Ó&Ð&Ð&ð'ô ˜f aÕ(÷Bð Bús   Á5C,Ã,C5c                  óÄ  — t        j                  dd¬«      \  } }| d d |d d }}| dd  |dd  }}t        d¬«      }t        j                  t
        «      5  t        j                  |j                  |«      t        j                  ¬«       d d d «       |j                  ||«       |j                  |«      D ]  }|j                  |j                  k(  rŒJ ‚ t        |j                  |«      «       |j                  |«      D ]7  }|j                  d   |j                  d   k(  sJ ‚d	|j                  d   k(  rŒ7J ‚ t        |j!                  |«      «       y # 1 sw Y   ŒÎxY w)
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Ú   ¨  sT  € ô ×$Ñ$¨tÀ!ÔD�D€A€qØ˜˜#�w  $ 3 ˆW€GØ�s�t�W˜a  ˜gˆF€FÜ
$°"Ô
5€Cä	�‰”~Ó	&ñ HÜ
�‰�C×,Ñ,¨VÓ4¼B¿J¹JÕG÷Hð ‡G�GˆG�WÔð ×$Ñ$ VÓ,ò ,ˆØ�|‰|˜vŸ|™|Ó+Ð+Ð+ð,ô �s—{‘{ 6Ó*¨FÔ3ð ×0Ñ0°Ó8ò *ˆØ�|‰|˜A‰ ,×"4Ñ"4°QÑ"7Ò7Ð7Ð7Ø�L×&Ñ& qÑ)Ó)Ð)Ð)ð*ô ˜c×/Ñ/°Ó7¸ÕF÷!Hð Hús   Á5EÅEÚ	Estimatorc                 óÒ  — t         j                  j                  |«      }|j                  d¬«      }d|d d …df   z  j	                  t
        «      dz   } | «       }|j                  ||«       dD ]j  }t        |d|z   d «      }|€Œt        j                  d¬	«      5  t         ||«      «      }d d d «       dd   d d  t        j                  |d   dk7  «      rŒjJ ‚ y # 1 sw Y   Œ1xY w)
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€CØ�‰˜ˆÓ!€AØ	
ˆQŠq�!ˆt‰W‰×ÑœSÓ! AÑ%€AÙ“€IØ‡M�M�!�QÔØAò -ˆÜ˜i¨°TÑ)9¸4Ó@ˆØÐàÜ×$Ñ$¨DÔ1ñ 	1Ü ¡¨Q£Ó0ˆM÷	1àˆ�aÑ™ÐÜ�v‰v�m AÑ&¨!Ñ+Õ,Ð,Ð,ñ-÷
	1ð 	1ús   ÂCÃC&	c                  óÖ  — t        dd¬«      } | j                  t        t        «       t	        | j                  t        «      t        «       dt        | j                  «      k(  sJ ‚	 dd l
}|j                  | |j                  ¬«      }d } |j                  |«      } t	        | j                  t        «      t        «       dt        | j                  «      k(  sJ ‚y # t        $ r dd l}Y Œ}w xY w)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€Cà‡G�GŒAŒq„MÜ�s—{‘{¤1“~¤{Ô3Ø”#�c—o‘oÓ&Ò&Ð&Ð&ðÛ ð —\‘\ #°×0GÑ0G�\ÓH€NØ
€CØ
�,‰,�~Ó
&€CÜ�s—{‘{¤1“~¤{Ô3Ø”#�c—o‘oÓ&Ò&Ð&Ñ&øô ò Ýðús   Á&C ÃC(Ã'C(c            	      óZ  — t        dd¬«      } t        j                  t        «      5  | j	                  t
        t        j                  t        t
        «      «      «       d d d «       t        dd¬«      } | j	                  t
        t        j                  t        t
        «      «      «       | j                  t        j                  d«      g«       t        t        j                  dt        j                  ¬«      | j                  t        j                  d«      g«      «       y # 1 sw Y   ŒÄxY w)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û   ê  sµ   € ä
$°#ÀAÔ
F€Cô 
�‰”zÓ	"ñ $Ø�‰””2—7‘7œ3œq›6“?Ô#÷$ô $°À1Ô
E€CØ‡G�GŒAŒr�w‰w”sœ1“v‹ÔØ‡K�K”—‘˜!“�ÔÜ”r—w‘w˜t¬2¯:©:Ô6¸¿¹ÄSÇXÁXÈaÃ[ÀMÓ8RÕS÷$ð $ús   §7D!Ä!D*c                 ó  — t        dddd| ¬«      }|j                  t        t        «       |j	                  t        «      }t        ddd| ¬«      }|j                  t        t        «       |j	                  t        «      }t        ||«       y )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            	      ó,  — t        dd¬«      } t        t        t        t        «      «      }| j                  t        |«       t        | j                  t        «      t        t        t        t        «      «      «       dt        | j                  «      k(  sJ ‚y )Nr$   r!   r™   )r
   rç   ÚmapÚstrrD   r7   rC   r   rL   rM   rN   rO   rP   )r<   Úsymbol_ys     r>   Útest_symbol_labelsr    sa   € ä
$°#ÀAÔ
F€Cä”CœœQ“KÓ €Hà‡G�GŒAˆxÔÜ�s—{‘{¤1“~¤t¬C´´[Ó,AÓ'BÔCØ”#�c—o‘oÓ&Ò&Ð&Ñ&rq   c                  ó\  — t        dd¬«      } t        j                  t        t        j                  ¬«      }| j                  t        |«       t        | j                  t        «      t        j                  t        t        j                  ¬«      «       dt        | j                  «      k(  sJ ‚y ©Nr$   r!   r™   rÏ   )r
   rR   ÚasarrayrD   Úfloat32r7   rC   r   rL   rM   rN   rO   rP   )r<   Úfloat_ys     r>   Útest_float_class_labelsr    sh   € ä
$°#ÀAÔ
F€Cä�j‰jœ¤"§*¡*Ô-€Gà‡G�GŒAˆwÔÜ�s—{‘{¤1“~¤r§z¡z´+ÄRÇZÁZÔ'PÔQØ”#�c—o‘oÓ&Ò&Ð&Ñ&rq   c                  ó¨  — t        dd¬«      } t        j                  t        t        j                  ¬«      }|d d …t        j
                  f   }d}t        j                  t        |¬«      5  | j                  t        |«       d d d «       t        | j                  t        «      t        «       dt        | j                   «      k(  sJ ‚y # 1 sw Y   ŒGxY w)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€Cä	�‰”AœRŸX™XÔ	&€BØ	ŠAŒr�z‰zˆMÑ	€Bð	!ð ô
 
�‰Ô+°8Ô	<ñ Ø�‰”�2Œ÷ä�s—{‘{¤1“~¤{Ô3Ø”#�c—o‘oÓ&Ò&Ð&Ñ&÷ð ús   Á+CÃCc                  ó`  — t        j                  t        «      } t        dd¬«      }|j	                  | t
        «       t        |j                  t        «      t        «       dt        |j                  «      k(  sJ ‚t        j                  t        «      } t        dd¬«      }|j	                  | t
        «       t        |j                  t        «      t        «       dt        |j                  «      k(  sJ ‚t        j                  t
        t         j                  ¬«      }t        j                  |«      }t        dd¬«      }|j	                  t        |«       t        |j                  t        «      t        «       dt        |j                  «      k(  sJ ‚t        j                  t
        t         j                  ¬«      }t        j                  |«      }t        dd¬«      }|j	                  t        |«       t        |j                  t        «      t        «       dt        |j                  «      k(  sJ ‚y r
  )rR   r¨   rC   r
   r7   rD   r   rL   rM   rN   rO   rP   Úascontiguousarrayr  r  )ÚX_r<   r  s      r>   Útest_mem_layoutr  <  sr  € ä	×	Ñ	œ1Ó	€BÜ
$°#ÀAÔ
F€CØ‡G�GˆB”„NÜ�s—{‘{¤1“~¤{Ô3Ø”#�c—o‘oÓ&Ò&Ð&Ð&ä	×	Ñ	œaÓ	 €BÜ
$°#ÀAÔ
F€CØ‡G�GˆB”„NÜ�s—{‘{¤1“~¤{Ô3Ø”#�c—o‘oÓ&Ò&Ð&Ð&ä	�‰”AœRŸX™XÔ	&€BÜ	×	Ñ	˜bÓ	!€BÜ
$°#ÀAÔ
F€CØ‡G�GŒAˆr„NÜ�s—{‘{¤1“~¤{Ô3Ø”#�c—o‘oÓ&Ò&Ð&Ð&ä	�‰”AœRŸX™XÔ	&€BÜ	×	Ñ	˜2Ó	€BÜ
$°#ÀAÔ
F€CØ‡G�GŒAˆr„NÜ�s—{‘{¤1“~¤{Ô3Ø”#�c—o‘oÓ&Ò&Ð&Ñ&rq   ÚGradientBoostingEstimatorc                 óê   —  | ddd¬«      }|j                  t        t        «       |j                  j                  d   dk(  sJ ‚t        |j                  d d t        j                  g d¢«      d¬	«       y )
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  sl   € ñ *Ø q°Cô€Ið ‡M�M”!”QÔØ×%Ñ%×+Ñ+¨AÑ.°#Ò5Ð5Ð5äØ×"Ñ" 2 AÐ&Ü
�‰Ò0Ó1Øörq   c                 óê  — t        j                  dd¬«      \  }} | ddd¬«      }|j                  ||«       |j                  j                  d   dk(  sJ ‚|j                  d   t        j                  |j                  «      k(  sJ ‚ | dddd¬	«      }|j                  ||«       |j                  j                  d   dk  sJ ‚|j                  d   t        j                  |j                  «      k(  sJ ‚y )
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�D€A€qÙ)Ø q°Cô€Ið ‡M�M�!�QÔØ× Ñ ×&Ñ& qÑ)¨SÒ0Ð0Ð0Ø× Ñ  Ñ$¬¯©°i×6JÑ6JÓ(KÒKÐKÐKá)ØØØØô	€Ið ‡M�M�!�QÔØ× Ñ ×&Ñ& qÑ)¨CÒ/Ð/Ð/Ø× Ñ  Ñ$¬¯©°i×6JÑ6JÓ(KÒKÐKÑKrq   z(GradientBoostingEstimator, oob_attributer  r#  r%  c                 óæ   — t        j                  dd¬«      \  }} | ddd¬«      }|j                  ||«       t        j                  t
        «      5  |j                   ddd«       y# 1 sw Y   yxY w)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*    sg   € ô ×$Ñ$¨sÀÔC�D€A€qÙ)ØØØô€Ið
 ‡M�M�!�QÔÜ	�‰”~Ó	&ñ  Ø×Ò÷ ÷  ñ  ús   ÁA'Á'A0c                  óÄ  — t        dddd¬«      } | j                  t        j                  t        j                  «       | j                  t        j                  t        j                  «      }|dkD  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	¬
«      } | j                  t        j                  t        j                  «       | 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 ‚y )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™I¤t§{¡{Ó3€EØ�3Š;Ðˆ;Ø×%Ñ%×+Ñ+¨AÑ.°)×2HÑ2HÒHÐHÐHØ× Ñ ×&Ñ& qÑ)¨Y×-CÑ-CÒCÐCÐCØ× Ñ  Ñ$¬¯©°i×6JÑ6JÓ(KÒKÐKÐKä*ØØØØØô€Ið ‡M�M”$—)‘)œTŸ[™[Ô)Ø�O‰OœDŸI™I¤t§{¡{Ó3€EØ×%Ñ%×+Ñ+¨AÑ.°×1GÑ1GÒGÐGÐGØ× Ñ ×&Ñ& qÑ)¨I×,BÑ,BÒBÐBÐBØ× Ñ  Ñ$¬¯©°i×6JÑ6JÓ(KÒKÐKÑKrq   c                  ó²  — dd l } ddlm} | j                  } |«       | _        t	        dddd¬«      }|j                  t        t        «       | j                  }|| _        |j                  d«       |j                  «       j                  «       }dj                  dgd	gd
z  z   «      dz  }||k(  sJ ‚t        d„ |j                  «       D «       «      }d|k(  sJ ‚y )Nr   ©ÚStringIOr$   r!   çš™™™™™é?)rI   r-   Úverboseru   ú ú%10sú%16sr#   )ÚIterú
Train LosszOOB ImproveúRemaining Timec              3   ó    K  — | ]  }d –— Œ y­w©r!   Nrc   ©Ú.0Úls     r>   ú	<genexpr>z&test_verbose_output.<locals>.<genexpr>Ô  ó   è ø€ Ò8˜”!Ñ8ùó   ‚é   ©ÚsysÚior/  Ústdoutr
   r7   rC   rD   ÚseekÚreadlineÚrstripÚjoinÚsumÚ	readlines©rB  r/  Ú
old_stdoutr<   Úverbose_outputÚheaderÚtrue_headerÚn_liness           r>   Útest_verbose_outputrQ  ¹  sÑ   € ó Ýà—‘€JÙ“€C„JÜ
$Ø q°!¸sô€Cð ‡G�GŒAŒq„MØ—Z‘Z€NØ€C„Jð ×Ñ˜ÔØ×$Ñ$Ó&×-Ñ-Ó/€Fà—(‘(˜F˜8 v h°¡lÑ2Ó3ð 7ñ €Kð ˜&Ò Ð Ð äÑ8˜^×5Ñ5Ó7Ô8Ó8€Gà�WÒÐÑrq   c                  ó°  — dd l } ddlm} | j                  } |«       | _        t	        ddd¬«      }|j                  t        t        «       | j                  }|| _        |j                  d«       |j                  «       j                  «       }dj                  dgd	gdz  z   «      d
z  }||k(  sJ ‚t        d„ |j                  «       D «       «      }d|k(  sJ ‚y )Nr   r.  r$   r!   r"   )rI   r-   r1  r2  r3  r4  )r5  r6  r7  c              3   ó    K  — | ]  }d –— Œ y­wr9  rc   r:  s     r>   r=  z+test_more_verbose_output.<locals>.<genexpr>ñ  r>  r?  rA  rK  s           r>   Útest_more_verbose_outputrT  Ù  sÈ   € ó Ýà—‘€JÙ“€C„JÜ
$°#ÀAÈqÔ
Q€CØ‡G�GŒAŒq„MØ—Z‘Z€NØ€C„Jð ×Ñ˜ÔØ×$Ñ$Ó&×-Ñ-Ó/€Fà—(‘(˜F˜8 v h°¡lÑ2Ó3ð 7ñ €Kð
 ˜&Ò Ð Ð äÑ8˜^×5Ñ5Ó7Ô8Ó8€Gà�'Š>Ð‰>rq   ÚClsc                 ó  — t        j                  d|¬«      \  }} | dd|¬«      }|j                  ||«        | ddd|¬«      }|j                  ||«       |j                  d¬«       |j                  ||«       | t        u r+t        |j                  |«      |j                  |«      «       y t        |j                  |«      |j                  |«      «       t        |j                  |«      |j                  |«      «       y )	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^  ö  sÛ   € ô ×$Ñ$¨sÐASÔT�D€A€qÙ
˜3¨!Ð:LÔ
M€CØ‡G�GˆAˆq„MáØ A°$ÐEWô€Fð ‡J�Jˆq�!ÔØ
×Ñ 3ÐÔ'Ø
‡J�Jˆq�!Ôà
Ô'Ñ'Ü˜Ÿ™ qÓ)¨3¯;©;°q«>Õ:ô 	˜6Ÿ>™>¨!Ó,¨c¯k©k¸!«nÔ=Ü˜×,Ñ,¨QÓ/°×1BÑ1BÀ1Ó1EÕFrq   c                 óJ  — t        j                  d|¬«      \  }} | dd|¬«      }|j                  ||«        | ddd|¬«      }|j                  ||«       |j                  d¬«       |j                  ||«       t	        |j                  |«      |j                  |«      «       y )	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�D€A€qÙ
˜3¨!Ð:LÔ
M€CØ‡G�GˆAˆq„MáØ A°$ÐEWô€Fð ‡J�Jˆq�!ÔØ
×Ñ 3ÐÔ'Ø
‡J�Jˆq�!Ôä�F—N‘N 1Ó% s§{¡{°1£~Õ6rq   c                 ó\  — t        j                  dd¬«      \  }} | ddd¬«      }|j                  ||«       |j                  dd¬«       |j                  ||«       |j                  d	   j
                  dk(  sJ ‚t        dd
«      D ]#  }|j                  | df   j
                  dk(  rŒ#J ‚ y )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�D€A€qÙ
˜3¨!¸Ô
=€CØ‡G�GˆAˆq„MØ‡N�N ¨q€NÔ1Ø‡G�GˆAˆq„Mð �?‰?˜4Ñ ×*Ñ*¨aÒ/Ð/Ð/Ü�1�b‹\ò 5ˆØ�‰ ˜r 1˜uÑ%×/Ñ/°1Ó4Ð4Ð4ñ5rq   c                 óF  — t        j                  dd¬«      \  }} | dd¬«      }|j                  ||«        | ddd¬«      }|j                  ||«       |j                  d¬«       |j                  ||«       t	        |j                  |«      |j                  |«      «       y )	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�D€A€qÙ
˜3¨!Ô
,€CØ‡G�GˆAˆq„Má˜S¨A¸$Ô?€EØ	‡I�Iˆa�„OØ	×Ñ ÐÔ&Ø	‡I�Iˆa�„Oä˜eŸm™m¨AÓ.°·±¸A³Õ?rq   r•   c                 óæ  — t        j                  dd¬«      \  }}d} | |dddd¬«      }|j                  ||«       |j                  |j                  }}t        |«      |k(  sJ ‚|d   t        j                  |«      k(  sJ ‚d}|j                  |¬	«      j                  ||«       t        |j                  «      |k(  sJ ‚t        |j                  d
| |«       |j                  |d¬«      j                  ||«       |j                  |usJ ‚|j                  |usJ ‚t        |j                  |«       |j                  t        j                  |«      k(  sJ ‚|d   t        j                  |«      k(  sJ ‚y
)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  <  sp  € ô
 ×$Ñ$¨sÀÔC�D€A€qØ€LÙ Ø!ØØØØô€Ið ‡M�M�!�QÔØ%×1Ñ1°9×3GÑ3G�	€JÜˆz‹?˜lÒ*Ð*Ð*Ø�b‰>œVŸ]™]¨9Ó5Ò5Ð5Ð5àÐØ×ÑÐ&7ÐÓ8×<Ñ<¸QÀÔBÜˆy×$Ñ$Ó%Ð):Ò:Ð:Ð:Ü�I×)Ñ)¨-¨<Ð8¸*ÔEà×Ñ l¸uÐÓE×IÑIÈ!ÈQÔOØ× Ñ ¨
Ñ2Ð2Ð2Ø×Ñ yÑ0Ð0Ð0Ü�I×)Ñ)¨:Ô6Ø×Ñ¤6§=¡=°Ó#;Ò;Ð;Ð;Ø�b‰>œVŸ]™]¨9Ó5Ò5Ð5Ñ5rq   c                 ó  — t        j                  dd¬«      \  }} | ddd¬«      }|j                  ||«       |j                  d¬«       t	        j
                  t        «      5  |j                  ||«       d d d «       y # 1 sw Y   y xY w)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  \  sq   € ô ×$Ñ$¨sÀÔC�D€A€qÙ
˜3¨!¸Ô
=€CØ‡G�GˆAˆq„MØ‡N�N €NÔ#Ü	�‰”zÓ	"ñ Ø�‰��1Œ÷÷ ñ ús   Á#A?Á?Bc                 ó8  — t        j                  dd¬«      \  }} | dd¬«      }|j                  ||«       t        |«      }|j	                  |j
                  d¬«       |j                  ||«       t        |j                  |«      |j                  |«      «       y )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  g  sy   € ô ×$Ñ$¨sÀÔC�D€A€qÙ
˜3¨!Ô
,€CØ‡G�GˆAˆq„Mä�‹:€DØ‡O�O ×!1Ñ!1¸d€OÔCØ‡H�HˆQ�„Nä˜dŸl™l¨1›o¨s¯{©{¸1«~Õ>rq   c                 óV  — t        j                  dd¬«      \  }} | ddd¬«      }|j                  ||«       |j                  dd¬«       |j                  ||«       t	        |j
                  d d t        j                  d«      «       t	        |j                  d d t        j                  d«      «       |j
                  d	d  d
k7  j                  «       sJ ‚|j                  d	d  d
k7  j                  «       sJ ‚|j                  d   t        j                  |j                  «      k(  sJ ‚y )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|  u  sú   € ô ×$Ñ$¨sÀÔC�D€A€qÙ
˜3¨!¸Ô
=€CØ‡G�GˆAˆq„MØ‡N�N ¨s€NÔ3Ø‡G�GˆAˆq„Mä�s×+Ñ+¨D¨SÐ1´2·8±8¸C³=ÔAÜ�s—‘ t¨Ð,¬b¯h©h°s«mÔ<ð × Ñ   Ð&¨#Ñ-×2Ñ2Ô4Ð4Ð4Ø�O‰O˜C˜DÐ! SÑ(×-Ñ-Ô/Ð/Ð/à�?‰?˜2Ñ¤&§-¡-°·±Ó"?Ò?Ð?Ñ?rq   c                 óV  — t        j                  dd¬«      \  }} | dddd¬«      }|j                  ||«        | ddddd¬«      }|j                  ||«       |j                  d¬	«       |j                  ||«       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 ‚y )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  ˆ  s  € ô ×$Ñ$¨sÀÔC�D€A€qÙ
˜3¨!°sÈÔ
K€CØ‡G�GˆAˆq„MáØ A°À1ÐQUô€Fð ‡J�Jˆq�!ÔØ
×Ñ 3ÐÔ'Ø
‡J�Jˆq�!Ôä˜f×5Ñ5°d°sÐ;¸S×=QÑ=QÐRVÐSVÐ=WÔXÜ˜f×0Ñ0°°#Ð6¸¿¹ÈÈÐ8MÔNØ�?‰?˜2Ñ¤&§-¡-°·±Ó"?Ò?Ð?Ð?Ø×Ñ˜bÑ!¤V§]¡]°6×3DÑ3DÓ%EÒEÐEÑErq   Úsparse_containerc                 óP  — t        j                  dd¬«      \  }} | ddddd¬«      }|j                  ||«       |j                  |«       |j	                  d¬«       |j                  ||«       |j                  |«      } ||«      } | ddddd¬«      }|j                  ||«       |j                  |«       |j	                  d¬«       |j                  ||«       |j                  |«      }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        ||«       y )
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�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Ð(¨*×*EÑ*EÀdÀsÐ*Kôð × Ñ  Ñ$¬¯©°i×6JÑ6JÓ(KÒKÐKÐKÜ˜i×3Ñ3°D°SÐ9¸:×;QÑ;QÐRVÐSVÐ;WÔXØ×!Ñ! "Ñ%¬¯©°z×7LÑ7LÓ)MÒMÐMÐMÜ˜l¨MÕ:rq   c                 óº  — t        j                  d|¬«      \  }} | d|d¬«      } | d|d¬«      }|j                  ||«       |j                  d¬«       |j                  ||«       t	        j
                  |«      }|j                  ||«       |j                  d¬«       |j                  ||«       t        |j                  |«      |j                  |«      «       y )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�D€A€qÙ˜QÐ-?ÈDÔQ€EÙ 1Ð3EÐRVÔW€Kà	‡I�Iˆa�„OØ	×Ñ "ÐÔ%Ø	‡I�Iˆa�„Oä×!Ñ! !Ó$€IØ‡O�O�I˜qÔ!Ø×Ñ¨ÐÔ+Ø‡O�O�I˜qÔ!ä�E—M‘M !Ó$ k×&9Ñ&9¸!Ó&<Õ=rq   c                 ó   — | dk(  ryy)z#Returns True on the 10th iteration.é	   TFrc   )rh  r\  Úlocalss      r>   Úearly_stopping_monitorr�  Ø  s   € àˆA‚vØàrq   c                 ó,  — t        j                  dd¬«      \  }} | dddd¬«      }|j                  ||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 ‚|j                  d¬«       |j                  ||«       |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¬«      }|j                  ||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 ‚|j                  dd¬«       |j                  ||«       |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 ‚y )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“  à  sd  € ô ×$Ñ$¨sÀÔC�D€A€qá
˜2¨¸ÀcÔ
J€CØ‡G�GˆAˆqÔ0€GÔ1Ø×Ñ˜rÒ!Ð!Ð!Ø�?‰?× Ñ  Ñ# rÒ)Ð)Ð)Ø×Ñ×!Ñ! !Ñ$¨Ò*Ð*Ð*Ø×Ñ×%Ñ% aÑ(¨BÒ.Ð.Ð.Ø�?‰?× Ñ  Ñ# rÒ)Ð)Ð)Ø�?‰?˜2Ñ¤&§-¡-°·±Ó"?Ò?Ð?Ð?ð ‡N�N €NÔ#Ø‡G�GˆAˆq„MØ×Ñ˜rÒ!Ð!Ð!Ø�?‰?× Ñ  Ñ# rÒ)Ð)Ð)Ø×Ñ×!Ñ! !Ñ$¨Ò*Ð*Ð*Ø×Ñ×%Ñ% aÑ(¨BÒ.Ð.Ð.Ø�?‰?× Ñ  Ñ# rÒ)Ð)Ð)Ø�?‰?˜2Ñ¤&§-¡-°·±Ó"?Ò?Ð?Ð?á
Ø 1°1ÀÐPTô€Cð ‡G�GˆAˆqÔ0€GÔ1Ø×Ñ˜rÒ!Ð!Ð!Ø�?‰?× Ñ  Ñ# rÒ)Ð)Ð)Ø×Ñ×!Ñ! !Ñ$¨Ò*Ð*Ð*Ø×Ñ×%Ñ% aÑ(¨BÒ.Ð.Ð.Ø�?‰?× Ñ  Ñ# rÒ)Ð)Ð)Ø�?‰?˜2Ñ¤&§-¡-°·±Ó"?Ò?Ð?Ð?ð ‡N�N ¨u€NÔ5Ø‡G�GˆAˆq„MØ×Ñ˜rÒ!Ð!Ð!Ø×Ñ×!Ñ! !Ñ$¨Ò*Ð*Ð*Ø�?‰?× Ñ  Ñ# rÒ)Ð)Ð)Ø×Ñ×%Ñ% aÑ(¨BÒ.Ð.Ð.Ø�?‰?× Ñ  Ñ# rÒ)Ð)Ð)Ø�?‰?˜2Ñ¤&§-¡-°·±Ó"?Ò?Ð?Ñ?rq   c                  óF  — ddl m}  t        j                  dd¬«      \  }}d}t	        dd d|dz   ¬«      }|j                  ||«       |j                  d	   j                  }|j                  |k(  sJ ‚|j                  |j                  | k(     j                  d   |dz   k(  sJ ‚y )
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�D€A€qØ	€Aä
$Ø 4°aÈÈAÉô€Cð ‡G�GˆAˆq„Mà�?‰?˜4Ñ ×&Ñ&€DØ�>‰>˜QÒÐÐØ×Ñ˜d×0Ñ0°IÑ=Ñ>×DÑDÀQÑGÈ1ÈqÉ5ÒPÐPÑPrq   c                  ó   — ddl m}  d}t        dd d|dz   ¬«      }|j                  t        t
        «       |j                  d   j                  }|j                  |j                  | k(     j                  d   |dz   k(  sJ ‚y )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Ÿ    sx   € å,à	€Aä
#Ø 4°aÈÈAÉô€Cð ‡G�GŒE”5Ôà�?‰?˜5Ñ!×'Ñ'€DØ×Ñ˜d×0Ñ0°IÑ=Ñ>×DÑDÀQÑGÈ1ÈqÉ5ÒPÐPÑPrq   c                 ó>  — t        d¬«      j                  t        t        «      }t	        |j                  t        «      t        «      }t        dd| dd¬«      }|j                  t        t        «       |j                  t        «      }t	        t        |«      }||k  sJ ‚y )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€LÜ
#ØØØ'ØØô€Cð ‡G�GŒE”5ÔØ�[‰[œÓ€FÜ!¤%¨Ó0€HØ�lÒ"Ð"Ñ"rq   c                 ój  — t         j                  }t        j                  t         j                  «      }t        dd| d¬«      }|j                  ||«       |j                  ||«      dkD  sJ ‚|dk7  }d||<   d|| <   t        dd| d¬«      }|j                  ||«       |j                  ||«      dkD  sJ ‚y )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ª  A  s²   € ä�	‰	€AÜ
�‰”—‘Ó€Aä
$Ø 1Ð3EÈFô€Cð ‡G�GˆAˆq„Mà�9‰9�Q˜‹?˜TÒ!Ð!Ð!ð �‰6€DØ€A€d�GØ€A€t€e�HÜ
$Ø 1Ð3EÈFô€Cð ‡G�GˆAˆq„MØ�9‰9�Q˜‹?˜TÒ!Ð!Ñ!rq   ÚGBEstimatorc                 óJ  — t        j                  dd¬«      \  }}d} | d|¬«      j                  ||«      }|j                  d   j                  }|j
                  dk(  sJ ‚ | d¬«      j                  ||«      }|j                  d   j                  }|j
                  dk(  sJ ‚y )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­  X  s›   € ô ×$Ñ$¨sÀÔC�D€A€qà	€Aá
 °!Ô
4×
8Ñ
8¸¸AÓ
>€CØ�?‰?˜4Ñ ×&Ñ&€DØ�>‰>˜QÒÐÐá
 Ô
"×
&Ñ
& q¨!Ó
,€CØ�?‰?˜4Ñ ×&Ñ&€DØ�>‰>˜QÒÐÑrq   c                 óÆ   — t        j                  dd¬«      \  }} | d¬«      }|j                  ||«       |j                  j                  D ]  }|j
                  dk(  rŒJ ‚ y )Nr$   r!   r\   rŠ   )Úmin_impurity_decrease)r   rd   r7   rP   Úflatr¯  )r«  rC   rD   r\  rœ  s        r>   Útest_min_impurity_decreaser±  h  s^   € ä×$Ñ$¨sÀÔC�D€A€qá
¨CÔ
0€CØ‡G�GˆAˆq„MØ—‘×$Ñ$ò 1ˆð ×)Ñ)¨SÓ0Ð0Ð0ñ1rq   c                  óþ   — t        dd¬«      } | j                  ddgddggddg«       | j                  j                  d   dk(  sJ ‚| j                  ddgddggddg«       | j                  j                  d   dk(  sJ ‚y )Nr'   Trn  r   r!   r"   r#   )r
   r7   rP   rU   rú   s    r>   Ú%test_warm_start_wo_nestimators_changer³  t  sˆ   € ô %°"ÀÔ
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| ¬«      }|j                  |||¬«       |j                  ddgg«      d   |k\  sJ ‚y )	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¹  ~  sn   € ð ˆQˆ�!�Q�˜!˜Q˜ ! Q Ð(€AÚ€Aâ €MÜ	"°À1È4Ô	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 ]B  }t        d|¬«      }|j                  | ||¬«       t        |j                  ddgg«      dg«       ŒD y )	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»  ‘  sr   € Ø
ˆQˆ�!�Q�˜!˜Q˜ ! Q Ð(€AÚ€Aâ €MØ+ò 6ˆÜ'°Q¸TÔBˆØ
�‰ˆq�! =ˆÔ1Ü˜2Ÿ:™:¨¨1 v hÓ/°!°Õ5ñ6rq   ÚEstimatorClassc                 óL  — t        j                  dddd¬«      \  }}|d d …df   } ||«      } | dddd¬	«      j                  ||«      } | dddd¬	«      j                  ||«      }t        |j	                  |«      |j	                  |«      «       t        |j                  |«      |j                  |«      «       t        |j                  |j                  «       t        |j                  |«      |j                  |«      «       t        |j                  |«      |j                  |«      «       t        | t        «      rçt        |j                  |«      |j                  |«      «       t        |j                  |«      |j                  |«      «       t        |j                  |«      |j                  |«      «       t        |j                  |«      |j                  |«      «       t        |j                  |«      |j                  |«      «      D ]  \  }}t        ||«       Œ y y )
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Ñ2Ø "°¸bô�D€A€qð 	
Š!ˆQˆ$‰€AÙ Ó"€HáØ a°1ÈDôç	�cˆ!ˆQƒið 
ñ Ø a°1ÈDôç	�cˆ(�AÓð ô ˜fŸl™l¨1›o¨u¯{©{¸1«~Ô>Ü˜fŸn™n¨QÓ/°·±¸qÓ1AÔBÜ˜f×9Ñ9¸5×;UÑ;UÔVä˜fŸn™n¨XÓ6¸¿¹ÀaÓ8HÔIÜ˜eŸm™m¨HÓ5°v·~±~ÀaÓ7HÔIä�.Ô"<Ô=Ü! &×"6Ñ"6°qÓ"9¸5×;NÑ;NÈqÓ;QÔRÜ!Ø×$Ñ$ QÓ'¨×)@Ñ)@ÀÓ)Cô	
ô 	"Ø×$Ñ$ XÓ.°×0HÑ0HÈÓ0Kô	
ô 	"Ø×#Ñ# HÓ-¨v×/GÑ/GÈÓ/Jô	
ô  #Ø×+Ñ+¨HÓ5Ø×+Ñ+¨AÓ.ó 
ò 	7‰OˆJ˜ô & j°#Õ6ñ		7ð >rq   c                 ór  — t        dd¬«      \  }}d} | |ddddd¬«      } | |ddddd	¬«      }t        ||d¬
«      \  }}}}	|j                  ||«       |j                  ||«       |j                  |j                  cxk  r|k  sJ ‚ J ‚|j	                  ||	«      dkD  sJ ‚|j	                  ||	«      dkD  sJ ‚y )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Ñ  Ë  sç   € ô ¨¸AÔ>�D€A€qØ€Lá,Ø!ØØØØØô€Lñ -Ø!ØØØØØô€Lô (8¸¸1È2Ô'NÑ$€GˆV�W˜fØ×Ñ�W˜gÔ&Ø×Ñ�W˜gÔ&à×%Ñ%¨×(BÑ(BÔQÀ\ÒQÐQÑQÐQÐQà×Ñ˜f fÓ-°Ò3Ð3Ð3Ø×Ñ˜f fÓ-°Ò3Ð3Ñ3rq   c                  óì   — t        dd¬«      \  } }t        dddd¬«      }|j                  | |«       t        d	ddd¬«      }|j                  | |«       |j                  dk(  sJ ‚|j                  d	k(  sJ ‚y )
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Ü
#Ø s°aÀbô€Cð ‡G�GˆAˆq„Mð ×Ñ Ò"Ð"Ð"Ø×Ñ Ò"Ð"Ñ"rq   c                  ó  — t        dd¬«      \  } }t        dddddd¬	«      }t        |«      j                  d
¬«      }t        |«      j                  d¬«      }t	        dddddd¬«      }t        |«      j                  d
¬«      }t        |«      j                  d¬«      }t        | |d¬«      \  }}	}
}|j                  ||
«       |j                  ||
«       |j                  |j                  k7  sJ ‚|j                  ||
«       |j                  ||
«       |j                  |j                  k7  sJ ‚|j                  ||
«       |j                  ||
«       |j                  |j                  k  sJ ‚|j                  |j                  k  sJ ‚y )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€DÜ�‹:× Ñ °"Ð Ó5€Dä
#ØØØØØØô€Cô �‹:× Ñ °SÐ Ó9€DÜ�‹:× Ñ °"Ð Ó5€Dä'7¸¸1È2Ô'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Ñ1rq   c                  óÄ   — ddgddgddgddgg} g d¢}t        d¬«      }t        j                  t        d¬	«      5  |j	                  | |«       d d d «       y # 1 sw Y   y xY w)
Nr!   r"   r#   r%   r°   )r   r   r   r!   rØ  z^The least populated classes in y have only 1 member.*Classes with too few members are: \[1.0\]r2   ©r
   r4   r5   r6   r7   )rC   rD   rÓ  s      r>   Útest_early_stopping_stratifiedrà  /  sg   € à
ˆQˆ�!�Q�˜!˜Q˜ ! Q Ð(€AÚ€Aä
$°aÔ
8€CÜ	�‰Üð,ô
ñ ð 	�‰��1Œ÷÷ ñ ús   ºAÁAc                  ó   — t        dd¬«      S )Nr#   r!   )r¾  Ún_clusters_per_class)r   rc   rq   r>   Ú_make_multiclassrã  ?  s   € Ü¨ÀÔCÐCrq   z!gb, dataset_maker, init_estimator)zbinary classificationzmulticlass classificationÚ
regression)Úidsc                 ó   —  |«       \  }}t         j                  j                  |«      j                  d«      } |«       } | |¬«      j	                  |||¬«       t         |«       «      } | |¬«      j	                  ||«       t        j                  t        d¬«      5   | |¬«      j	                  |||¬«       d d d «       y # 1 sw Y   y xY w)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ê  C  s¹   € ñ" ‹?�D€A€qÜ—I‘I×)Ñ)Ð*<Ó=×BÑBÀ3ÓG€Mñ Ó€HÙˆHÔ×Ñ˜!˜Q¨mÐÔ<ô %¡^Ó%5Ó6€HÙˆHÔ×Ñ˜!˜QÔÜ	�‰”zÐ)UÔ	Vñ AÙ
�Ô×Ñ˜a °-ÐÔ@÷A÷ Añ Aús   ÂCÃCc            	      ó|  — t        d¬«      \  } }t        t        «       «      }t        |¬«      }|j	                  | |«       t        j                  t        d¬«      5  |j	                  | |t        j                  | j                  d   «      ¬«       d d d «       d}d|› d	�}t        j                  t        t        j                  |«      ¬«      5  t        d
|¬«      }t        |¬«      }|j	                  | |t        j                  | j                  d   «      ¬«       d d d «       y # 1 sw Y   Œ–xY w# 1 sw Y   y xY w)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ò  b  s  € ô ¨Ô*�D€A€qÜÔ)Ó+Ó,€DÜ	"¨Ô	-€BØ‡F�Fˆ1ˆa„Lä	�‰ÜØNô
ñ 8ð 	�‰ˆq�!¤2§7¡7¨1¯7©7°1©:Ó#6ˆÔ7÷	8ð €Jð	"Ø", ¨Yð	8ð ô 
�‰Ô,´B·I±I¸gÓ4FÔ	Gñ 8ä˜6 jÔ1ˆÜ&¨DÔ1ˆØ
�‰ˆq�!¤2§7¡7¨1¯7©7°1©:Ó#6ˆÔ7÷	8ð 8÷8ð 8ú÷8ð 8ús   Á5D&ÃAD2Ä&D/Ä2D;c                  óä   — dggdz  } ddgdgdz  z   }t        ddd¬«      }t        j                  t        d¬	«      5  |j	                  | |«       d d d «       t        ddd
¬«      }y # 1 sw Y   ŒxY w)Nr!   r'   r   r&   r°   r0  )r"  r-   r×  z0The training data after the early stopping splitr2   gš™™™™™Ù?rß  )rC   rD   r¸  s      r>   Útest_early_stopping_n_classesrô  €  s�   € ð ˆˆ�‰
€AØ	
ˆAˆ�!��q‘Ñ€AÜ	#Ø¨Àô
€Bô 
�‰ÜÐLô
ñ ð 	�‰ˆq�!Œ÷ô 
$Ø¨Àô
�B÷ð ús   ¼A&Á&A/c                  óþ   — t        j                  d«      } t        j                  d«      }t        «       j	                  | |«      }t        |j                  t        j                  dt         j                  ¬«      «       y )N)r'   r'   )r'   r'   rÏ   )rR   r¦   r|   r   r7   r   r“   rÓ   )rC   rD   rÔ  s      r>   Ú'test_gbr_degenerate_feature_importancesrö  –  sQ   € ä
�‰�Ó€AÜ
�‰�‹€AÜ
#Ó
%×
)Ñ
)¨!¨QÓ
/€CÜ�s×/Ñ/´·±¸"ÄBÇJÁJÔ1OÕPrq   c                  óØ  — d} d}t        j                  t        j                  |«      | «      }t        j                  ||dz  «      }t        j                  | | dz  «      }t         j                  ||f   }t         j
                  j                  d«      }||j                  d|j                  ¬«      z   }t        d¬«      j                  ||«      }t        d	¬«      j                  ||«      }t        «       j                  ||«      }	|j                  |«      }
t        j                  |j                  |«      |
k  «      sJ ‚t        j                  |
|	j                  |«      k  «      sJ ‚y
)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  ž  s1  € à€EØ€IÜ
�‰”—	‘	˜)Ó$ eÓ,€AÜ	�‰�A�y 1‘}Ó	%€BÜ	�‰�Q�B˜˜
 Q™Ó	'€BÜ
�‰ˆb�"ˆf‰€Aä
�)‰)×
Ñ
 Ó
#€Cà	ˆC�O‰O !¨!¯'©'ˆOÓ2Ñ2€Aä2Ð8HÔI×MÑMÈaÐQRÓSÐÜ)¨wÔ7×;Ñ;¸A¸qÓA€IÜ1Ó3×7Ñ7¸¸1Ó=Ðà%×-Ñ-¨aÓ0ÐÜ�6‰6Ð$×,Ñ,¨QÓ/Ð3HÑHÔIÐIÐIÜ�6‰6Ð'Ð+<×+DÑ+DÀQÓ+GÑGÔ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«       t        j                  t        d¬«      5  t        t	        j
                  d«      d«       ddd«       y# 1 sw Y   ŒMxY w# 1 sw Y   yxY w)	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	  ´  sµ   € ä	×	 Ñ	 Ó	"ñ CÜ×Ñ˜gÔ&ÜœBŸJ™J uÓ-¨qÓ1°QÒ6Ð6Ð6ÜœBŸJ™J s›O¬R¯Z©Z¸«_Ó=ÀÒBÐBÑB÷Cô 
�‰”n¨JÔ	7ñ /ä”R—Z‘Z Ó&¨Ô.÷/ð /÷	Cð Cú÷/ð /ús   •A1CÂ* CÃCÃC(c                  ó  — d} t        j                  | «      }t        j                  || dz  «      }t        j                  | |  dz  «      }t         j                  ||f   }t	        dd¬«      j                  ||«      }t        j                  g d¢«      }t        |j                  |«      |d¬«       t        j                  g d	¢«      }t        |j                  d
d |d¬«       t        j                  ddg| dz  «      }t	        dd¬«      j                  |||¬«      }t        j                  g d¢«      }t        |j                  |«      |dd¬«       t        j                  g d¢«      }t        |j                  d
d |dd¬«       y)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  ¿  sa  € ð
 €IÜ
�	‰	�)Ó€AÜ	�‰�A�y 1‘}Ó	%€BÜ	�‰�Q�B˜˜
 Q™Ó	'€BÜ
�‰ˆb�"ˆf‰€AÜ
#¨ÀsÔ
K×
OÑ
OÐPQÐSTÓ
U€Cä—(‘(ò	
ó€Kô �C—K‘K “N K°dÕ;ä—(‘(ò	
ó€Kô �C×$Ñ$ S TÐ*¨K¸dÕCô —W‘W˜a ˜W i°1¡nÓ5€NÜ
#¨ÀsÔ
K×
OÑ
OØ	ˆ1˜Nð Pó €Cô —(‘(ò	
ó€Kô �C—K‘K “N K°dÀÕFä—(‘(ò	
ó€Kô �C×$Ñ$ S TÐ*¨K¸dÈÖOrq   c                  óÒ  — d} t        j                  | «      }t        j                  || dz  «      }t        j                  | |  dz  «      }t         j                  ||f   }t	        ddd¬«      j                  ||«      }|j                  j                  j                  dk  sJ ‚t        |j                  |«      |d¬	«       t        j                  |j                  d
d dk  «      sJ ‚y)z%Test huber GBT can completely overfitr'   r"   rt   r$   r0  )r1   rI   rþ   g-Cëâ6*?rÉ   )r  r{  Ngvƒôõ!”>)rR   rù  rú  rû  r   r7   r²   ÚclossÚdeltar   rL   rœ   rQ   )r)   rD   rý  rþ  rC   r  s         r>   Útest_huber_overfitr    sÃ   € à€IÜ
�	‰	�)Ó€AÜ	�‰�A�y 1‘}Ó	%€BÜ	�‰�Q�B˜˜
 Q™Ó	'€BÜ
�‰ˆb�"ˆf‰€AÜ
#¨¸sÈ#Ô
N×
RÑ
RÐSTÐVWÓ
X€Cà�9‰9�?‰?× Ñ  4Ò'Ð'Ð'Ü�C—K‘K “N A¨DÕ1Ü�6‰6�#×"Ñ" 3 4Ð(¨4Ñ/Ô0Ð0Ñ0rq   c                  ó  — d} t        j                  | «      dz  }t        j                  || dz  «      }t        j                  | |  dz  «      }t         j                  ||f   }t	        dd¬«      j                  ||«      }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        |j                  |«      |d¬	«       t        j                  g d
¢«      }t        |j                  dd |d¬	«       y)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)   rD   rý  rþ  rC   r  r  r  s           r>   Ú)test_binomial_error_exact_backward_compatr     s  € ð
 €IÜ
�	‰	�)Ó˜qÑ €AÜ	�‰�A�y 1‘}Ó	%€BÜ	�‰�Q�B˜˜
 Q™Ó	'€BÜ
�‰ˆb�"ˆf‰€AÜ
$¨*À3Ô
G×
KÑ
KÈAÈqÓ
Q€Cä—(‘(à˜^Ð,Ø˜^Ð,Ø˜^Ð,Ø˜^Ð,Ø˜^Ð,Ø˜^Ð,Ø˜^Ð,Ø˜^Ð,Ø˜^Ð,Ø˜^Ð,ð	
ó€Kô �C×%Ñ% aÓ(¨+¸DÕAä—(‘(ò	
ó€Kô �C×$Ñ$ S TÐ*¨K¸dÖCrq   c                  ó  — d} t        j                  | «      dz  }t        j                  || dz  «      }t        j                  | |  dz  «      }t         j                  ||f   }t	        dd¬«      j                  ||«      }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¬«       t        j                  g d¢«      }t        |j                  dd |d¬«       y)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#  M  sê   € ð
 €IÜ
�	‰	�)Ó˜qÑ €AÜ	�‰�A�y 1‘}Ó	%€BÜ	�‰�Q�B˜˜
 Q™Ó	'€BÜ
�‰ˆb�"ˆf‰€AÜ
$¨*À3Ô
G×
KÑ
KÈAÈqÓ
Q€Cä—(‘(âLÚLÚLÚLÚLÚLÚLÚLÚLÚLð	
ó€Kô �C×%Ñ% aÓ(¨+¸DÕAä—(‘(ò	
ó€Kô �C×$Ñ$ S TÐ*¨K¸dÖCrq   c                 ó  — t        j                  dd¬«      \  }}ddddd| dd	œ}t        di |¤Ž}t        j                  «       5  t        j
                  d
«       |j                  ||«       ddd«       y# 1 sw Y   yxY w)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'  z  sƒ   € ô ×$Ñ$¨sÀÔD�D€A€qð ØØØØØ*Øñ€Fô %Ñ
. vÑ
.€Cä	×	 Ñ	 Ó	"ñ Ü×Ñ˜gÔ&Ø�‰��1Œ÷÷ ñ ús   Á(A5Á5A>c                 óª   — t        j                  t        d¬«      5   | d¬«      }|j                  t        t
        «       d d d «       y # 1 sw Y   y xY w)NÚ	criterionr2   Úfriedman_mse)r)  )r4   r  ÚFutureWarningr7   rC   rD   )r•   r€   s     r>   Ú test_criterion_param_deprecationr,  –  s<   € ä	�‰”m¨;Ô	7ñ Ù¨Ô8ˆØ�‰””1Œ÷÷ ñ ús   œ$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,  Úthread_unsaferQ  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'  r,  rc   rq   r>   ú<module>rJ     sê  ðñó 
Û ã Û Ý )å Ý ß Aß 9ß RÝ -Ý >ß DÝ 1Ý .Ý 4Ý *Ý 'Ý Ý ,Ý 8Ý A÷ñ ÷
 OÑ Nà :Ð<UÐVÐ ð 	ˆ"€X��Bˆx˜"˜b˜ A q 6¨A¨q¨6°A°q°6Ð:€Ú€Øˆ"€X��1ˆv˜˜1�vÐ€Ú€ñ Ø˜a¨q¸Èô�€€uñ 	ˆe‹€à‡i�i×Ñ˜AÓ€ð €x×ÑÓ€Ø
‡��t—{‘{×'Ñ'Ó(€Ø�I‰I�d‰O€„	Ø�k‰k˜$Ñ€„ò(òð ‡�×Ñ˜Ð!<Ó=ñ&ó >ð&ð( ‡�×Ñ˜Ð!<Ó=ñ*Só >ð*SðZ ‡�×Ñ˜Ð!MÓNØ‡�×Ñ˜ jÓ1ñ$ó 2ó Oð$ðN ‡�×Ñ˜ jÓ1Ø‡�×Ñ˜¨)Ó4ñ)ó 5ó 2ð)ò$)ðX ‡�×ÑØà	" E¨5Ð1Ø	# T§Y¡Y°·±Ð<ðóñ1óð1ò,ò(3ð ‡�×Ñ˜¨.Ó9ñMó :ðMò Eò(!NòH#òB)ò*Gð6 ‡�×Ñ˜Ð&BÓCñ-ó Dð-ò$'ò(Tò&ò2'ò'ò'ò*'ð: ‡�×ÑÐ4Ð6RÓSñó Tðð ‡�×ÑÐ4Ð6RÓSñLó TðLð* ‡�×ÑØ.à	#Ð%7Ð8Ø	# ]Ð3Ø	# \Ð2Ø	"Ð$6Ð7Ø	" MÐ2Ø	" LÐ1ðó
ñ ó
ð òLð@ ‡�×Ññó ðð> ‡�×Ññó ðð8 ‡�×Ñ˜Ð <Ó=ñGó >ðGð, ‡�×Ñ˜Ð <Ó=ñ7ó >ð7ð  ‡�×Ñ˜Ð <Ó=ñ5ó >ð5ð ‡�×Ñ˜Ð <Ó=ñ@ó >ð@ð ‡�×ÑÐ+Ð-IÓJñ6ó Kð6ð> ‡�×Ñ˜Ð <Ó=ñó >ðð ‡�×Ñ˜Ð <Ó=ñ
?ó >ð
?ð ‡�×Ñ˜Ð <Ó=ñ@ó >ð@ð$ ‡�×Ñ˜Ð <Ó=ñFó >ðFð& ‡�×Ñ˜Ð <Ó=Ø‡�×ÑØ˜¨Ñ7¸.ÑHóñ!;óó >ð!;ðH ‡�×Ñ˜Ð <Ó=ñ>ó >ð>ò&ð ‡�×Ñ˜Ð <Ó=ñ*@ó >ð*@òZQò"Qò#ò&"ð. ‡�×Ñ˜Ð(DÓEñó Fðð ‡�×Ñ˜Ð(DÓEñ1ó Fð1ò*ð ‡�×ÑØòóñ,óð,ò6ð Ø‡�×ÑØÐ1Ð3LÐMóð ‡�×ÑØ˜¨Ñ7¸.ÑHóñ%7óóó ð%7ðP ‡�×ÑØÐ"<Ð>WÐ!Xóñ 4óð 4òF#ò&(2òVò Dð ‡�×ÑØ'à	#Ð%8¸/ÐJØ	#Ð%5°ÐGØ	" O°^ÐDðò
 	Mð ó ñAóðAò,8ò<ò,QòIò,/òPPòf1ò*DòZ*DòZð8 ‡�×ÑÐ+Ð-IÓJñó Kñrq   