Ë
    ÷Q(h¨U  ã            	       ó  — d Z ddlZddlZddlZddlmZ ddlmZ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mZ ddlmZmZ ddlmZ ddlm Z  ddl!m"Z"m#Z#m$Z$ ddl%m&Z&m'Z'm(Z(m)Z)m*Z* ejV                  jY                  d«      Z-ddgddgddgddgddgddggZ.g d¢Z/g d¢Z0ddgddgddggZ1g d¢Z2g d¢Z3 ejh                  «       Z5e-jm                  e5jn                  jp                  «      Z9 ee5jt                  e5jn                  e-¬«      \  e5_:        e5_7         ejv                  «       Z< ee<jt                  e<jn                  e-¬«      \  e<_:        e<_7        d„ Z=d„ Z>d„ Z?d„ Z@d„ ZAej„                  j‡                  dg d ¢«      d!„ «       ZDd"„ ZEd#„ ZFd$„ ZGd%„ ZHd&„ ZId'„ ZJd(„ ZKej„                  j‡                  d) eLg e'¢e(¢e*¢e&¢e)¢e'd*e(z  z   «      «      d+„ «       ZMej„                  j‡                  d) eLg e'¢e(¢e*¢e&¢e)¢e'd*e(z  z   «      «      d,„ «       ZNd-„ ZOd.„ ZPd/„ ZQd0„ ZRd1„ ZSej„                  j‡                  d2 e«       e5jt                  e5jn                  f e«       e<jt                  e<jn                  fg«      d3„ «       ZTd4„ ZUd5„ ZVd6„ ZWy)7z6Testing for the boost module (sklearn.ensemble.boost).é    N)Údatasets)ÚBaseEstimatorÚclone)ÚDummyClassifierÚDummyRegressor)ÚAdaBoostClassifierÚAdaBoostRegressor)Ú_samme_proba)ÚLinearRegression)ÚGridSearchCVÚtrain_test_split)ÚSVCÚSVR)ÚDecisionTreeClassifierÚDecisionTreeRegressor)Úshuffle)ÚNoSampleWeightWrapper)Úassert_allcloseÚassert_array_almost_equalÚassert_array_equal)ÚCOO_CONTAINERSÚCSC_CONTAINERSÚCSR_CONTAINERSÚDOK_CONTAINERSÚLIL_CONTAINERSéþÿÿÿéÿÿÿÿé   é   )Úfoor    r    r   r   r   )r   r   r   r   r   r   é   )r    r   r   )r   r   r   ©Úrandom_statec                  ó>  ‡— t        j                  g d¢g d¢g d¢g d¢g«      Š‰t        j                  ‰j                  d¬«      «      d d …t         j                  f   z  Š G ˆfd„d«      }  | «       }t        |d	t        j                  ‰«      «      }t        |j                  ‰j                  «       t        j                  |«      j                  «       sJ ‚t        t        j                  |d¬«      g d
¢«       t        t        j                  |d¬«      g d¢«       y )N)r   ç�íµ ÷Æ°>r   )gR¸…ëQÈ?g333333ã?çš™™™™™É?)iüÿÿgR¸…ëQà?g      à?)r%   r   g•Ö&è.>r   ©Úaxisc                   ó   •— e Zd Zˆ fd„Zy)ú'test_samme_proba.<locals>.MockEstimatorc                 óH   •— t        |j                  ‰j                  «       ‰S ©N)r   Úshape)ÚselfÚXÚprobss     €úi/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sklearn/ensemble/tests/test_weight_boosting.pyÚpredict_probaz5test_samme_proba.<locals>.MockEstimator.predict_probaC   s   ø€ Ü˜qŸw™w¨¯©Ô4ØˆLó    N)Ú__name__Ú
__module__Ú__qualname__r2   )r0   s   €r1   ÚMockEstimatorr*   B   s   ø„ õ	r3   r7   r!   )r   r   r   r   )r   r   r   r   )ÚnpÚarrayÚabsÚsumÚnewaxisr
   Ú	ones_liker   r-   ÚisfiniteÚallÚargminÚargmax)r7   ÚmockÚsamme_probar0   s      @r1   Útest_samme_probarD   7   sÓ   ø€ ô �H‰HÚ	Ò'Ò):ºOÐLó€Eð 
