
    -i                        S r SSKJrJr  SSKrSSKrSSKrSSKJ	r	  SSK
Jr  SSKJrJrJr  SSKJrJr  SSKJrJrJrJrJrJrJrJr  SS	KJr  SS
KJrJ r   SSK!J"r"J#r#J$r$  SSK%J&r&J'r'  SSK(J)r)  SSK*J+r+J,r,  SSK-J.r.  SSK/J0r0J1r1  SSK2J3r3J4r4J5r5J6r6J7r7  SSK8J9r9J:r:  SSK;J<r<  SSK=J>r>J?r?  SSK@JArAJBrB  \<" S5      rC\" 5       rD\CR                  \DR                  R                  5      rH\DR                  \H   \DlI        \DR                  \H   \DlF        \" 5       rJ\CR                  \JR                  R                  5      rH\JR                  \H   \JlI        \JR                  \H   \JlF        S rK\R                  R                  S\" \B\A-   SSSSS.SSSSS.SSSS.SSSS .// S!Q5      5      S" 5       rNS# rO\R                  R                  S$\B\A-   5      S% 5       rP " S& S'\5      rQS( rRS) rSS* rTS+ rUS, rVS- rWS. rXS/ rYS0 rZS1 r[S2 r\S3 r] " S4 S5\5      r^S6 r_SVS7 jr`S8 raS9 rbS: rcS; rdS< reS= rfS> rgS? rhS@ riSA rjSB rkSC rlSD rmSE rnSF ro\R                  R                  SG\" \" SHSI95      S4\" \" SHSI95      S4\" \" 5       5      S4\" \1" 5       5      S4/5      SJ 5       rp\	" SSK9\R                  R                  SL\" \" SHSM9SHSN9\" \" SHSM9SHSN9/5      SO 5       5       rq\R                  R                  SP\5SQSQ4\4SRSS4\3SRSQ4/5      \	" SSK9ST 5       5       rr\R                  R                  SL\" \" SHSM9SHSN9\" \" SHSM9SHSN9/5      SU 5       rsg)WzE
Testing for the bagging ensemble module (sklearn.ensemble.bagging).
    )cycleproductN)config_context)BaseEstimator)load_diabetes	load_irismake_hastie_10_2)DummyClassifierDummyRegressor)AdaBoostClassifierAdaBoostRegressorBaggingClassifierBaggingRegressorHistGradientBoostingClassifierHistGradientBoostingRegressorRandomForestClassifierRandomForestRegressor)SelectKBest)LogisticRegression