ŒR�V‰V�E—I‘I 1�IÓ%Ó&¢q¬"¯*©* }Ñ5Ñ5€E÷ó ñ
 ‹?€Dä˜t Q¬¯©°UÓ(;Ó<€Kä�{×(Ñ(¨%¯+©+Ô6Ü�;‰;�{Ó#×'Ñ'Ô)Ð)Ð)ô ”r—y‘y °1Ô5²|ÔDÜ”r—y‘y °1Ô5²|ÕDr3   c                  ó  — t        j                  t        t        «      «      } t	        «       j                  t        | «      }t        |j                  t        «      t        j                  t        t        «      df«      «       y )Nr   )r8   ÚonesÚlenr/   r   Úfitr   r2   )Úy_tÚclfs     r1   Útest_oneclass_adaboost_probarK   T   sP   € ô �'‰'”#”a“&‹/€CÜ
Ó
×
"Ñ
"¤1 cÓ
*€CÜ˜c×/Ñ/´Ó2´B·G±G¼SÄ»VÀQ¸KÓ4HÕIr3   c                  óà  — t        d¬«      } | j                  t        t        «       t	        | j                  t        «      t        «       t	        t        j                  t        j                  t        «      «      | j                  «       | j                  t        «      j                  t        t        «      dfk(  sJ ‚| j                  t        «      j                  t        t        «      fk(  sJ ‚y )Nr   r"   r   )r   rH   r/   Úy_classr   ÚpredictÚTÚ	y_t_classr8   ÚuniqueÚasarrayÚclasses_r2   r-   rG   Údecision_function©rJ   s    r1   Útest_classification_toyrV   ]   s˜   € ä
¨!Ô
,€CØ‡G�GŒAŒwÔÜ�s—{‘{¤1“~¤yÔ1Ü”r—y‘y¤§¡¬IÓ!6Ó7¸¿¹ÔFØ×ÑœQÓ×%Ñ%¬#¬a«&°!¨Ò4Ð4Ð4Ø× Ñ ¤Ó#×)Ñ)¬c´!«f¨YÒ6Ð6Ñ6r3   c                  ó–   — t        d¬«      } | j                  t        t        «       t	        | j                  t        «      t        «       y ©Nr   r"   )r	   rH   r/   Úy_regrr   rN   rO   Úy_t_regrrU   s    r1   Útest_regression_toyr[   g   s,   € ä
¨Ô
+€CØ‡G�GŒAŒvÔÜ�s—{‘{¤1“~¤xÕ0r3   c                  óú  — t        j                  t        j                  «      } t	        «       }|j                  t        j                  t        j                  «       t        | |j                  «       |j                  t        j                  «      }|j                  d   t        | «      k(  sJ ‚|j                  t        j                  «      j                  d   t        | «      k(  sJ ‚|j                  t        j                  t        j                  «      }|dkD  s
J d|›�«       ‚t        |j                  «      dkD  sJ ‚t        t        d„ |j                  D «       «      «      t        |j                  «      k(  sJ ‚y )Nr   gÍÌÌÌÌÌì?zFailed with score = c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr,   r"   ©Ú.0Úests     r1   ú	<genexpr>ztest_iris.<locals>.<genexpr>�   ó   è ø€ Ò?¨�3×#Õ#Ñ?ùó   ‚)r8   rQ   ÚirisÚtargetr   rH   Údatar   rS   r2   r-   rG   rT   ÚscoreÚestimators_Úset)ÚclassesrJ   Úprobarg   s       r1   Ú	test_irisrl   n   s  € ä�i‰iœŸ™Ó$€Gä
Ó
€CØ‡G�GŒD�I‰I”t—{‘{Ô#ä�w §¡Ô-Ø×ÑœdŸi™iÓ(€Eà�;‰;�q‰>œS ›\Ò)Ð)Ð)Ø× Ñ ¤§¡Ó+×1Ñ1°!Ñ4¼¸G»ÒDÐDÐDà�I‰I”d—i‘i¤§¡Ó-€EØ�3Š;Ð1Ð/ u jÐ1Ó1ˆ;ô ˆs�‰Ó !Ò#Ð#Ð#äŒsÑ?¨s¯©Ô?Ó?Ó@ÄCÈÏÉÓDXÒXÐXÑXr3   Úloss)ÚlinearÚsquareÚexponentialc                 ó’  — t        | d¬«      }|j                  t        j                  t        j                  «       |j                  t        j                  t        j                  «      }|dkD  sJ ‚t        |j                  «      dkD  sJ ‚t        t        d„ |j                  D «       «      «      t        |j                  «      k(  sJ ‚y )Nr   )rm   r#   gš™™™™™á?r   c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr,   r"   r^   s     r1   ra   z test_diabetes.<locals>.<genexpr>�   rb   rc   )	r	   rH   Údiabetesrf   re   rg   rG   rh   ri   )rm   Úregrg   s      r1   Útest_diabetesru   „   sŽ   € ô  °AÔ
6€CØ‡G�GŒH�M‰Mœ8Ÿ?™?Ô+Ø�I‰I”h—m‘m¤X§_¡_Ó5€EØ�4Š<Ðˆ<ô ˆs�‰Ó !Ò#Ð#Ð#äŒsÑ?¨s¯©Ô?Ó?Ó@ÄCÈÏÉÓDXÒXÐXÑXr3   c                  ó¾  — t         j                  j                  d«      } | j                  dt        j
                  j                  ¬«      }| j                  dt        j
                  j                  ¬«      }t        d¬«      }|j                  t        j                  t        j
                  |¬«       |j                  t        j                  «      }|j                  t        j                  «      D �cg c]  }|‘Œ }}|j                  t        j                  «      }|j                  t        j                  «      D �cg c]  }|‘Œ }}|j                  t        j                  t        j
                  |¬«      }	|j!                  t        j                  t        j
                  |¬«      D �
cg c]  }
|
‘Œ }}
t#        |«      dk(  sJ ‚t%        ||d   «       t#        |«      dk(  sJ ‚t%        ||d   «       t#        |«      dk(  sJ ‚t%        |	|d   «       t'        dd¬«      }|j                  t        j                  t        j
                  |¬«       |j                  t        j                  «      }|j                  t        j                  «      D �cg c]  }|‘Œ }}|j                  t        j                  t        j
                  |¬«      }	|j!                  t        j                  t        j
                  |¬«      D �
cg c]  }
|
‘Œ }}
t#        |«      dk(  sJ ‚t%        ||d   «       t#        |«      dk(  sJ ‚t%        |	|d   «       y c c}w c c}w c c}
w c c}w c c}
w )Nr   é
   ©Úsize©Ún_estimators©Úsample_weightr   ©r{   r#   )r8   ÚrandomÚRandomStateÚrandintrd   re   r-   rs   r   rH   rf   rN   Ústaged_predictr2   Ústaged_predict_probarg   Ústaged_scorerG   r   r	   )ÚrngÚiris_weightsÚdiabetes_weightsrJ   ÚpredictionsÚpÚstaged_predictionsrk   Ústaged_probasrg   ÚsÚstaged_scoress               r1   Útest_staged_predictrŽ   ’   s´  € ä
�)‰)×
Ñ
 Ó
"€CØ—;‘;˜r¬¯©×(9Ñ(9�;Ó:€LØ—{‘{ 2¬H¯O©O×,AÑ,A�{ÓBÐä
¨"Ô
-€CØ‡G�GŒD�I‰I”t—{‘{°,€GÔ?à—+‘+œdŸi™iÓ(€KØ%(×%7Ñ%7¼¿	¹	Ó%BÖC š!ÐCÐÐCØ×ÑœdŸi™iÓ(€EØ #× 8Ñ 8¼¿¹Ó CÖD˜1’QÐD€MÐDØ�I‰I”d—i‘i¤§¡¸LˆIÓI€Eà×#Ñ#¤D§I¡I¬t¯{©{È,Ð#ÓWöØŠð€Mð ô Ð!Ó" bÒ(Ð(Ð(Ü˜kÐ+=¸bÑ+AÔBÜˆ}Ó Ò#Ð#Ð#Ü˜e ]°2Ñ%6Ô7Üˆ}Ó Ò#Ð#Ð#Ü˜e ]°2Ñ%6Ô7ô ¨¸!Ô
<€CØ‡G�GŒH�M‰Mœ8Ÿ?™?Ð:J€GÔKà—+‘+œhŸm™mÓ,€KØ%(×%7Ñ%7¼¿¹Ó%FÖG š!ÐGÐÐGØ�I‰I”h—m‘m¤X§_¡_ÐDTˆIÓU€Eð ×!Ñ!Ü�M‰Mœ8Ÿ?™?Ð:Jð "ó 
öàò 	
ð€Mð ô Ð!Ó" bÒ(Ð(Ð(Ü˜kÐ+=¸bÑ+AÔBÜˆ}Ó Ò#Ð#Ð#Ü˜e ]°2Ñ%6Õ7ùòA DùâDùòùò  Hùòs   Ã2	MÄ=	MÆ*	MÊ	MË<	Mc                  óR  — t        t        «       ¬«      } dddœ}t        | |«      }|j                  t        j
                  t        j                  «       t        t        «       d¬«      } dddœ}t        | |«      }|j                  t        j
                  t        j                  «       y )N©Ú	estimator)r   r   )r{   Úestimator__max_depthr   ©r‘   r#   )
r   r   r   rH   rd   rf   re   r	   r   rs   )ÚboostÚ
parametersrJ   s      r1   Útest_gridsearchr–   ¿   s�   € ô Ô)?Ó)AÔB€EàØ &ñ€Jô �u˜jÓ
)€CØ‡G�GŒD�I‰I”t—{‘{Ô#ô Ô(=Ó(?ÈaÔP€EØ"(À&ÑI€JÜ
�u˜jÓ
)€CØ‡G�GŒH�M‰Mœ8Ÿ?™?Õ+r3   c                  ól  — dd l } t        «       }|j                  t        j                  t        j
                  «       |j                  t        j                  t        j
                  «      }| j                  |«      }| j                  |«      }t        |«      |j                  k(  sJ ‚|j                  t        j                  t        j
                  «      }||k(  sJ ‚t        d¬«      }|j                  t        j                  t        j
                  «       |j                  t        j                  t        j
                  «      }| j                  |«      }| j                  |«      }t        |«      |j                  k(  sJ ‚|j                  t        j                  t        j
                  «      }||k(  sJ ‚y rX   )Úpickler   rH   rd   rf   re   rg   ÚdumpsÚloadsÚtypeÚ	__class__r	   rs   )r˜   Úobjrg   rŒ   Úobj2Úscore2s         r1   Útest_pickler    Ñ   s!  € ãô Ó