Perceptron)GridSearchCVParameterGridtrain_test_split)KNeighborsClassifierKNeighborsRegressor)make_pipeline)FunctionTransformerscale)SparseRandomProjection)SVCSVR)"ConsumingClassifierWithOnlyPredict)ConsumingClassifierWithoutPredictLogProba&ConsumingClassifierWithoutPredictProba	_Registrycheck_recorded_metadata)DecisionTreeClassifierDecisionTreeRegressor)check_random_state)assert_array_almost_equalassert_array_equal)CSC_CONTAINERSCSR_CONTAINERSc                     [        S5      n [        [        R                  [        R                  U S9u  pp4[        SS/SS/SS/SS/S	.5      nS [        5       [        S
S9[        SS9[        5       [        5       /n[        U[        U5      5       H2  u  px[        SUU SS.UD6R                  X5      R                  U5        M4     g )Nr   random_state      ?      ?      TFmax_samplesmax_features	bootstrapbootstrap_features   max_iter   )	max_depth)	estimatorr0   n_estimators )r)   r   irisdatatargetr   r
   r   r'   r   r    zipr   r   fitpredict)	rngX_trainX_testy_trainy_testgrid
estimatorsparamsr?   s	            V/var/www/html/venv/lib/python3.13/site-packages/sklearn/ensemble/tests/test_bagging.pytest_classificationrQ   A   s    
Q
C'7		4;;S($GW :F#'-		
D 	B+J !uZ'89 	
	
 		

 #g
 :    z sparse_container, params, methodr1   r=   Tr5   r2   r4   Fr7   r8   r9   r6   r8   r9   )rG   predict_probapredict_log_probadecision_functionc                 b    " S S[         5      n[        S5      n[        [        [        R
                  5      [        R                  US9u  pVpxU " U5      n	U " U5      n
[        S
U" SSS9SS	.UD6R                  X5      n[        X5      " U
5      n[        S
U" SSS9SS	.UD6R                  XW5      n[        X5      " U5      n[        X5        [        U	5      nUR                   Vs/ s H  nUR                  PM     nn[        U Vs/ s H  nUU:H  PM
     sn5      (       d   eg s  snf s  snf )Nc                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ )-test_sparse_classification.<locals>.CustomSVC|   7SVC variant that records the nature of the training setc                 F   > [         TU ]  X5        [        U5      U l        U $ NsuperrF   type
data_type_selfXy	__class__s      rP   rF   1test_sparse_classification.<locals>.CustomSVC.fit       GK"1gDOKrR   rb   __name__
__module____qualname____firstlineno____doc__rF   __static_attributes____classcell__rg   s   @rP   	CustomSVCrZ   |       E	 	rR   rt   r   r/   linearovr)kerneldecision_function_shaper3   r?   r0   rA   )r    r)   r   r   rB   rC   rD   r   rF   getattrr*   ra   estimators_rb   all)sparse_containerrO   methodrt   rH   rI   rJ   rK   rL   X_train_sparseX_test_sparsesparse_classifiersparse_resultsdense_classifierdense_resultssparse_typeitypests                      rP   test_sparse_classificationr   b   sC   4C  Q
C'7dii$++C($GW &g.N$V,M) 8UK  
c."	 
 .7FN ) 8UK  
c'	 
 ,5f=Mn<~&K#4#@#@A#@aQ\\#@EA%0%Q[ %01111 B0s   (D'	D,c                  n   [        S5      n [        [        R                  S S [        R                  S S U S9u  pp4[        SS/SS/SS/SS/S.5      nS [        5       [        5       [        5       [        5       4 H7  nU H.  n[        S
X`S	.UD6R                  X5      R                  U5        M0     M9     g )Nr   2   r/   r1   r2   TFr5   rz   rA   )r)   r   diabetesrC   rD   r   r   r(   r   r!   r   rF   rG   )rH   rI   rJ   rK   rL   rM   r?   rO   s           rP   test_regressionr      s    
Q
C'7crHOOCR0s($GW : #J#'-		
D 		 FMyMfMQQgfo rR   r~   c                    [        S5      n[        [        R                  S S [        R                  S S US9u  p#pE " S S[
        5      nSSSSS	.S
SSSS	.SSSS.SSSS./nU " U5      nU " U5      n	U H  n
[        SU" 5       SS.U
D6R                  X5      nUR                  U	5      n[        SU" 5       SS.U
D6R                  X$5      R                  U5      n[        U5      nUR                   Vs/ s H  oR                  PM     nn[        X5        [        U Vs/ s H  nUU:H  PM
     sn5      (       d   e[        X5        M     g s  snf s  snf )Nr   r   r/   c                   ,   ^  \ rS rSrSrU 4S jrSrU =r$ ))test_sparse_regression.<locals>.CustomSVR   r\   c                 F   > [         TU ]  X5        [        U5      U l        U $ r^   r_   rc   s      rP   rF   -test_sparse_regression.<locals>.CustomSVR.fit   ri   rR   rj   rk   rs   s   @rP   	CustomSVRr      ru   rR   r   r1   r=   Tr5   r2   r4   FrS   rT   r3   rz   rA   )r)   r   r   rC   rD   r!   r   rF   rG   ra   r|   rb   r*   r}   )r~   rH   rI   rJ   rK   rL   r   parameter_setsr   r   rO   r   r   r   r   r   r   r   s                     rP   test_sparse_regressionr      s~    Q
C'7crHOOCR0s($GWC  "&		
 "&		
 dK$eLN" &g.N$V,M , 
k
5;

#n
& 	 +22=A My{MfMS"WV_ 	 >*'8'D'DE'D!'DE!.@e4eA$e45555!.@' ! F 5s   5E E
c                        \ rS rSrS rS rSrg)DummySizeEstimator   c                 b    UR                   S   U l        [        R                  " U5      U l        g Nr   )shapetraining_size_joblibhashtraining_hash_rd   re   rf   s      rP   rF   DummySizeEstimator.fit   s"    ggaj$kk!nrR   c                 H    [         R                  " UR                  S   5      $ r   )nponesr   rd   re   s     rP   rG   DummySizeEstimator.predict   s    wwqwwqz""rR   )r   r   Nrl   rm   rn   ro   rF   rG   rq   rA   rR   rP   r   r      s    -#rR   r   c                     [        S5      n [        [        R                  [        R                  U S9u  pp4[        5       R                  X5      n[        [        5       SSU S9R                  X5      nUR                  X5      UR                  X5      :X  d   e[        [        5       SSU S9R                  X5      nUR                  X5      UR                  X5      :  d   e[        [        5       SS9R                  X5      n/ nUR                   H=  nUR                  UR                  S   :X  d   eUR                  UR                  5        M?     [        [!        U5      5      [        U5      :X  d   eg )Nr   r/   r2   F)r?   r6   r8   r0   T)r?   r8   )r)   r   r   rC   rD   r(   rF   r   scorer   r|   r   r   appendr   lenset)rH   rI   rJ   rK   rL   r?   ensembletraining_hashs           rP   test_bootstrap_samplesr      s^   
Q
C'7xS($GW &'++G=I  ')	
 
c'  ??7,w0PPPP  ')	
 
c'  ??7,x~~g/OOOO
  *<*>$OSSH M))	''7==+;;;;Y556 * s=!"c-&8888rR   c                  V   [        S5      n [        [        R                  [        R                  U S9u  pp4[        [        5       SSU S9R                  X5      nUR                   HG  n[        R                  R                  S   [        R                  " U5      R                  S   :X  a  MG   e   [        [        5       SSU S9R                  X5      nUR                   HG  n[        R                  R                  S   [        R                  " U5      R                  S   :  a  MG   e   g )Nr   r/   r2   F)r?   r7   r9   r0   r3   T)r)   r   r   rC   rD   r   r(   rF   estimators_features_r   r   unique)rH   rI   rJ   rK   rL   r   featuress          rP   test_bootstrap_featuresr   *  s   
Q
C'7xS($GW  ') 	
 
c'  11}}""1%8)<)B)B1)EEEE 2  ')	
 
c'  11}}""1%		((;(A(A!(DDDD 2rR   c            	      v   [        S5      n [        [        R                  [        R                  U S9u  pp4[
        R                  " SSS9   [        [        5       U S9R                  X5      n[        [
        R                  " UR                  U5      SS9[
        R                  " [        U5      5      5        [        UR                  U5      [
        R                  " UR!                  U5      5      5        [        [#        5       U SS	9R                  X5      n[        [
        R                  " UR                  U5      SS9[
        R                  " [        U5      5      5        [        UR                  U5      [
        R                  " UR!                  U5      5      5        S S S 5        g ! , (       d  f       g = f)
Nr   r/   ignore)divideinvalidrz   r3   )axis   )r?   r0   r6   )r)   r   rB   rC   rD   r   errstater   r'   rF   r*   sumrU   r   r   exprV   r   rH   rI   rJ   rK   rL   r   s         rP   test_probabilityr   F  sH   
Q
C'7		4;;S($GW 
Hh	7$,.S

#g
 	 	"FF8))&1:BGGCK<P	
 	"""6*BFF83M3Mf3U,V	

 %(*!

#g
 	 	"FF8))&1:BGGCK<P	
 	"""6*BFF83M3Mf3U,V	
/ 
8	7	7s   EF**
F8c            
         [        S5      n [        [        R                  [        R                  U S9u  pp4[        5       [        5       4 H  n[        USSSU S9R                  X5      nUR                  X$5      n[        XvR                  -
  5      S:  d   eSn[        R                  " [        US9   [        US	SSU S9nUR                  X5        S S S 5        M     g ! , (       d  f       M  = f)
Nr   r/   d   Tr?   r@   r8   	oob_scorer0   皙?{Some inputs do not have OOB scores. This probably means too few estimators were used to compute any reliable oob estimates.matchr3   )r)   r   rB   rC   rD   r'   r    r   rF   r   abs
oob_score_pytestwarnsUserWarning)	rH   rI   rJ   rK   rL   r?   clf
test_scorewarn_msgs	            rP   test_oob_score_classificationr   i  s     Q
C'7		4;;S($GW -.6	
 #g
 	 YYv.
:./#555J 	 \\+X6## C GGG% 76% 7$ 76s   2C
C-	c            	         [        S5      n [        [        R                  [        R                  U S9u  pp4[        [        5       SSSU S9R                  X5      nUR                  X$5      n[        XeR                  -
  5      S:  d   eSn[        R                  " [        US9   [        [        5       S	SSU S9nUR                  X5        S S S 5        g ! , (       d  f       g = f)
Nr   r/   r   Tr   r   r   r   r3   )r)   r   r   rC   rD   r   r(   rF   r   r   r   r   r   r   )	rH   rI   rJ   rK   rL   r   r   r   regrs	            rP   test_oob_score_regressionr     s     Q
C'7xS($GW ') 
c'  6*JzNN*+c111	F  
k	2+-
 	" 
3	2	2s   #'C
C!c                  <   [        S5      n [        [        R                  [        R                  U S9u  pp4[        [        5       SSSU S9R                  X5      n[        5       R                  X5      n[        UR                  U5      UR                  U5      5        g )Nr   r/   r3   F)r?   r@   r8   r9   r0   )
r)   r   r   rC   rD   r   r   rF   r*   rG   )rH   rI   rJ   rK   rL   clf1clf2s          rP   test_single_estimatorr     s    
Q
C'7xS($GW %'  
c' 	  $$W6Ddll62DLL4HIrR   c                      [         R                  [         R                  p[        5       n[	        [        U5      R                  X5      S5      (       a   eg )NrW   )rB   rC   rD   r'   hasattrr   rF   )re   rf   bases      rP   
test_errorr     sA    99dkkq!#D(.2218:MNNNNNrR   c                     [        [        R                  [        R                  SS9u  pp#[	        [        5       SSS9R                  X5      nUR                  U5      nUR                  SS9  UR                  U5      n[        XV5        [	        [        5       SSS9R                  X5      nUR                  U5      n[        XW5        [	        [        SS9SSS9R                  X5      nUR                  U5      nUR                  SS9  UR                  U5      n	[        X5        [	        [        SS9SSS9R                  X5      nUR                  U5      n
[        X5        g )	Nr   r/      n_jobsr0   r3   r   rw   )ry   )r   rB   rC   rD   r   r'   rF   rU   
set_paramsr*   r    rW   )rI   rJ   rK   rL   r   y1y2y3
decisions1
decisions2
decisions3s              rP   test_parallel_classificationr     sV   '7		4;;Q($GW ! 	c' 
 
			'Bq!				'Bb%  	c'  
			'Bb% !E*11	c'  ++F3Jq!++F3Jj5 E*11	c'  ++F3Jj5rR   c                     [        S5      n [        [        R                  [        R                  U S9u  pp4[        [        5       SSS9R                  X5      nUR                  SS9  UR                  U5      nUR                  SS9  UR                  U5      n[        Xg5        [        [        5       SSS9R                  X5      nUR                  U5      n[        Xh5        g )Nr   r/   r   r   r3   r   r=   )r)   r   r   rC   rD   r   r(   rF   r   rG   r*   )	rH   rI   rJ   rK   rL   r   r   r   r   s	            rP   test_parallel_regressionr     s    
Q
C'7xS($GW   5 7PQRVVH q!			&	!Bq!			&	!Bb% 5 7PQRVVH 
		&	!Bb%rR   c                      [         R                  [         R                  pSXS:H  '   SSS.n[        [	        [        5       5      USS9R                  X5        g )Nr3   r=   )r3   r=   )r@   estimator__Croc_auc)scoring)rB   rC   rD   r   r   r    rF   )re   rf   
parameterss      rP   test_gridsearchr     sI     99dkkqA1fI #)&AJ"35):yIMMaSrR   c                     [        S5      n [        [        R                  [        R                  U S9u  pp4[        S SSS9R                  X5      n[        UR                  [        5      (       d   e[        [        5       SSS9R                  X5      n[        UR                  [        5      (       d   e[        [        5       SSS9R                  X5      n[        UR                  [        5      (       d   e[        [        R                  [        R                  U S9u  pp4[        S SSS9R                  X5      n[        UR                  [        5      (       d   e[        [        5       SSS9R                  X5      n[        UR                  [        5      (       d   e[        [        5       SSS9R                  X5      n[        UR                  [        5      (       d   eg )Nr   r/   r   r   )r)   r   rB   rC   rD   r   rF   
isinstance
estimator_r'   r   r   r   r(   r!   r   s         rP   test_estimatorr     s   
Q
C (8		4;;S($GW !aa@DDWVHh))+ABBBB  	c'  h))+ABBBB aaHLLH h)):6666 (8xS($GW  QQ?CCGUHh))+@AAAA 5 7PQRVVH h))+@AAAAaa@DDWVHh))3////rR   c                     [        [        [        SS9[        5       5      SS9n U R	                  [
        R                  [
        R                  5        [        U S   R                  S   S   R                  [        5      (       d   eg )Nr3   )kr=   )r7   r   )r   r   r   r'   rF   rB   rC   rD   r   stepsr0   intr?   s    rP   test_bagging_with_pipeliner   H  sg    !kA&(>(@APQI MM$))T[[)il((,Q/<<cBBBBrR   c                        \ rS rSrS rS rSrg)DummyZeroEstimatoriP  c                 <    [         R                  " U5      U l        U $ r^   )r   r   classes_r   s      rP   rF   DummyZeroEstimator.fitQ  s    		!rR   c                 h    U R                   [        R                  " UR                  S   [        S9   $ )Nr   )dtype)r  r   zerosr   r   r   s     rP   rG   DummyZeroEstimator.predictU  s$    }}RXXaggaj<==rR   )r  Nr   rA   rR   rP   r   r   P  s    >rR   r   c            
         [        [        5       5      n [        S5      nU R                  [        R
                  [        R                  5      R                  [        R
                  5        [        R                  " [        5         U R                  [        R
                  [        R                  UR                  S[        R
                  R                  S   S9S9  S S S 5        g ! , (       d  f       g = f)Nr   
   )size)sample_weight)r   r   r)   rF   rB   rC   rD   rG   r   raises
ValueErrorrandintr   )r?   rH   s     rP   1test_bagging_sample_weight_unsupported_but_passedr  Y  s    !"4"67I
Q
CMM$))T[[)11$))<	z	"IIKK++b		0B+D 	 	
 
#	"	"s   AC$$
C2c                    [        SSS9u  pS nS HB  nUc  [        X@SS9nOUR                  US9  UR                  X5        [	        U5      U:X  a  MB   e   [        SU S	S9nUR                  X5        [        U Vs/ s H  ofR                  PM     sn5      [        U Vs/ s H  ofR                  PM     sn5      :X  d   eg s  snf s  snf )
Nr:   r3   	n_samplesr0   )r   r  T)r@   r0   
warm_startr@   r  F)r	   r   r   rF   r   r   r0   )r0   re   rf   clf_wsr@   	clf_no_wstrees          rP   test_warm_startr  f  s     bq9DAF>&)QUF <8

16{l***   "luI MM!f5fd!!f56#'01yt		y1;   51s   <C C
c                      [        SSS9u  p[        SSS9nUR                  X5        UR                  SS9  [        R
                  " [        5         UR                  X5        S S S 5        g ! , (       d  f       g = f)	Nr:   r3   r  r   T)r@   r  r4   r  )r	   r   rF   r   r   r  r  re   rf   r   s      rP   $test_warm_start_smaller_n_estimatorsr    sX    bq9DA
t
<CGGAMNNN"	z	" 
#	"	"s   A,,
A:c                  Z   [        SSS9u  p[        XSS9u  p#pE[        SSSS	9nUR                  X$5        UR	                  U5      nUS
-  nSn[
        R                  " [        US9   UR                  X$5        S S S 5        [        XvR	                  U5      5        g ! , (       d  f       N)= f)Nr:   r3   r  +   r/   r   TS   r@   r  r0   r2   z;Warm-start fitting without increasing n_estimators does notr   )	r	   r   r   rF   rG   r   r   r   r+   )	re   rf   rI   rJ   rK   rL   r   y_predr   s	            rP   "test_warm_start_equal_n_estimatorsr     s    bq9DA'72'N$GW
t"
MCGGG[[ FsNGLH	k	2! 
3v{{623 
3	2s   'B
B*c                  @   [        SSS9u  p[        XSS9u  p#pE[        SSSS	9nUR                  X$5        UR	                  S
S9  UR                  X$5        UR                  U5      n[        S
SSS	9nUR                  X$5        UR                  U5      n	[        Xy5        g )Nr:   r3   r  r  r/   r   TiE  r  r  r  F)r	   r   r   rF   r   rG   r*   )
re   rf   rI   rJ   rK   rL   r  r   r   r   s
             rP   test_warm_start_equivalencer"    s     bq9DA'72'N$GWA$TRF
JJw 
2&
JJw 		B
D
QCGGG	V	Bb%rR   c                      [        SSS9u  p[        SSSS9n[        R                  " [        5         UR                  X5        S S S 5        g ! , (       d  f       g = f)Nr:   r3   r  r   T)r@   r  r   )r	   r   r   r  r  rF   r  s      rP   $test_warm_start_with_oob_score_failsr$    sA    bq9DA
tt
LC	z	" 
#	"	"s   A
Ac                     [        SSS9u  p[        SSS9nUR                  X5        UR                  SSSS	9  UR                  X5        [        R
                  " [        5         [        US
5        S S S 5        g ! , (       d  f       g = f)Nr   r3   r  r   T)r@   r   Fr  )r  r   r@   r   )r	   r   rF   r   r   r  AttributeErrorr{   r  s      rP   $test_oob_score_removed_on_warm_startr'    sf    c:DA
d
;CGGAMNNde"NEGGAM	~	&\" 
'	&	&s   $A::
Bc                      [        SSS9u  p[        [        5       SSSSS9nUR                  X5      R                  UR                  X5      R                  :X  d   eg )N   r3   r  r1   T)r6   r7   r   r0   )r	   r   r   rF   r   re   rf   baggings      rP   test_oob_score_consistencyr,    s\     c:DAG ;;q''7;;q+<+G+GGGGrR   c                     [        SSS9u  p[        [        5       SSSSS9nUR                  X5        UR                  nUR
                  nUR                  n[        U5      [        U5      :X  d   e[        US   5      [        U 5      S-  :X  d   eUS   R                  R                  S	:X  d   eSnX6   nXF   nXV   n	X   S S 2U4   n
X   nU	R                  nU	R                  X5        U	R                  n[        X5        g )
Nr)  r3   r  r1   F)r6   r7   r0   r8   r   r=   r   )r	   r   r   rF   estimators_samples_r   r|   r   r  kindcoef_r*   )re   rf   r+  estimators_samplesestimators_featuresrN   estimator_indexestimator_samplesestimator_featuresr?   rI   rK   
orig_coefs	new_coefss                 rP   test_estimators_samplesr8    s    c:DAG KK !44!66$$J !"c*o555!!$%Q1444a &&++s222 O*;,=+I#Q(:%:;G"GJMM'#Ij4rR   c                     [        5       n U R                  U R                  p![        [	        SS9[        5       5      n[        USSS9nUR                  X5        UR                  S   R                  S   S   R                  R                  5       nUR                  S   nUR                  S   nUR                  S   nX   S S 2U4   n	X'   n
UR                  X5        [        UR                  S   S   R                  U5        g )Nr=   )n_componentsr1   r   )r?   r6   r0   r   r3   )r   rC   rD   r   r   r   r   rF   r|   r   r0  copyr.  r   r+   )rB   re   rf   base_pipeliner   pipeline_estimator_coefr?   estimator_sampleestimator_featurerI   rK   s              rP   %test_estimators_samples_deterministicr@    s     ;D99dkkq!A.0B0DM mST
UCGGAM!ooa066r:1=CCHHJ"I..q1003"A'8$89G!GMM'#yr*1-335LMrR   c                      Sn [        SU -  SS9u  p[        [        5       U SSS9nUR                  X5        UR                  U :X  d   eg )Nr   r=   r3   r  r1   )r6   r7   r0   )r	   r   r   rF   _max_samples)r6   re   rf   r+  s       rP   test_max_samples_consistencyrC    sV     Ka+oAFDA	G KK;...rR   c                  .   Sn S/S/S//S-  n/ SQS-  n/ SQS-  n/ SQS-  n[        SU S	9R                  X5      R                  n[        SU S	9R                  X5      R                  n[        SU S	9R                  X5      R                  nXV/Xw/:X  d   eg )
Nr   r   r   r3   )ABC)r   r   r3   )r   r3   r=   T)r   r0   )r   rF   r   )r0   re   Y1Y2Y3x1x2x3s           rP   !test_set_oob_score_label_encodingrN  $  s     L
sQC1A	1	B	aB	QBD|D	Q	  	D|D	Q	  	D|D	Q	 
 8xrR   c                 Z    U R                  SSS9n SU [        R                  " U 5      ) '   U $ )NfloatT)r;  r   )astyper   isfinite)re   s    rP   replacerS  >  s-    	t$AAr{{1~oHrR   c            	         [         R                  " / SQ/ SQS[         R                  S/S[         R                  S/S[         R                  * S//5      n [         R                  " / SQ5      [         R                  " / SQ/ SQ/ SQ/ SQ/ SQ/5      /nU GH  n[	        5       n[        [        [        5      U5      nUR                  X5      R                  U 5        [        U5      nUR                  X5      R                  U 5      nUR                  UR                  :X  d   e[	        5       n[        U5      n[        R                  " [        5         UR                  X5        S S S 5        [        U5      n[        R                  " [        5         UR                  X5        S S S 5        GM     g ! , (       d  f       NS= f! , (       d  f       GM=  = f)Nr3   r   r   r=   N   r=   rW  )r=   r   r   r   r   )r=   r3   	   )r   rW     )r   arraynaninfr(   r   r   rS  rF   rG   r   r   r   r  r  )re   y_valuesrf   	regressorpipelinebagging_regressory_hats          rP   *test_bagging_regressor_with_missing_inputsrb  D  sb   
NNO	
	A 	!
	
H )+	 !4W!=yIQ""1%,X6!%%a+33A6ww%++%%% *+	 +]]:&LL ',X6]]:&!!!' '&  '& '&s   F/G /
F=	 
G	c            	         [         R                  " / SQ/ SQS[         R                  S/S[         R                  S/S[         R                  * S//5      n [         R                  " / SQ5      n[	        5       n[        [        [        5      U5      nUR                  X5      R                  U 5        [        U5      nUR                  X5        UR                  U 5      nUR                  UR                  :X  d   eUR                  U 5        UR                  U 5        [	        5       n[        U5      n[        R                  " [         5         UR                  X5        S S S 5        [        U5      n[        R                  " [         5         UR                  X5        S S S 5        g ! , (       d  f       NN= f! , (       d  f       g = f)NrU  rV  r=   rW  )r   rW  rW  rW  rW  )r   rZ  r[  r\  r'   r   r   rS  rF   rG   r   r   rV   rU   r   r  r  )re   rf   
classifierr_  bagging_classifierra  s         rP   +test_bagging_classifier_with_missing_inputsrf  m  sP   
NNO	
	A 	!A')J09:FHLLq!*841 &&q)E77ekk!!!((+$$Q' ()JZ(H	z	"Q 
#*84	z	"q$ 
#	" 
#	" 
#	"s   	F#F4#
F14
Gc                      [         R                  " SS/SS//5      n [         R                  " SS/5      n[        [        5       SSS9nUR	                  X5        g )Nr3   r=   r   r4   r   g333333?)r7   r0   )r   rZ  r   r   rF   r*  s      rP   test_bagging_small_max_featuresrh    sP     	1a&1a&!"A
!QA 2 43UVWGKKrR   c                 R   [         R                  R                  U 5      nUR                  SS5      n[         R                  " S5      n " S S[
        5      n[        U" 5       SSS9nUR                  X#5        [        UR                  S   R                  UR                  S   5        g )N   r4   c                       \ rS rSrSrS rSrg)8test_bagging_get_estimators_indices.<locals>.MyEstimatori  z7An estimator which stores y indices information at fit.c                     X l         g r^   _sample_indicesr   s      rP   rF   <test_bagging_get_estimators_indices.<locals>.MyEstimator.fit  s    #$ rR   rn  N)rl   rm   rn   ro   rp   rF   rq   rA   rR   rP   MyEstimatorrl    s
    E	%rR   rq  r3   r   )r?   r@   r0   )r   randomRandomStaterandnaranger(   r   rF   r+   r|   ro  r.  )global_random_seedrH   re   rf   rq  r   s         rP   #test_bagging_get_estimators_indicesrw    s    
 ))

 2
3C		"aA
		"A%+ % []QR
SCGGAMsq)993;R;RST;UVrR   zbagging, expected_allow_nanr3   r;   c                 X    U R                  5       R                  R                  U:X  d   eg)z*Check that bagging inherits allow_nan tag.N)__sklearn_tags__
input_tags	allow_nan)r+  expected_allow_nans     rP   test_bagging_allow_nan_tagr}    s(     ##%00::>PPPPrR   )enable_metadata_routingmodelr  )r?   r@   c                 `    U R                  [        R                  [        R                  5        g)zAMake sure that metadata routing works with non-default estimator.NrF   rB   rC   rD   r  s    rP   "test_bagging_with_metadata_routingr    s     
IIdii%rR   zsub_estimator, caller, calleerG   rV   rU   c           	         [         R                  " SS/SS/SS//5      n/ SQnS/Spe[        5       nU " US9nS	U-   S
-   n	[        X5      " SSS9  [	        US9n
U
R                  X45        [        X5      " [         R                  " SS/SS/SS//5      UUS9  [        U5      (       d   eU H  n[        UUUUUS9  M     g)am  Test that metadata routing works in `BaggingClassifier` with dynamic selection of
the sub-estimator's methods. Here we test only specific test cases, where
sub-estimator methods are not present and are not tested with `ConsumingClassifier`
(which possesses all the methods) in
sklearn/tests/test_metaestimators_metadata_routing.py: `BaggingClassifier.predict()`
dynamically routes to `predict` if the sub-estimator doesn't have `predict_proba`
and `BaggingClassifier.predict_log_proba()` dynamically routes to `predict_proba` if
the sub-estimator doesn't have `predict_log_proba`, or to `predict`, if it doesn't
have it.
r   r=   r3   r4   rW  )r3   r=   r   a)registryset__requestT)r
  metadatar   r   )re   r
  r  )objr   parentr
  r  N)r   rZ  r%   r{   r   rF   r   r&   )sub_estimatorcallercalleere   rf   r
  r  r  r?   set_callee_requestr+  s              rP   3test_metadata_routing_with_dynamic_method_selectionr    s    0 	1a&1a&1a&)*AA c38{Hx0I&:5I*M)4GKKG