€CØ‡G�GŒD�I‰I”t—{‘{Ô#Ø�I‰I”d—i‘i¤§¡Ó-€EØ�‰�SÓ€Aà�<‰<˜‹?€DÜ�‹:˜Ÿ™Ò&Ð&Ð&Ø�Z‰ZœŸ	™	¤4§;¡;Ó/€FØ�FŠ?Ðˆ?ô ¨Ô
+€CØ‡G�GŒH�M‰Mœ8Ÿ?™?Ô+Ø�I‰I”h—m‘m¤X§_¡_Ó5€EØ�‰�SÓ€Aà�<‰<˜‹?€DÜ�‹:˜Ÿ™Ò&Ð&Ð&Ø�Z‰ZœŸ™¤x§¡Ó7€FØ�FŠ?Ð‰?r3   c            	      ó  — t        j                  ddddddd¬«      \  } }t        «       }|j                  | |«       |j                  }|j
                  d   dk(  sJ ‚|d d…t        j                  f   |dd  k\  j                  «       sJ ‚y )NiÐ  rw   r!   r   Fr   )Ú	n_samplesÚ
n_featuresÚn_informativeÚn_redundantÚ
n_repeatedr   r#   )	r   Úmake_classificationr   rH   Úfeature_importances_r-   r8   r<   r?   )r/   ÚyrJ   Úimportancess       r1   Útest_importancesr«   ì   s”   € ä×'Ñ'ØØØØØØØô�D€A€qô Ó
€Cà‡G�GˆAˆq„MØ×*Ñ*€Kà×Ñ˜QÑ 2Ò%Ð%Ð%Ø˜˜˜œBŸJ™J˜Ñ'¨;°q°r¨?Ñ:×?Ñ?ÔAÐAÑAr3   c                  ó  — t        «       } t        j                  d«      }t        j                  t
        |¬«      5  | j                  t        t        t        j                  dg«      ¬«       d d d «       y # 1 sw Y   y xY w)Nz*sample_weight.shape == (1,), expected (6,)©Úmatchr   r|   )r   ÚreÚescapeÚpytestÚraisesÚ
ValueErrorrH   r/   rM   r8   rR   )rJ   Úmsgs     r1   Ú,test_adaboost_classifier_sample_weight_errorrµ     sY   € ä
Ó
€CÜ
�)‰)Ð@Ó
A€CÜ	�‰”z¨Ô	-ñ <Ø�‰””7¬"¯*©*°b°TÓ*:ˆÔ;÷<÷ <ñ <ús   »1A5Á5A>c                  óN  — ddl m}  t         | «       «      }|j                  t        t
        «       t        t        «       «      }|j                  t        t        «       ddl m} t         |«       d¬«      }|j                  t        t
        «       t        t        «       d¬«      }|j                  t        t
        «       ddgddgddgddgg}g d¢}t        t        «       «      }t        j                  t        d¬«      5  |j                  ||«       d d d «       y # 1 sw Y   y xY w)	Nr   )ÚRandomForestClassifier)ÚRandomForestRegressorr"   r   )r    Úbarr   r   zworse than randomr­   )Úsklearn.ensembler·   r   rH   r/   rY   r   rM   r¸   r	   r   r±   r²   r³   )r·   rJ   r¸   ÚX_failÚy_fails        r1   Útest_estimatorr½   	  sÝ   € å7ô Ñ3Ó5Ó
6€CØ‡G�GŒAŒvÔä
œS›UÓ
#€CØ‡G�GŒAŒwÔå6ä
Ñ1Ó3À!Ô
D€CØ‡G�GŒAŒvÔä
œC›E°Ô
2€CØ‡G�GŒAŒvÔð �!ˆf�q˜!�f˜q !˜f q¨! fÐ-€FÚ!€FÜ
œS›UÓ
#€CÜ	�‰”zÐ)<Ô	=ñ  Ø�‰�˜Ô÷ ÷  ñ  ús   Ã?DÄD$c                  óÞ   — d} t        dd¬«      }t        j                  t        | ¬«      5  |j	                  t
        j                  t
        j                  «       d d d «       y # 1 sw Y   y xY w)Nz+Sample weights have reached infinite valuesé   g      7@)r{   Úlearning_rater­   )r   r±   ÚwarnsÚUserWarningrH   rd   rf   re   )r´   rJ   s     r1   Útest_sample_weights_infiniterÃ   %  sL   € Ø
7€CÜ
¨"¸DÔ
A€CÜ	�‰”k¨Ô	-ñ (Ø�‰”—	‘	œ4Ÿ;™;Ô'÷(÷ (ñ (ús   «/A#Á#A,z(sparse_container, expected_internal_typeé   c                 óÔ  —  G d„ dt         «      }t        j                  dddd¬«      \  }}t        j                  |«      }t        ||d¬	«      \  }}}} | |«      }	 | |«      }
t         |d
¬«      d¬«      j                  |	|«      }t         |d
¬«      d¬«      j                  ||«      }|j                  |
«      }|j                  |«      }t        ||«       |j                  |
«      }|j                  |«      }t        ||«       |j                  |
«      }|j                  |«      }t        ||«       |j                  |
«      }|j                  |«      }t        ||«       |j                  |
|«      }|j                  ||«      }t        ||«       |j                  |
«      }|j                  |«      }t!        ||«      D ]  \  }}t        ||«       Œ |j#                  |
«      }|j#                  |«      }t!        ||«      D ]  \  }}t        ||«       Œ |j%                  |
«      }|j%                  |«      }t!        ||«      D ]  \  }}t        ||«       Œ |j'                  |
|«      }|j'                  ||«      }t!        ||«      D ]  \  }}t        ||«       Œ |j(                  D �cg c]  }|j*                  ‘Œ }}t-        |D �cg c]  }||k(  ‘Œ	 c}«      sJ ‚y c c}w c c}w )Nc                   ó$   ‡ — e Zd ZdZdˆ fd„	Zˆ xZS )ú-test_sparse_classification.<locals>.CustomSVCz8SVC variant that records the nature of the training set.c                 óL   •— t         ‰| �  |||¬«       t        |«      | _        | S ©z<Modification on fit caries data type for later verification.r|   ©ÚsuperrH   r›   Ú
data_type_©r.   r/   r©   r}   rœ   s       €r1   rH   z1test_sparse_classification.<locals>.CustomSVC.fit?  ó%   ø€ ä‰G‰K˜˜1¨MˆKÔ:Ü" 1›gˆDŒOØˆKr3   r,   ©r4   r5   r6   Ú__doc__rH   Ú__classcell__©rœ   s   @r1   Ú	CustomSVCrÇ   <  ó   ø„ ÙF÷	ñ 	r3   rÓ   r   é   é   é*   )Ú	n_classesr¢   r£   r#   r   r"   T)Úprobabilityr“   )r   r   Úmake_multilabel_classificationr8   Úravelr   r   rH   rN   r   rT   r   Úpredict_log_probar2   rg   Ústaged_decision_functionÚzipr‚   rƒ   r„   rh   rÌ   r?   )Úsparse_containerÚexpected_internal_typerÓ   r/   r©   ÚX_trainÚX_testÚy_trainÚy_testÚX_train_sparseÚX_test_sparseÚsparse_classifierÚdense_classifierÚsparse_clf_resultsÚdense_clf_resultsÚsparse_clf_resÚdense_clf_resÚiÚtypesÚts                       r1   Útest_sparse_classificationrð   ,  s&  € ô ”Cô ô ×2Ñ2Ø˜r¨a¸bô�D€A€qô 	�‰�‹€Aä'7¸¸1È1Ô'MÑ$€GˆV�W˜fá% gÓ.€NÙ$ VÓ,€Mô +Ù¨Ô-Øô÷ 
�cˆ.˜'Ó"ð ô *Ù¨Ô-Øô÷ 
�cˆ'�7Óð ð +×2Ñ2°=ÓAÐØ(×0Ñ0°Ó8ÐÜÐ)Ð+<Ô=ð +×<Ñ<¸]ÓKÐØ(×:Ñ:¸6ÓBÐÜÐ0Ð2CÔDð +×<Ñ<¸]ÓKÐØ(×:Ñ:¸6ÓBÐÜÐ0Ð2CÔDð +×8Ñ8¸ÓGÐØ(×6Ñ6°vÓ>ÐÜÐ0Ð2CÔDð +×0Ñ0°ÀÓGÐØ(×.Ñ.¨v°vÓ>ÐÜÐ0Ð2CÔDð +×CÑCÀMÓRÐØ(×AÑAÀ&ÓIÐÜ),Ð-?ÐARÓ)Sò AÑ%ˆ˜Ü! .°-Õ@ðAð +×9Ñ9¸-ÓHÐØ(×7Ñ7¸Ó?ÐÜ),Ð-?ÐARÓ)Sò :Ñ%ˆ˜Ü˜>¨=Õ9ð:ð +×?Ñ?ÀÓNÐØ(×=Ñ=¸fÓEÐÜ),Ð-?ÐARÓ)Sò AÑ%ˆ˜Ü! .°-Õ@ðAð +×7Ñ7¸ÀvÓNÐØ(×5Ñ5°f¸fÓEÐÜ),Ð-?ÐARÓ)Sò :Ñ%ˆ˜Ü˜>¨=Õ9ð:ð $5×#@Ñ#@ÖA˜aˆQ�\‹\ÐA€EÐAä°UÖ;°�Ð+Ó+Ò;Ô<Ð<Ñ<ùò Bùâ;s   Ê,K Ë
K%c                 óž  —  G d„ dt         «      }t        j                  dddd¬«      \  }}t        ||d¬	«      \  }}}} | |«      }	 | |«      }
t	         |«       d¬
«      j                  |	|«      }t	         |«       d¬
«      j                  ||«      }|j                  |
«      }|j                  |«      }t        ||«       |j                  |
«      }|j                  |«      }t        ||«      D ]  \  }}t        ||«       Œ |j                  D �cg c]  }|j                  ‘Œ }}t        |D �cg c]  }||k(  ‘Œ	 c}«      sJ ‚y c c}w c c}w )Nc                   ó$   ‡ — e Zd ZdZdˆ fd„	Zˆ xZS )ú)test_sparse_regression.<locals>.CustomSVRz8SVR variant that records the nature of the training set.c                 óL   •— t         ‰| �  |||¬«       t        |«      | _        | S rÉ   rÊ   rÍ   s       €r1   rH   z-test_sparse_regression.<locals>.CustomSVR.fit¦  rÎ   r3   r,   rÏ   rÒ   s   @r1   Ú	CustomSVRró   £  rÔ   r3   rõ   rÕ   é2   r   r×   )r¢   r£   Ú	n_targetsr#   r   r"   r“   )r   r   Úmake_regressionr   r	   rH   rN   r   r‚   rÞ   rh   rÌ   r?   )rß   rà   rõ   r/   r©   rá   râ   rã   rä   rå   ræ   Úsparse_regressorÚdense_regressorÚsparse_regr_resultsÚdense_regr_resultsÚsparse_regr_resÚdense_regr_resrí   rî   rï   s                       r1   Útest_sparse_regressionrÿ   “  s_  € ô ”Cô ô ×#Ñ#Ø ¨q¸rô�D€A€qô (8¸¸1È1Ô'MÑ$€GˆV�W˜fá% gÓ.€NÙ$ VÓ,€Mô )±9³;ÈQÔO×SÑSØ˜óÐô
 (±)³+ÈAÔN×RÑRØ�ó€Oð
 +×2Ñ2°=ÓAÐØ(×0Ñ0°Ó8ÐÜÐ1Ð3EÔFð +×9Ñ9¸-ÓHÐØ(×7Ñ7¸Ó?ÐÜ+.Ð/BÐDVÓ+Wò CÑ'ˆ˜Ü! /°>ÕBðCð $4×#?Ñ#?Ö@˜aˆQ�\‹\Ð@€EÐ@ä°UÖ;°�Ð+Ó+Ò;Ô<Ð<Ñ<ùò Aùâ;s   ÄEÄ/E
c                  óÔ   —  G d„ dt         «      } t         | «       d¬«      }|j                  t        t        «       t        |j                  «      t        |j                  «      k(  sJ ‚y)z·
    AdaBoostRegressor should work without sample_weights in the base estimator
    The random weighted sampling is done internally in the _boost method in
    AdaBoostRegressor.
    c                   ó   — e Zd Zd„ Zd„ Zy)ú=test_sample_weight_adaboost_regressor.<locals>.DummyEstimatorc                  ó   — y r,   © )r.   r/   r©   s      r1   rH   zAtest_sample_weight_adaboost_regressor.<locals>.DummyEstimator.fit×  s   € Ør3   c                 óF   — t        j                  |j                  d   «      S )Nr   )r8   Úzerosr-   )r.   r/   s     r1   rN   zEtest_sample_weight_adaboost_regressor.<locals>.DummyEstimator.predictÚ  s   € Ü—8‘8˜AŸG™G A™JÓ'Ð'r3   N)r4   r5   r6   rH   rN   r  r3   r1   ÚDummyEstimatorr  Ö  s   „ ò	ó	(r3   r  r!   rz   N)r   r	   rH   r/   rY   rG   Úestimator_weights_Úestimator_errors_)r  r”   s     r1   Ú%test_sample_weight_adaboost_regressorr
  Ï  sQ   € ô(œô (ô ™nÓ.¸QÔ?€EØ	‡I�IŒa”ÔÜˆu×'Ñ'Ó(¬C°×0GÑ0GÓ,HÒHÐHÑHr3   c                  ó°  — t         j                  j                  d«      } | j                  ddd«      }| j	                  ddgd«      }| j                  d«      }t        t        d¬«      «      }|j                  ||«       |j                  |«       |j                  |«       t        t        «       «      }|j                  ||«       |j                  |«       y)zX
    Check that the AdaBoost estimators can work with n-dimensional
    data matrix
    r   é3   r!   r   Úmost_frequent)ÚstrategyN)r8   r   r€   ÚrandnÚchoicer   r   rH   rN   r2   r	   r   )r…   r/   ÚycÚyrr”   s        r1   Útest_multidimensional_Xr  â  s©   € ô
 �)‰)×