((QFQFQF+
,# x===	'	
 rR   c                 `    U R                  [        R                  [        R                  5        g)zZMake sure that we still can use an estimator that does not implement the
metadata routing.Nr  r  s    rP   -test_bagging_without_support_metadata_routingr    s     
IIdii%rR   )*   )trp   	itertoolsr   r   r   numpyr   r   sklearnr   sklearn.baser   sklearn.datasetsr   r   r	   sklearn.dummyr
   r   sklearn.ensembler   r   r   r   r   r   r   r   sklearn.feature_selectionr   sklearn.linear_modelr   r   sklearn.model_selectionr   r   r   sklearn.neighborsr   r   sklearn.pipeliner   sklearn.preprocessingr   r   sklearn.random_projectionr   sklearn.svmr    r!   %sklearn.tests.metadata_routing_commonr"   r#   r$   r%   r&   sklearn.treer'   r(   sklearn.utilsr)   sklearn.utils._testingr*   r+   sklearn.utils.fixesr,   r-   rH   rB   permutationrD   r	  permrC   r   rQ   markparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r   r"  r$  r'  r,  r8  r@  rC  rN  rS  rb  rf  rh  rw  r}  r  r  r  rA   rR   rP   <module>r     s   %    " & G G 9	 	 	 2 ? Q Q G * < <    G , P > {
t{{''(IIdO	kk$ ?
x++,d#//$'0B &'  # !!&*	  # !!&*	 U$Od%P	
  	O%.&2/.&2R8 +^n-LM5A N5Ap# #'9TE8 
F"&J!#HJ(O&6R&4	T)0XC> >

44$&&
#H%5PN6/ 4&(R%@W* !	91E	FM	7C	DdK	-/	0%8	#%	 %(	QQ -,!<1	
 	+;!	
	
&
 .&
 #	/IF5	

 
,-@)L -#
 .#
T (a8	
 	#4!#DSTU	&	&rR   