Ñ
 Ó
"€Cà�	‰	�"�a˜Ó€AØ	�‰�Q˜�F˜BÓ	€BØ	�‰�2‹€Bäœ¸ÔHÓI€EØ	‡I�Iˆa�ÔØ	‡M�M�!ÔØ	×Ñ˜ÔäœnÓ.Ó/€EØ	‡I�Iˆa�ÔØ	‡M�M�!Õr3   c                  óP  — t         j                  t         j                  }} t        t	        «       «      }t        |¬«      }dj                  |j                  j                  «      }t        j                  t        |¬«      5  |j                  | |«       d d d «       y # 1 sw Y   y xY w)Nr�   z {} doesn't support sample_weightr­   )rd   rf   re   r   r   r   Úformatrœ   r4   r±   r²   r³   rH   )r/   r©   r‘   rJ   Úerr_msgs        r1   Ú-test_adaboostclassifier_without_sample_weightr  ÷  sv   € Ü�9‰9”d—k‘k€q€AÜ%¤oÓ&7Ó8€IÜ
 yÔ
1€CØ0×7Ñ7¸	×8KÑ8K×8TÑ8TÓU€GÜ	�‰”z¨Ô	1ñ Ø�‰��1Œ÷÷ ñ ús   Â BÂB%c                  óö  — t         j                  j                  d«      } t        j                  ddd¬«      }d|z  dz   | j	                  |j
                  d   «      dz  z   }|j                  d	d
«      }|d	xx   dz  cc<   d|d	<   t        t        «       d
d¬«      }t        |«      }t        |«      }|j                  ||«       |j                  |d d	 |d d	 «       t        j                  |«      }d|d	<   |j                  |||¬«       |j                  |d d	 |d d	 «      }|j                  |d d	 |d d	 «      }|j                  |d d	 |d d	 «      }	||k  sJ ‚||	k  sJ ‚|t        j                  |	«      k(  sJ ‚y )Nr×   r   éd   éè  )Únumgš™™™™™é?r&   g-Cëâ6?r   r   rw   i'  ©r‘   r{   r#   r|   )r8   r   r€   ÚlinspaceÚrandr-   Úreshaper	   r   r   rH   r=   rg   r±   Úapprox)
r…   r/   r©   Úregr_no_outlierÚregr_with_weightÚregr_with_outlierr}   Úscore_with_outlierÚscore_no_outlierÚscore_with_weights
             r1   Ú$test_adaboostregressor_sample_weightr'     s•  € ô �)‰)×
Ñ
 Ó
#€CÜ
�‰�A�s Ô%€AØ	ˆq‰�3‰˜3Ÿ8™8 A§G¡G¨A¡JÓ/°&Ñ8Ñ9€AØ	�	‰	�"�aÓ€Að €bƒEˆR�KƒEØ€A€b�Eô (Ü"Ó$°1À1ô€Oô ˜_Ó-ÐÜ˜oÓ.Ðð ×Ñ˜!˜QÔØ×Ñ˜˜#˜2˜  # 2 Ô'Ü—L‘L “O€MØ€M�"ÑØ×Ñ˜˜A¨]ÐÔ;à*×0Ñ0°°3°B°¸¸3¸B¸Ó@ÐØ&×,Ñ,¨Q¨s°¨V°Q°s¸°VÓ<ÐØ(×.Ñ.¨q°°"¨v°q¸¸"°vÓ>ÐàÐ 0Ò0Ð0Ð0ØÐ 1Ò1Ð1Ð1ØœvŸ}™}Ð->Ó?Ò?Ð?Ñ?r3   c                  ó  — t        t        j                  d¬«      ddiŽ\  } }}}t        d¬«      }|j	                  | |«       t        t        j                  |j                  |«      d¬«      |j                  |«      «       y )NT)Ú
return_X_yr#   r×   r"   r   r'   )
r   r   Úload_digitsr   rH   r   r8   rA   r2   rN   )rá   râ   rã   rä   Úmodels        r1   Ú test_adaboost_consistent_predictr,  &  ss   € ô (8Ü	×	Ñ	¨Ô	.ð(Ø=?ñ(Ñ$€GˆV�W˜fô ¨BÔ/€EØ	‡I�Iˆg�wÔäÜ
�	‰	�%×%Ñ% fÓ-°AÔ6¸¿¹ÀfÓ8Mõr3   zmodel, X, yc                 óÄ   — t        j                  |«      }d|d<   d}t        j                  t        |¬«      5  | j                  |||¬«       d d d «       y # 1 sw Y   y xY w)Niöÿÿÿr   z1Negative values in data passed to `sample_weight`r­   r|   )r8   r=   r±   r²   r³   rH   )r+  r/   r©   r}   r  s        r1   Ú#test_adaboost_negative_weight_errorr.  5  sU   € ô —L‘L “O€MØ€M�"ÑàA€GÜ	�‰”z¨Ô	1ñ 5Ø�	‰	�!�Q mˆ	Ô4÷5÷ 5ñ 5ús   ¸AÁAc                  ó‚  — t         j                  j                  d«      } | j                  d¬«      }| j	                  ddgd¬«      }t        j
                  |«      dz  }t        dd	¬
«      }t        |dd	¬«      }|j                  |||¬«       t        j                  |j                  «      j                  «       dk(  sJ ‚y)z¸Check that we don't create NaN feature importance with numerically
    instable inputs.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/20320
    r×   )r  rw   rx   r   r   r  gtDíS 'T	rw   é   )Ú	max_depthr#   é   r  r|   N)r8   r   r€   Únormalr  r=   r   r   rH   Úisnanr¨   r;   )r…   r/   r©   r}   ÚtreeÚ	ada_models         r1   ÚFtest_adaboost_numerically_stable_feature_importance_with_small_weightsr7  E  s£   € ô �)‰)×
Ñ
 Ó
#€CØ�
‰
˜
ˆ
Ó#€AØ�
‰
�A�q�6 ˆ
Ó%€AÜ—L‘L “O fÑ,€MÜ!¨B¸RÔ@€DÜ"¨TÀÐQSÔT€IØ‡M�M�!�Q m€MÔ4Ü�8‰8�I×2Ñ2Ó3×7Ñ7Ó9¸QÒ>Ð>Ñ>r3   c                 óô  — d}t        j                  |d| ¬«      \  }}t        d| ¬«      j                  ||«      }|j	                  |«      }t        |j                  d¬«      dd¬«       t        t        j                  |«      «      dd	|dz
  z  hk(  sJ ‚|j                  |«      D ]K  }t        |j                  d¬«      dd¬«       t        t        j                  |«      «      dd	|dz
  z  hk(  rŒKJ ‚ |j                  d
¬«      j                  ||«       |j	                  |«      }t        |j                  d¬«      dd¬«       |j                  |«      D ]   }t        |j                  d¬«      dd¬«       Œ" y)zºCheck that the decision function respects the symmetric constraint for weak
    learners.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/26520
    r!   r   )rØ   Ún_clusters_per_classr#   r~   r'   r   g:Œ0âŽyE>)Úatolr   rÖ   rz   N)r   r§   r   rH   rT   r   r;   ri   r8   rQ   rÝ   Ú
set_params)Úglobal_random_seedrØ   r/   r©   rJ   Úy_scores         r1   Útest_adaboost_decision_functionr>  V  sl  € ð €IÜ×'Ñ'Ø°!ÐBTô�D€A€qô ¨!Ð:LÔ
M×
QÑ
QÐRSÐUVÓ
W€Cà×#Ñ# AÓ&€GÜ�G—K‘K Q�KÓ'¨°Õ6ô Œr�y‰y˜Ó!Ó" q¨"°	¸A±Ñ*>Ð&?Ò?Ð?Ð?ð ×/Ñ/°Ó2ò DˆÜ˜Ÿ™¨˜Ó+¨Q°TÕ:ô ”2—9‘9˜WÓ%Ó&¨1¨b°IÀ±MÑ.BÐ*CÓCÐCÐCðDð ‡N�N €NÓ"×&Ñ& q¨!Ô,à×#Ñ# AÓ&€GÜ�G—K‘K Q�KÓ'¨°Õ6à×/Ñ/°Ó2ò ;ˆÜ˜Ÿ™¨˜Ó+¨Q°TÖ:ñ;r3   c                  ó²   — t        dd¬«      } t        j                  t        d¬«      5  | j	                  t
        t        «       d d d «       y # 1 sw Y   y xY w)Nr   ÚSAMME)r{   Ú	algorithmz'The parameter 'algorithm' is deprecatedr­   )r   r±   rÁ   ÚFutureWarningrH   r/   rM   )Úadaboost_clfs    r1   Útest_deprecated_algorithmrD  |  sB   € Ü%°1ÀÔH€LÜ	�‰”mÐ+TÔ	Uñ %Ø×ÑœœGÔ$÷%÷ %ñ %ús   ©AÁA)XrÐ   r¯   Únumpyr8   r±   Úsklearnr   Úsklearn.baser   r   Úsklearn.dummyr   r   rº   r   r	   Ú!sklearn.ensemble._weight_boostingr
   Úsklearn.linear_modelr   Úsklearn.model_selectionr   r   Úsklearn.svmr   r   Úsklearn.treer   r   Úsklearn.utilsr   Úsklearn.utils._mockingr   Úsklearn.utils._testingr   r   r   Úsklearn.utils.fixesr   r   r   r   r   r   r€   r…   r/   rM   rY   rO   rP   rZ   Ú	load_irisrd   Úpermutationre   ry   Úpermrf   Úload_diabetesrs   rD   rK   rV   r[   rl   ÚmarkÚparametrizeru   rŽ   r–   r    r«   rµ   r½   rÃ   rÞ   rð   rÿ   r
  r  r  r'  r,  r.  r7  r>  rD  r  r3   r1   ú<module>rX     s   ðÙ <ã 	ã Û å ß -ß 9ß BÝ :Ý 1ß Bß  ß FÝ !Ý 8÷ñ ÷
õ ð 	‡i�i×Ñ˜AÓ€ð 	ˆ"€X��Bˆx˜"˜b˜ A q 6¨A¨q¨6°A°q°6Ð:€Ú
(€Ú	€Øˆ"€X��1ˆv˜˜1�vÐ€Ú€	Ú€ð €x×ÑÓ€Ø
‡��t—{‘{×'Ñ'Ó(€Ù  §¡¨D¯K©KÀcÔJÑ €„	ˆ4Œ;ð "ˆ8×!Ñ!Ó#€Ù!(Ø‡M�M�8—?‘?°ô"Ñ €„ˆxŒò
Eò:Jò7ò1òYð, ‡�×Ñ˜Ò!DÓEñ
Yó Fð
Yò*8òZ,ò$ò6Bò*<ò ò8(ð ‡�×ÑØ.Ùð	
Øð	
àð	
ð ð	
ð ð		
ð
 ð	
ð 	˜˜^Ñ+Ñ+ó	óñW=óðW=ðt ‡�×ÑØ.Ùð	
Øð	
àð	
ð ð	
ð ð		
ð
 ð	
ð 	˜˜^Ñ+Ñ+ó	óñ,=óð,=ò^Iò&ò*ò#@òLð ‡�×ÑØá	Ó	˜tŸy™y¨$¯+©+Ð6Ù	Ó	˜hŸm™m¨X¯_©_Ð=ðóñ5óð5ò?ò"";óL%r3   