Ë
    ÜÍ:jô—  ã                   ó¨  — d Z ddlZddlmZm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mZ ddlmZmZ dd	lmZmZmZmZmZmZmZmZ dd
lm Z  ddl!m"Z"m#Z# ddl$m%Z%m&Z&m'Z' ddl(m)Z)m*Z* ddl+m,Z, ddl-m.Z.m/Z/ ddl0m1Z1 ddl2m3Z3m4Z4 ddl5m6Z6m7Z7m8Z8m9Z9m:Z: ddl;m<Z<m=Z= ddl>m?Z? ddl@mAZAmBZBmCZC ddlDmEZEmFZF  e?d«      ZG e«       ZHeGj“                  eHj”                  j–                  «      ZLeHjš                  eL   eH_M        eHj”                  eL   eH_J         e«       ZNeGj“                  eNj”                  j–                  «      ZLeNjš                  eL   eN_M        eNj”                  eL   eN_J        d„ ZOej                   j£                  d eeFeEz   dddddœdddddœdddd œdddd!œgg d"¢«      «      d#„ «       ZRd$„ ZSej                   j£                  d%eFeEz   «      d&„ «       ZT G d'„ d(e«      ZUd)„ ZVd*„ ZWd+„ ZXd,„ ZYd-„ ZZd.„ Z[d/„ Z\ej                   jº                  d0„ «       Z^ej                   jº                  d1„ «       Z_d2„ Z`ej                   jº                  d3„ «       Zad4„ Zbdad5„Zcd6„ Zdd7„ Zed8„ Zfd9„ Zgd:„ Zhd;„ Zi G d<„ d=e«      Zj G d>„ d?e«      Zkej                   j£                  d@eeg«      ej                   j£                  dAddg«      ej                   j£                  dBddg«      ej                   j£                  dCdDdEg«      dF„ «       «       «       «       ZldG„ ZmdH„ ZndI„ ZodJ„ ZpdK„ ZqdL„ ZrdM„ ZsdN„ ZtdO„ ZudP„ ZvdQ„ Zwej                   j£                  dR e edS¬T«      «      df e edS¬T«      «      df e e"«       «      df e e4«       «      dfg«      dU„ «       Zx e
d¬V«      ej                   j£                  dW e edS¬X«      dS¬Y«       e edS¬X«      dS¬Y«      g«      dZ„ «       «       Zyej                   j£                  d[e8d\d\fe7d]d^fe6d]d\fg«       e
d¬V«      d_„ «       «       Zzej                   j£                  dW e edS¬X«      dS¬Y«       e edS¬X«      dS¬Y«      g«      d`„ «       Z{y)bzE
Testing for the bagging ensemble module (sklearn.ensemble.bagging).
é    N)ÚcycleÚproduct)Úconfig_context)ÚBaseEstimator)ÚCalibratedClassifierCV)Ú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_allcloseÚassert_array_almost_equalÚassert_array_equal)ÚCSC_CONTAINERSÚCSR_CONTAINERSc                  ó¦  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        ddgddgddgddgd	œ«      }d t        «       t        d
¬«      t        d¬«      t        «       t        «       g}t        |t        |«      «      D ]3  \  }}t        d|| ddœ|¤Žj                  ||«      j                  |«       Œ5 y )Nr   ©Úrandom_stateç      à?ç      ð?é   é   TF©Úmax_samplesÚmax_featuresÚ	bootstrapÚbootstrap_featuresé   ©Úmax_iteré   )Ú	max_depth)Ú	estimatorr2   Ú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ÚparamsrA   s	            úx/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/sklearn/ensemble/tests/test_bagging.pyÚtest_classificationrS   G   sà   € ä
˜QÓ
€CÜ'7Ü�	‰	”4—;‘;¨Sô(Ñ$€GˆV�W˜fô à ˜:Ø ˜FØ ˜Ø#'¨ -ñ		
ó€Dð 	ÜÓÜ˜BÔÜ¨Ô+ÜÓÜ‹ð€Jô ! ¤u¨ZÓ'8Ó9ò 0Ñˆ�	Üð 	
ØØØñ	
ð ñ		
÷
 ‰#ˆg�wÓ
§¡¨¥ñ0ó    z sparse_container, params, methodr3   r?   Tr7   r4   r6   F©r9   r:   r;   ©r8   r:   r;   )rI   Úpredict_probaÚpredict_log_probaÚdecision_functionc                 óx  —  G d„ dt         «      }t        d«      }t        t        t        j
                  «      t        j                  |¬«      \  }}}} | |«      }	 | |«      }
t        d |«       ddœ|¤Žj                  |	|«      }t        ||«        t        ||«      |
«      }t        d |«       ddœ|¤Žj                  ||«      } t        ||«      |«      }t        ||«       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ˆ fd„Zˆ xZS )ú4test_sparse_classification.<locals>.CustomClassifierzFLogisticRegression variant that records the nature of the training setc                 óH   •— t         ‰| �  ||«       t        |«      | _        | S ©N©ÚsuperrH   ÚtypeÚ
data_type_©ÚselfÚXÚyÚ	__class__s      €rR   rH   z8test_sparse_classification.<locals>.CustomClassifier.fit„   ó!   ø€ Ü‰G‰K˜˜1ÔÜ" 1›gˆDŒOØˆKrT   ©Ú__name__Ú
__module__Ú__qualname__Ú__doc__rH   Ú__classcell__©rg   s   @rR   ÚCustomClassifierr\   �   s   ø„ ÙT÷	ð 	rT   rp   r   r1   r5   ©rA   r2   rC   )r   r*   r   r   rD   rE   rF   r   rH   ÚprintÚgetattrr,   ra   Úestimators_rb   Úall)Úsparse_containerrQ   Úmethodrp   rJ   rK   rL   rM   rN   ÚX_train_sparseÚX_test_sparseÚsparse_classifierÚsparse_resultsÚdense_classifierÚdense_resultsÚsparse_typeÚiÚtypesÚts                      rR   Útest_sparse_classificationr‚   h   sQ  € ô2Ô-ô ô ˜QÓ
€CÜ'7ÜŒd�i‰iÓœ$Ÿ+™+°Cô(Ñ$€GˆV�W˜fñ & gÓ.€NÙ$ VÓ,€Mô *ð Ù"Ó$Øñð ñ÷ 
�cˆ.˜'Ó"ð	 ô
 
Ð
˜VÔ$Ø7”WÐ.°Ó7¸ÓF€Nô )ð Ù"Ó$Øñð ñ÷ 
�cˆ'�7Óð	 ð
 6”GÐ,¨fÓ5°fÓ=€MÜ˜n¨mÔ<ä�~Ó&€KØ#4×#@Ñ#@ÖA˜aˆQ�\‹\ÐA€EÐAä¨%Ö0 Q��[Ó Ò0Ô1Ð1Ñ1ùò Bùâ0s   Ã>D2ÄD7c                  ót  — t        d«      } t        t        j                  d d t        j                  d d | ¬«      \  }}}}t        ddgddgddgddgdœ«      }d t        «       t        «       t        «       t        «       fD ]6  }|D ]/  }t        d
|| d	œ|¤Žj                  ||«      j                  |«       Œ1 Œ8 y )Nr   é2   r1   r3   r4   TFr7   rq   rC   )r*   r   ÚdiabetesrE   rF   r   r   r)   r   r"   r   rH   rI   )rJ   rK   rL   rM   rN   rO   rA   rQ   s           rR   Útest_regressionr†   ©   sÒ   € ä
˜QÓ
€CÜ'7Ü�‰�c�rÐœHŸO™O¨C¨RÐ0¸sô(Ñ$€GˆV�W˜fô à ˜:Ø  #˜JØ ˜Ø#'¨ -ñ		
ó€Dð 	ÜÓÜÓÜÓÜ‹ðò 
ˆ	ð ò 	ˆFÜÐM y¸sÑMÀfÑM×QÑQØ˜óç‰g�f�oñ	ñ
rT   rv   c                 ó¨  — t        d«      }t        t        j                  d d t        j                  d d |¬«      \  }}}} G d„ dt
        «      }ddddd	œd
dddd	œddddœddddœg} | |«      } | |«      }	|D ]Ì  }
t        d |«       ddœ|
¤Žj                  ||«      }|j                  |	«      }t        d |«       ddœ|
¤Žj                  ||«      j                  |«      }t        |«      }|j                  D �cg c]  }|j                  ‘Œ }}t        ||«       t        |D �cg c]  }||k(  ‘Œ	 c}«      sJ ‚t        ||«       ŒÎ y c c}w c c}w )Nr   r„   r1   c                   ó"   ‡ — e Zd ZdZˆ fd„Zˆ xZS )ú)test_sparse_regression.<locals>.CustomSVRz7SVC variant that records the nature of the training setc                 óH   •— t         ‰| �  ||«       t        |«      | _        | S r^   r_   rc   s      €rR   rH   z-test_sparse_regression.<locals>.CustomSVR.fitÐ   rh   rT   ri   ro   s   @rR   Ú	CustomSVRr‰   Í   s   ø„ ÙE÷	ð 	rT   r‹   r3   r?   Tr7   r4   r6   FrU   rV   r5   rq   rC   )r*   r   r…   rE   rF   r"   r   rH   rI   ra   rt   rb   r,   ru   )rv   rJ   rK   rL   rM   rN   r‹   Úparameter_setsrx   ry   rQ   rz   r{   r}   r~   r   r€   r�   s                     rR   Útest_sparse_regressionr�   Å   s‰  € ô ˜QÓ
€CÜ'7Ü�‰�c�rÐœHŸO™O¨C¨RÐ0¸sô(Ñ$€GˆV�W˜fô”Cô ð ØØØ"&ñ		
ð ØØØ"&ñ		
ð ¨ÀdÑKØ¨$ÀeÑLð€Nñ" & gÓ.€NÙ$ VÓ,€MØ ò Aˆä,ð 
Ù“k°ñ
Ø5;ñ
ç
‰#ˆn˜gÓ
&ð 	ð +×2Ñ2°=ÓAˆô ÐM¡y£{ÀÑMÀfÑMß‰S�˜'Ó"ß‰W�V‹_ð 	ô ˜>Ó*ˆØ'8×'DÑ'DÖE !�—“ÐEˆÐEä! .°-Ô@Ü¨eÖ4¨�A˜Ó$Ò4Ô5Ð5Ð5Ü! .°-Õ@ñ'Aùò Fùò 5s   Ã<E
Ä&E
c                   ó   — e Zd Zd„ Zd„ Zy)ÚDummySizeEstimatorc                 ó`   — |j                   d   | _        t        j                  |«      | _        y ©Nr   )ÚshapeÚtraining_size_ÚjoblibÚhashÚtraining_hash_©rd   re   rf   s      rR   rH   zDummySizeEstimator.fitÿ   s"   € ØŸg™g a™jˆÔÜ$Ÿk™k¨!›nˆÕrT   c                 óF   — t        j                  |j                  d   «      S r‘   )ÚnpÚonesr’   ©rd   re   s     rR   rI   zDummySizeEstimator.predict  s   € Ü�w‰w�q—w‘w˜q‘zÓ"Ð"rT   N)rj   rk   rl   rH   rI   rC   rT   rR   r�   r�   þ   s   „ ò-ó#rT   r�   c                  ó
  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        «       j                  ||«      }t        t        «       dd| ¬«      j                  ||«      }|j                  ||«      |j                  ||«      k(  sJ ‚t        t        «       dd| ¬«      j                  ||«      }|j                  ||«      |j                  ||«      kD  sJ ‚t        t        «       d¬«      j                  ||«      }g }|j                  D ];  }|j                  |j                  d   k(  sJ ‚|j                  |j                  «       Œ= t        t!        |«      «      t        |«      k(  sJ ‚y )Nr   r1   r4   F)rA   r8   r:   r2   T)rA   r:   )r*   r   r…   rE   rF   r)   rH   r   Úscorer�   rt   r“   r’   Úappendr–   ÚlenÚset)rJ   rK   rL   rM   rN   rA   ÚensembleÚtraining_hashs           rR   Útest_bootstrap_samplesr£     sw  € ä
˜QÓ
€CÜ'7Ü�‰”x—‘°Sô(Ñ$€GˆV�W˜fô &Ó'×+Ñ+¨G°WÓ=€Iô  Ü'Ó)ØØØô	÷
 
�cˆ'�7Óð ð �?‰?˜7 GÓ,°·±¸wÈÓ0PÒPÐPÐPô  Ü'Ó)ØØØô	÷
 
�cˆ'�7Óð ð �?‰?˜7 GÓ,¨x¯~©~¸gÀwÓ/OÒOÐOÐOô
  Ô*<Ó*>È$ÔO×SÑSØ�ó€Hð €MØ×)Ñ)ò 7ˆ	Ø×'Ñ'¨7¯=©=¸Ñ+;Ò;Ð;Ð;Ø×Ñ˜Y×5Ñ5Õ6ð7ô Œs�=Ó!Ó"¤c¨-Ó&8Ò8Ð8Ñ8rT   c                  ó`  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        t        «       dd| ¬«      j                  ||«      }|j                  D ]D  }t        j                  j                  d   t        j                  |«      j                  d   k(  rŒDJ ‚ t        t        «       dd| ¬«      j                  ||«      }|j                  D ]D  }t        j                  j                  d   t        j                  |«      j                  d   kD  rŒDJ ‚ y )Nr   r1   r4   F)rA   r9   r;   r2   r5   T)r*   r   r…   rE   rF   r   r)   rH   Úestimators_features_r’   r™   Úunique)rJ   rK   rL   rM   rN   r¡   Úfeaturess          rR   Útest_bootstrap_featuresr¨   1  s  € ä
˜QÓ
€CÜ'7Ü�‰”x—‘°Sô(Ñ$€GˆV�W˜fô  Ü'Ó)ØØ Øô	÷
 
�cˆ'�7Óð ð ×1Ñ1ò FˆÜ�}‰}×"Ñ" 1Ñ%¬¯©°8Ó)<×)BÑ)BÀ1Ñ)EÓEÐEÐEðFô  Ü'Ó)ØØØô	÷
 
�cˆ'�7Óð ð ×1Ñ1ò EˆÜ�}‰}×"Ñ" 1Ñ%¬¯	©	°(Ó(;×(AÑ(AÀ!Ñ(DÓDÐDÐDñErT   c            	      óŠ  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        j                  dd¬«      5  t        t        «       | ¬«      j                  ||«      }t        t        j                  |j                  |«      d¬«      t        j                  t        |«      «      «       t        |j                  |«      t        j                  |j!                  |«      «      «       t        t#        «       | d¬	«      j                  ||«      }t        t        j                  |j                  |«      d¬«      t        j                  t        |«      «      «       t        |j                  |«      t        j                  |j!                  |«      «      «       d d d «       y # 1 sw Y   y xY w)
Nr   r1   Úignore)ÚdivideÚinvalidrq   r5   )Úaxisé   )rA   r2   r8   )r*   r   rD   rE   rF   r™   Úerrstater   r(   rH   r,   ÚsumrW   rš   rŸ   ÚexprX   r   ©rJ   rK   rL   rM   rN   r¡   s         rR   Útest_probabilityr³   M  sY  € ä
˜QÓ
€CÜ'7Ü�	‰	”4—;‘;¨Sô(Ñ$€GˆV�W˜fô 
�‰˜H¨hÔ	7ñ 
ä$Ü,Ó.¸Sô
ç
‰#ˆg�wÓ
ð 	ô 	"Ü�F‰F�8×)Ñ)¨&Ó1¸Ô:¼B¿G¹GÄCÈÃKÓ<Pô	
ô 	"Ø×"Ñ" 6Ó*¬B¯F©F°8×3MÑ3MÈfÓ3UÓ,Vô	
ô
 %Ü(Ó*¸È!ô
ç
‰#ˆg�wÓ
ð 	ô 	"Ü�F‰F�8×)Ñ)¨&Ó1¸Ô:¼B¿G¹GÄCÈÃKÓ<Pô	
ô 	"Ø×"Ñ" 6Ó*¬B¯F©F°8×3MÑ3MÈfÓ3UÓ,Vô	
÷/
÷ 
ñ 
ús   ÁEF9Æ9Gc            	      ó  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        «       t        t        «       d¬«      fD ]™  }t        |ddd| ¬«      j                  ||«      }|j                  ||«      }t        ||j                  z
  «      dk  sJ ‚d	}t        j                  t        |¬
«      5  t        |ddd| ¬«      }|j                  ||«       d d d «       Œ› y # 1 sw Y   Œ¦xY w)Nr   r1   F)r¡   éd   T©rA   rB   r:   Ú	oob_scorer2   çš™™™™™¹?ú{Some inputs do not have OOB scores. This probably means too few estimators were used to compute any reliable oob estimates.©Úmatchr5   )r*   r   rD   rE   rF   r(   r   r!   r   rH   r�   ÚabsÚ
oob_score_ÚpytestÚwarnsÚUserWarning)	rJ   rK   rL   rM   rN   rA   ÚclfÚ
test_scoreÚwarn_msgs	            rR   Útest_oob_score_classificationrÄ   p  s  € ô ˜QÓ
€CÜ'7Ü�	‰	”4—;‘;¨Sô(Ñ$€GˆV�W˜fô
 	Ó Üœs›u¨uÔ5ðò &ˆ	ô  ØØØØØô
÷ ‰#ˆg�wÓ
ð 	ð —Y‘Y˜v vÓ.ˆ
ä�: §¡Ñ.Ó/°#Ò5Ð5Ð5ðJð 	ô �\‰\œ+¨XÔ6ñ 	&Ü#Ø#ØØØØ ôˆCð �G‰G�G˜WÔ%÷	&ð 	&ñ+&÷*	&ð 	&ús   Ã	#C7Ã7D 	c                  óÞ  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        t        «       ddd| ¬«      j                  ||«      }|j                  ||«      }t        ||j                  z
  «      dk  sJ ‚d}t        j                  t        |¬«      5  t        t        «       d	dd| ¬«      }|j                  ||«       d d d «       y # 1 sw Y   y xY w)
Nr   r1   r„   Tr¶   r¸   r¹   rº   r5   )r*   r   r…   rE   rF   r   r)   rH   r�   r¼   r½   r¾   r¿   rÀ   )	rJ   rK   rL   rM   rN   rÁ   rÂ   rÃ   Úregrs	            rR   Útest_oob_score_regressionrÇ   ˜  sé   € ô ˜QÓ
€CÜ'7Ü�‰”x—‘°Sô(Ñ$€GˆV�W˜fô Ü'Ó)ØØØØô÷ 
�cˆ'�7Óð ð —‘˜6 6Ó*€Jäˆz˜CŸN™NÑ*Ó+¨cÒ1Ð1Ð1ð	Fð ô 
�‰”k¨Ô	2ñ #ÜÜ+Ó-ØØØØô
ˆð 	�‰�˜'Ô"÷#÷ #ñ #ús   Â/+C#Ã#C,c                  óP  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        t        «       ddd| ¬«      j                  ||«      }t        «       j                  ||«      }t        |j                  |«      |j                  |«      «       y )Nr   r1   r5   F)rA   rB   r:   r;   r2   )
r*   r   r…   rE   rF   r   r   rH   r,   rI   )rJ   rK   rL   rM   rN   Úclf1Úclf2s          rR   Útest_single_estimatorrË   ¼  s�   € ä
˜QÓ
€CÜ'7Ü�‰”x—‘°Sô(Ñ$€GˆV�W˜fô Ü%Ó'ØØØ Øô÷ 
�cˆ'�7Óð 	ô Ó ×$Ñ$ W¨gÓ6€Dä˜dŸl™l¨6Ó2°D·L±LÀÓ4HÕIrT   c                  ó¦   — t         j                  t         j                  }} t        «       }t	        t        |«      j                  | |«      d«      rJ ‚y )NrY   )rD   rE   rF   r(   Úhasattrr   rH   )re   rf   Úbases      rR   Ú
test_errorrÏ   Ð  sB   € ä�9‰9”d—k‘k€q€AÜ!Ó#€DÜÔ(¨Ó.×2Ñ2°1°aÓ8Ð:MÔNÐNÐNÐNrT   c                  ó  — t        t        j                  t        j                  d¬«      \  } }}}t	        t        «       dd¬«      j                  | |«      }|j                  |«      }|j                  d¬«       |j                  |«      }t        ||«       t	        t        «       dd¬«      j                  | |«      }|j                  |«      }t        ||«       t	        t        d¬«      dd¬«      j                  | |«      }|j                  |«      }|j                  d¬«       |j                  |«      }	t        ||	«       t	        t        d¬«      dd¬«      j                  | |«      }|j                  |«      }
t        ||
«       y )	Nr   r1   é   ©Ún_jobsr2   r5   ©rÓ   Úovr)Údecision_function_shape)r   rD   rE   rF   r   r(   rH   rW   Ú
set_paramsr,   r!   rY   )rK   rL   rM   rN   r¡   Úy1Úy2Úy3Ú
decisions1Ú
decisions2Ú
decisions3s              rR   Útest_parallel_classificationrÞ   Ù  sl  € ô (8Ü�	‰	”4—;‘;¨Qô(Ñ$€GˆV�W˜fô !ÜÓ ¨¸ôç	�cˆ'�7Óð ð
 
×	Ñ	 Ó	'€BØ×Ñ˜qÐÔ!Ø	×	Ñ	 Ó	'€BÜ˜b "Ô%ä ÜÓ ¨¸ôç	�cˆ'�7Óð ð 
×	Ñ	 Ó	'€BÜ˜b "Ô%ô !Ü EÔ*°1À1ôç	�cˆ'�7Óð ð ×+Ñ+¨FÓ3€JØ×Ñ˜qÐÔ!Ø×+Ñ+¨FÓ3€JÜ˜j¨*Ô5ä Ü EÔ*°1À1ôç	�cˆ'�7Óð ð ×+Ñ+¨FÓ3€JÜ˜j¨*Õ5rT   c                  óî  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        t        «       dd¬«      j                  ||«      }|j                  d¬«       |j                  |«      }|j                  d¬«       |j                  |«      }t        ||«       t        t        «       dd¬«      j                  ||«      }|j                  |«      }t        ||«       y )Nr   r1   rÑ   rÒ   r5   rÔ   r?   )r*   r   r…   rE   rF   r   r)   rH   r×   rI   r,   )	rJ   rK   rL   rM   rN   r¡   rØ   rÙ   rÚ   s	            rR   Útest_parallel_regressionrà     sâ   € ô ˜QÓ
€Cä'7Ü�‰”x—‘°Sô(Ñ$€GˆV�W˜fô  Ô 5Ó 7ÀÐPQÔR×VÑVØ�ó€Hð ×Ñ˜qÐÔ!Ø	×	Ñ	˜&Ó	!€BØ×Ñ˜qÐÔ!Ø	×	Ñ	˜&Ó	!€BÜ˜b "Ô%äÔ 5Ó 7ÀÐPQÔR×VÑVØ�ó€Hð 
×	Ñ	˜&Ó	!€BÜ˜b "Õ%rT   c                  ó¼   — t         j                  t         j                  }} d||dk(  <   dddœ}t        t	        t        «       «      |d¬«      j                  | |«       y )Nr5   r?   )r5   r?   )rB   Úestimator__CÚroc_auc)Úscoring)rD   rE   rF   r   r   r!   rH   )re   rf   Ú
parameterss      rR   Útest_gridsearchræ      sP   € ô �9‰9”d—k‘k€q€AØ€A€aˆ1�f�Ið #)¸&ÑA€JäÔ"¤3£5Ó)¨:¸yÔI×MÑMÈaÐQRÕSrT   c                  óÎ  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        d dd¬«      j                  ||«      }t        |j                  t        «      sJ ‚t        t        «       dd¬«      j                  ||«      }t        |j                  t        «      sJ ‚t        t        «       dd¬«      j                  ||«      }t        |j                  t        «      sJ ‚t        t        j                  t        j                  | ¬«      \  }}}}t        d dd¬«      j                  ||«      }t        |j                  t        «      sJ ‚t        t        «       dd¬«      j                  ||«      }t        |j                  t        «      sJ ‚t        t        «       dd¬«      j                  ||«      }t        |j                  t        «      sJ ‚y )Nr   r1   rÑ   rÒ   )r*   r   rD   rE   rF   r   rH   Ú
isinstanceÚ
estimator_r(   r   r…   r   r)   r"   r²   s         rR   Útest_estimatorrê   .  s¡  € ô ˜QÓ
€Cô (8Ü�	‰	”4—;‘;¨Sô(Ñ$€GˆV�W˜fô ! ¨a¸aÔ@×DÑDÀWÈgÓV€Hä�h×)Ñ)Ô+AÔBÐBÐBä ÜÓ ¨¸ôç	�cˆ'�7Óð ô �h×)Ñ)Ô+AÔBÐBÐBä ¤£°aÀaÔH×LÑLØ�ó€Hô �h×)Ñ)¬:Ô6Ð6Ð6ô (8Ü�‰”x—‘°Sô(Ñ$€GˆV�W˜fô   ¨Q¸QÔ?×CÑCÀGÈWÓU€Hä�h×)Ñ)Ô+@ÔAÐAÐAäÔ 5Ó 7ÀÐPQÔR×VÑVØ�ó€Hô �h×)Ñ)Ô+@ÔAÐAÐAä¤£¨a¸aÔ@×DÑDÀWÈgÓV€HÜ�h×)Ñ)¬3Ô/Ð/Ñ/rT   c                  ó  — t        t        t        d¬«      t        «       «      d¬«      } | j	                  t
        j                  t
        j                  «       t        | d   j                  d   d   j                  t        «      sJ ‚y )Nr5   )Úkr?   )r9   r   éÿÿÿÿ)r   r   r   r(   rH   rD   rE   rF   rè   Ústepsr2   Úint©rA   s    rR   Útest_bagging_with_pipelinerñ   [  sd   € Ü!Ü”k AÔ&Ô(>Ó(@ÓAÐPQô€Ið ‡M�M”$—)‘)œTŸ[™[Ô)Ü�i ‘l×(Ñ(¨Ñ,¨QÑ/×<Ñ<¼cÔBÐBÑBrT   c                 ó¦  — t        dd¬«      \  }}d }dD ]G  }|€t        || d¬«      }n|j                  |¬«       |j                  ||«       t	        |«      |k(  rŒGJ ‚ t        d| d	¬«      }|j                  ||«       t        |D �cg c]  }|j                  ‘Œ c}«      t        |D �cg c]  }|j                  ‘Œ c}«      k(  sJ ‚y c c}w c c}w )
Nr<   r5   ©Ú	n_samplesr2   )r®   é
   T)rB   r2   Ú
warm_start©rB   rõ   F)r
   r   r×   rH   rŸ   r    r2   )r2   re   rf   Úclf_wsrB   Ú	clf_no_wsÚtrees          rR   Útest_warm_startrû   c  sÞ   € ô  b°qÔ9�D€A€qà€FØò +ˆØˆ>Ü&Ø)¸ÐQUô‰Fð ×Ñ¨<ÐÔ8Ø�
‰
�1�aÔÜ�6‹{˜lÓ*Ð*Ð*ð+ô "Ø l¸uô€Ið ‡M�M�!�QÔä¨fÖ5 d�×!Ó!Ò5Ó6¼#Ø'0Ö1˜tˆ×	Ó	Ò1ó;ò ð ñ ùÒ5ùÚ1s   ÂC	Â*C
c                  ó  — t        dd¬«      \  } }t        dd¬«      }|j                  | |«       |j                  d¬«       t	        j
                  t        «      5  |j                  | |«       d d d «       y # 1 sw Y   y xY w)	Nr<   r5   ró   r®   T)rB   rö   r6   r÷   )r
   r   rH   r×   r¾   ÚraisesÚ
ValueError©re   rf   rÁ   s      rR   Ú$test_warm_start_smaller_n_estimatorsr   }  sg   € ä b°qÔ9�D€A€qÜ
¨°tÔ
<€CØ‡G�GˆAˆq„MØ‡N�N €NÔ"Ü	�‰”zÓ	"ñ Ø�‰��1Œ÷÷ ñ ús   ÁA7Á7B c                  ót  — t        dd¬«      \  } }t        | |d¬«      \  }}}}t        ddd¬	«      }|j                  ||«       |j	                  |«      }|d
z  }d}t        j                  t        |¬«      5  |j                  ||«       d d d «       t        ||j	                  |«      «       y # 1 sw Y   Œ%xY w)Nr<   r5   ró   é+   r1   r®   TéS   ©rB   rö   r2   r4   z;Warm-start fitting without increasing n_estimators does notrº   )	r
   r   r   rH   rI   r¾   r¿   rÀ   r-   )	re   rf   rK   rL   rM   rN   rÁ   Úy_predrÃ   s	            rR   Ú"test_warm_start_equal_n_estimatorsr  ‡  s¥   € ä b°qÔ9�D€A€qÜ'7¸¸1È2Ô'NÑ$€GˆV�W˜fä
¨°tÈ"Ô
M€CØ‡G�GˆG�WÔà�[‰[˜Ó €Fàˆs�N€GàL€HÜ	�‰”k¨Ô	2ñ "Ø�‰�˜Ô!÷"ä�v˜sŸ{™{¨6Ó2Õ3÷"ð "ús   Á7B.Â.B7c                  ón  — t        dd¬«      \  } }t        | |d¬«      \  }}}}t        ddd¬	«      }|j                  ||«       |j	                  d
¬«       |j                  ||«       |j                  |«      }t        d
dd¬	«      }|j                  ||«       |j                  |«      }	t        ||	«       y )Nr<   r5   ró   r  r1   r®   TiE  r  rõ   r÷   F)r
   r   r   rH   r×   rI   r,   )
re   rf   rK   rL   rM   rN   rø   rØ   rÁ   rÙ   s
             rR   Útest_warm_start_equivalencer  ™  s¨   € ô  b°qÔ9�D€A€qÜ'7¸¸1È2Ô'NÑ$€GˆV�W˜fä¨A¸$ÈTÔR€FØ
‡J�Jˆw˜Ô Ø
×Ñ 2ÐÔ&Ø
‡J�Jˆw˜Ô Ø	�‰˜Ó	€Bä
¨¸ÈDÔ
Q€CØ‡G�GˆG�WÔØ	�‰�VÓ	€Bä˜b "Õ%rT   c                  óÀ   — t        dd¬«      \  } }t        ddd¬«      }t        j                  t        «      5  |j                  | |«       d d d «       y # 1 sw Y   y xY w)Nr<   r5   ró   r®   T)rB   rö   r·   )r
   r   r¾   rý   rþ   rH   rÿ   s      rR   Ú$test_warm_start_with_oob_score_failsr
  ¬  sN   € ä b°qÔ9�D€A€qÜ
¨°tÀtÔ
L€CÜ	�‰”zÓ	"ñ Ø�‰��1Œ÷÷ ñ ús   ¸AÁAc                  ó   — t         j                  t         j                  }} t        j                  |«      }t        d¬«      }d}t        j                  t        |¬«      5  |j                  | ||¬«       d d d «       t        j                  t        j                  }} t        j                  |«      }t        d¬«      }d}t        j                  t        |¬«      5  |j                  | ||¬«       d d d «       y # 1 sw Y   Œ…xY w# 1 sw Y   y xY w)NF)r:   zYWhen fitting BaggingClassifier with sample_weight it is recommended to use bootstrap=Truerº   ©Úsample_weightzXWhen fitting BaggingRegressor with sample_weight it is recommended to use bootstrap=True)rD   rE   rF   r™   Ú	ones_liker   r¾   r¿   rÀ   rH   r…   r   )re   rf   r  rÁ   rÃ   Úregs         rR   Ú$test_warning_bootstrap_sample_weightr  ´  sÛ   € Ü�9‰9”d—k‘k€q€AÜ—L‘L “O€MÜ
 eÔ
,€Cð	2ð ô 
�‰”k¨Ô	2ñ 3Ø�‰��1 MˆÔ2÷3ô �=‰=œ(Ÿ/™/€q€AÜ—L‘L “O€MÜ
 UÔ
+€Cð	2ð ô 
�‰”k¨Ô	2ñ 3Ø�‰��1 MˆÔ2÷3ð 3÷3ð 3ú÷3ð 3ús   ÁC8ÃDÃ8DÄDc                  ó�  — t         j                  t         j                  }} t        d¬«      }t	        j
                  |«      dt        |«      z  z  }d}t        j                  t        |¬«      5  |j                  | ||¬«       d d d «       t        dd¬«      }t	        j
                  |«      }d|d	<   t        j                  d
«      }t        j                  t        |¬«      5  t        j                  t        d¬«      5  |j                  | ||¬«       d d d «       d d d «       y # 1 sw Y   Œ¢xY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w)Nr4   )r8   r?   zÁUsing the fractional value max_samples=1.0 when the total sum of sample weights is 0.5(\d*) results in a low number \(1\) of bootstrap samples. We recommend passing `max_samples` as an integer.rº   r  F)r:   r8   rí   zRmax_samples=151 must be <= n_samples=150 to be able to sample without replacement.z1When fitting BaggingClassifier with sample_weight)rD   rE   rF   r   r™   r  rŸ   r¾   r¿   rÀ   rH   ÚreÚescaperý   rþ   )re   rf   rÁ   r  Úexpected_msgs        rR   Ú=test_invalid_sample_weight_max_samples_bootstrap_combinationsr  Ê  s  € Ü�9‰9”d—k‘k€q€Aô ¨Ô
,€CÜ—L‘L “O q¬3¨q«6¡zÑ2€Mð	<ð ô 
�‰”k¨Ô	6ñ 3Ø�‰��1 MˆÔ2÷3ô
  e¸Ô
=€CÜ—L‘L “O€MØ€M�"ÑÜ—9‘9ð	ó€Lô 
�‰”z¨Ô	6ñ 7Ü�\‰\ÜÐRô
ñ 	7ð �G‰G�A�q¨ˆGÔ6÷	7÷7ð 7÷3ð 3ú÷	7ð 	7ú÷7ð 7ús0   Á.D$Ã"D<Ã>D0ÄD<Ä$D-Ä0D9	Ä5D<Ä<Ec                   ó   — e Zd ZdZdd„Zd„ Zy)ÚEstimatorAcceptingSampleWeightz&Fake estimator accepting sample_weightNc                 ó.   — || _         || _        || _        y©zRecord values passed during fitN)ÚX_Úy_Úsample_weight_)rd   re   rf   r  s       rR   rH   z"EstimatorAcceptingSampleWeight.fití  s   € àˆŒØˆŒØ+ˆÕrT   c                  ó   — y r^   rC   r›   s     rR   rI   z&EstimatorAcceptingSampleWeight.predictó  ó   € ØrT   r^   ©rj   rk   rl   rm   rH   rI   rC   rT   rR   r  r  ê  s   „ Ù0ó,órT   r  c                   ó   — e Zd ZdZd„ Zd„ Zy)ÚEstimatorRejectingSampleWeightz&Fake estimator rejecting sample_weightc                 ó    — || _         || _        yr  )r  r  r—   s      rR   rH   z"EstimatorRejectingSampleWeight.fitú  s   € àˆŒØˆ�rT   c                  ó   — y r^   rC   r›   s     rR   rI   z&EstimatorRejectingSampleWeight.predictÿ  r  rT   Nr  rC   rT   rR   r!  r!  ÷  s   „ Ù0òó
rT   r!  Úbagging_classÚaccept_sample_weightÚmetadata_routingr8   rõ   gš™™™™™é?c                 óü  — t        j                  d«      j                  dd«      }t        j                  ddgd«      }t        j                  d«      }d|d<   d|d<   |rt        «       }n
t        «       }|j                  \  }}	t        |t        «      rt        ||j                  «       z  «      }
n|}
t        |¬	«      5  |r|r|j                  d
¬«      } | ||d¬«      }|j                  |||¬«       t        |j                   |j"                  «      D �]P  \  }}t        j$                  ||¬«      }t        |«      t'        |«      cxk(  r|
k(  sJ ‚ J ‚t        j(                  |ddg«      j+                  «       sJ ‚|r||j,                  j                  ||	fk(  sJ ‚|j.                  j                  |fk(  sJ ‚t1        |j,                  |«       t1        |j.                  |«       t1        |j2                  |«       Œæ|j,                  j                  |
|	fk(  sJ ‚|j.                  j                  |
fk(  sJ ‚t1        |j,                  ||   «       t1        |j.                  ||   «       �ŒS 	 d d d «       y # 1 sw Y   y xY w)Nrµ   rí   r5   r   r„   r6   r?   r®   ©Úenable_metadata_routingTr  )r8   rB   )Ú	minlength)r™   ÚarangeÚreshapeÚrepeatÚzerosr  r!  r’   rè   Úfloatrï   r°   r   Úset_fit_requestrH   rG   rt   Úestimators_samples_ÚbincountrŸ   Úisinru   r  r  r+   r  )r$  r%  r&  r8   re   rf   r  Úbase_estimatorrô   Ú
n_featuresÚexpected_integer_max_samplesÚbaggingrA   ÚsamplesÚcountss                  rR   Ú%test_draw_indices_using_sample_weightr:    s7  € ô 	�	‰	�#‹×Ñ˜r 1Ó%€AÜ
�	‰	�1�a�&˜"Ó€Aä—H‘H˜S“M€MØ€M�!ÑØ€M�!ÑÙÜ7Ó9‰ä7Ó9ˆàŸG™GÑ€Iˆzä�+œuÔ%ô (+¨;¸×9JÑ9JÓ9LÑ+LÓ'MÑ$à'2Ð$ä	Ð0@Ô	Añ :áÑ 4Ø+×;Ñ;È$Ð;ÓOˆNÙ ¸KÐVWÔXˆØ�‰�A�q¨ˆÔ6Ü"% g×&9Ñ&9¸7×;VÑ;VÓ"Wó 	:ÑˆI�wÜ—[‘[ °IÔ>ˆFÜ�v“;¤# g£,ÔNÐ2NÒNÐNÑNÐNÐNä—7‘7˜7 Q¨ FÓ+×/Ñ/Ô1Ð1Ð1Ù#à —|‘|×)Ñ)¨i¸Ð-DÒDÐDÐDØ —|‘|×)Ñ)¨i¨\Ò9Ð9Ð9Ü 	§¡¨aÔ0Ü 	§¡¨aÔ0Ü 	× 8Ñ 8¸&ÕAð !—|‘|×)Ñ)Ð.JÈJÐ-WÒWÐWÐWØ —|‘|×)Ñ)Ð.JÐ-LÒLÐLÐLÜ 	§¡¨a°©jÔ9Ü 	§¡¨a°©jÖ9ñ#	:÷:÷ :ñ :ús   Â>F*I2É2I;c                  ó"  — t        dd¬«      \  } }t        dd¬«      }|j                  | |«       |j                  ddd¬	«       |j                  | |«       t	        j
                  t        «      5  t        |d
«       d d d «       y # 1 sw Y   y xY w)Nrµ   r5   ró   r®   T)rB   r·   Frõ   )rö   r·   rB   r½   )r
   r   rH   r×   r¾   rý   ÚAttributeErrorrs   rÿ   s      rR   Ú$test_oob_score_removed_on_warm_startr=  9  su   € Ü c¸Ô:�D€A€qä
¨°dÔ
;€CØ‡G�GˆAˆq„Mà‡N�N˜d¨eÀ"€NÔEØ‡G�GˆAˆq„Mä	�‰”~Ó	&ñ #Ü��\Ô"÷#÷ #ñ #ús   Á/BÂBc                  óÊ   — t        dd¬«      \  } }t        t        «       dddd¬«      }|j                  | |«      j                  |j                  | |«      j                  k(  sJ ‚y )NéÈ   r5   ró   r3   T)r8   r9   r·   r2   )r
   r   r   rH   r½   ©re   rf   r7  s      rR   Útest_oob_score_consistencyrA  F  sb   € ô  c¸Ô:�D€A€qÜÜÓØØØØô€Gð �;‰;�q˜!Ó×'Ñ'¨7¯;©;°q¸!Ó+<×+GÑ+GÒGÐGÑGrT   c                  ó  — t        dd¬«      \  } }t        t        «       dddd¬«      }|j                  | |«       |j                  }|j
                  }|j                  }t        |«      t        |«      k(  sJ ‚t        |d   «      t        | «      dz  k(  sJ ‚|d   j                  j                  d	k(  sJ ‚d}||   }||   }||   }	| |   d d …|f   }
||   }|	j                  }|	j                  |
|«       |	j                  }t        ||«       y )
Nr?  r5   ró   r3   F)r8   r9   r2   r:   r   r?   r   )r
   r   r   rH   r1  r¥   rt   rŸ   ÚdtypeÚkindÚcoef_r,   )re   rf   r7  Úestimators_samplesÚestimators_featuresrP   Úestimator_indexÚestimator_samplesÚestimator_featuresrA   rK   rM   Ú
orig_coefsÚ	new_coefss                 rR   Útest_estimators_samplesrM  T  s1  € ô  c¸Ô:�D€A€qÜÜÓØØØØô€Gð ‡K�K��1Ôð !×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Ø‡M�M�'˜7Ô#Ø—‘€Iä˜j¨)Õ4rT   c                  ó  — t        «       } | j                  | j                  }}t        t	        d¬«      t        «       «      }t        |dd¬«      }|j                  ||«       |j                  d   j                  d   d   j                  j                  «       }|j                  d   }|j                  d   }|j                  d   }||   d d …|f   }	||   }
|j                  |	|
«       t        |j                  d   d   j                  |«       y )Nr?   )Ún_componentsr3   r   )rA   r8   r2   rí   r5   )r	   rE   rF   r   r    r   r   rH   rt   rî   rE  Úcopyr1  r¥   r-   )rD   re   rf   Úbase_pipelinerÁ   Úpipeline_estimator_coefrA   Úestimator_sampleÚestimator_featurerK   rM   s              rR   Ú%test_estimators_samples_deterministicrU  |  sþ   € ô ‹;€DØ�9‰9�d—k‘k€q€Aä!Ü¨AÔ.Ô0BÓ0Dó€Mô  mÀÐSTÔ
U€CØ‡G�GˆAˆq„MØ!Ÿo™o¨aÑ0×6Ñ6°rÑ:¸1Ñ=×CÑC×HÑHÓJÐà—‘ Ñ"€IØ×.Ñ.¨qÑ1ÐØ×0Ñ0°Ñ3ÐàÐ!Ñ"¢AÐ'8Ð$8Ñ9€GØÐ Ñ!€Gà‡M�M�'˜7Ô#Ü�y—‘ rÑ*¨1Ñ-×3Ñ3Ð5LÕMrT   c                  ó¢   — d} t        d| z  d¬«      \  }}t        t        «       | dd¬«      }|j                  ||«       |j                  | k(  sJ ‚y )Nrµ   r?   r5   ró   r3   )r8   r9   r2   )r
   r   r   rH   Ú_max_samples)r8   re   rf   r7  s       rR   Útest_max_samples_consistencyrX  —  sZ   € ð €KÜ a¨+¡oÀAÔF�D€A€qÜÜÓØØØô	€Gð ‡K�K��1ÔØ×Ñ ;Ò.Ð.Ñ.rT   c                  óH  — d} dgdgdggdz  }g d¢dz  }g d¢dz  }g d¢dz  }t        d| ¬	«      j                  ||«      j                  }t        d| ¬	«      j                  ||«      j                  }t        d| ¬	«      j                  ||«      j                  }||g||gk(  sJ ‚y )
Nr®   rí   r   r5   )ÚAÚBÚC)rí   r   r5   )r   r5   r?   T)r·   r2   )r   rH   r½   )r2   re   ÚY1ÚY2ÚY3Úx1Úx2Úx3s           rR   Ú!test_set_oob_score_label_encodingrc  ¦  sµ   € ð €LØ
ˆ�ˆs�Q�CÐ˜1Ñ€AÚ	˜1Ñ	€BÚ	�a‰€BÚ	�Q‰€Bä D°|ÔDß	‰ˆQ�‹ß	‰ð ô 	 D°|ÔDß	‰ˆQ�‹ß	‰ð ô 	 D°|ÔDß	‰ˆQ�‹ß	‰ð ð
 �ˆ8˜˜B�xÒÐÑrT   c                 ó^   — | j                  dd¬«      } d| t        j                  | «       <   | S )Nr/  T)rP  r   )Úastyper™   Úisfinite)re   s    rR   Úreplacerg  À  s-   € Ø	�‰�˜tˆÓ$€AØ€A„r‡{�{�1ƒ~€oÑØ€HrT   c            	      óˆ  — t        j                  g d¢g d¢dt         j                  dgdt         j                  dgdt         j                   dgg«      } t        j                  g d¢«      t        j                  g d¢g d¢g d¢g d¢g d¢g«      g}|D �]  }t	        «       }t        t        t        «      |«      }|j                  | |«      j                  | «       t        |«      }|j                  | |«      j                  | «      }|j                  |j                  k(  sJ ‚t	        «       }t        |«      }t        j                  t        «      5  |j                  | |«       d d d «       t        |«      }t        j                  t        «      5  |j                  | |«       d d d «       �Œ y # 1 sw Y   ŒLxY w# 1 sw Y   �Œ1xY w)N©r5   rÑ   r®   ©r?   Né   r?   rk  )r?   rÑ   rÑ   rÑ   rÑ   )r?   r5   é	   )rÑ   rk  é   )r™   ÚarrayÚnanÚinfr)   r   r   rg  rH   rI   r   r’   r¾   rý   rþ   )re   Úy_valuesrf   Ú	regressorÚpipelineÚbagging_regressorÚy_hats          rR   Ú*test_bagging_regressor_with_missing_inputsrv  Æ  s  € ä
�‰âÚØ”—‘˜ˆNØ”—‘˜ˆNØ”—‘�˜ˆOð	
ó	€Aô 	�‰’Ó!Ü
�‰âÚÚÚÚðó	
ð€Hð ó (ˆÜ)Ó+ˆ	Ü Ô!4´WÓ!=¸yÓIˆØ�‰�Q˜Ó×"Ñ" 1Ô%Ü,¨XÓ6ÐØ!×%Ñ% a¨Ó+×3Ñ3°AÓ6ˆØ�w‰w˜%Ÿ+™+Ò%Ð%Ð%ô *Ó+ˆ	Ü  Ó+ˆÜ�]‰]œ:Ó&ñ 	Ø�L‰L˜˜AÔ÷	ä,¨XÓ6ÐÜ�]‰]œ:Ó&ñ 	(Ø×!Ñ! ! QÔ'÷	(ñ 	(ñ(÷	ð 	ú÷	(ñ 	(ús   ÅF+ÆF7Æ+F4	Æ7G	c            	      ót  — t        j                  g d¢g d¢dt         j                  dgdt         j                  dgdt         j                   dgg«      } t        j                  g d¢«      }t	        «       }t        t        t        «      |«      }|j                  | |«      j                  | «       t        |«      }|j                  | |«       |j                  | «      }|j                  |j                  k(  sJ ‚|j                  | «       |j                  | «       t	        «       }t        |«      }t        j                  t         «      5  |j                  | |«       d d d «       t        |«      }t        j                  t         «      5  |j                  | |«       d d d «       y # 1 sw Y   ŒIxY w# 1 sw Y   y xY w)Nri  rj  r?   rk  )rÑ   rk  rk  rk  rk  )r™   rn  ro  rp  r(   r   r   rg  rH   rI   r   r’   rX   rW   r¾   rý   rþ   )re   rf   Ú
classifierrs  Úbagging_classifierru  s         rR   Ú+test_bagging_classifier_with_missing_inputsrz  ï  sh  € ä
�‰âÚØ”—‘˜ˆNØ”—‘˜ˆNØ”—‘�˜ˆOð	
ó	€Aô 	�‰’Ó!€AÜ'Ó)€JÜÔ0´Ó9¸:ÓF€HØ‡L�L��AÓ×Ñ˜qÔ!Ü*¨8Ó4ÐØ×Ñ˜1˜aÔ Ø×&Ñ& qÓ)€EØ�7‰7�e—k‘kÒ!Ð!Ð!Ø×(Ñ(¨Ô+Ø×$Ñ$ QÔ'ô (Ó)€JÜ˜ZÓ(€HÜ	�‰”zÓ	"ñ Ø�‰�Q˜Ô÷ä*¨8Ó4ÐÜ	�‰”zÓ	"ñ %Ø×Ñ˜q !Ô$÷%ð %÷ð ú÷%ð %ús   ÅF"ÆF.Æ"F+Æ.F7c                  ó¸   — t        j                  ddgddgg«      } t        j                  ddg«      }t        t        «       dd¬«      }|j	                  | |«       y )Nr5   r?   rÑ   r6   r   g333333Ó?)r9   r2   )r™   rn  r   r   rH   r@  s      rR   Útest_bagging_small_max_featuresr|    sR   € ô 	�‰�1�a�&˜1˜a˜&Ð!Ó"€AÜ
�‰�!�Q�Ó€AäÔ 2Ó 4À3ÐUVÔW€GØ‡K�K��1ÕrT   c                 óX  — t         j                  j                  | «      }|j                  dd«      }t        j                  d«      } G d„ dt
        «      }t         |«       dd¬«      }|j                  ||«       t        |j                  d   j                  |j                  d   «       y )Né   r6   c                   ó   — e Zd ZdZd„ Zy)ú8test_bagging_get_estimators_indices.<locals>.MyEstimatorz7An estimator which stores y indices information at fit.c                 ó   — || _         y r^   )Ú_sample_indicesr—   s      rR   rH   z<test_bagging_get_estimators_indices.<locals>.MyEstimator.fit%  s
   € Ø#$ˆDÕ rT   N)rj   rk   rl   rm   rH   rC   rT   rR   ÚMyEstimatorr€  "  s
   „ ÙEó	%rT   rƒ  r5   r   )rA   rB   r2   )r™   ÚrandomÚRandomStateÚrandnr+  r)   r   rH   r-   rt   r‚  r1  )Úglobal_random_seedrJ   re   rf   rƒ  rÁ   s         rR   Ú#test_bagging_get_estimators_indicesrˆ    sˆ   € ô
 �)‰)×
Ñ
Ð 2Ó
3€CØ�	‰	�"�aÓ€AÜ
�	‰	�"‹€Aô%Ô+ô %ô ¡[£]ÀÐQRÔ
S€CØ‡G�GˆAˆq„Mä�s—‘ qÑ)×9Ñ9¸3×;RÑ;RÐSTÑ;UÕVrT   zbagging, expected_allow_nanr5   r=   c                 óV   — | j                  «       j                  j                  |k(  sJ ‚y)z*Check that bagging inherits allow_nan tag.N)Ú__sklearn_tags__Ú
input_tagsÚ	allow_nan)r7  Úexpected_allow_nans     rR   Útest_bagging_allow_nan_tagrŽ  .  s(   € ð ×#Ñ#Ó%×0Ñ0×:Ñ:Ð>PÒPÐPÑPrT   r(  Úmodelr÷   )rA   rB   c                 ó`   — | j                  t        j                  t        j                  «       y)zAMake sure that metadata routing works with non-default estimator.N©rH   rD   rE   rF   ©r�  s    rR   Ú"test_bagging_with_metadata_routingr“  @  s   € ð 
‡I�IŒd�i‰iœŸ™Õ%rT   zsub_estimator, caller, calleerI   rX   rW   c                 ó–  — t        j                  ddgddgddgg«      }g d¢}dgd}}t        «       } | |¬«      }d	|z   d
z   }	 t        ||	«      dd¬«       t	        |¬«      }
|
j                  ||«        t        |
|«      t        j                  ddgddgddgg«      ||¬«       t        |«      sJ ‚|D ]  }t        |||||¬«       Œ y)a‘  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?   r5   r6   rk  )r5   r?   rÑ   Úa)ÚregistryÚset_Ú_requestT)r  Úmetadatarð   rÑ   )re   r  r™  )Úobjrw   Úparentr  r™  N)r™   rn  r&   rs   r   rH   rŸ   r'   )Úsub_estimatorÚcallerÚcalleere   rf   r  r™  r–  rA   Úset_callee_requestr7  s              rR   Ú3test_metadata_routing_with_dynamic_method_selectionr   Q  së   € ô0 	�‰�1�a�&˜1˜a˜& 1 a &Ð)Ó*€AÚ€AØ ˜c 3�8€MÜ‹{€HÙ xÔ0€IØ &™¨:Ñ5ÐØ*„GˆIÐ)Ó*¸ÈÕMä¨)Ô4€GØ‡K�K��1ÔØ„GˆG�VÓÜ
�(‰(�Q˜�F˜Q ˜F Q¨ FÐ+Ó
,Ø#Øõô ˆxŒ=Ðˆ=Øò 
ˆ	ÜØØØØ'Øö	
ñ
rT   c                 ó`   — | j                  t        j                  t        j                  «       y)z^Make sure that we still can use an estimator that does not implement the
    metadata routing.Nr‘  r’  s    rR   Ú-test_bagging_without_support_metadata_routingr¢  ˆ  s   € ð 
‡I�IŒd�i‰iœŸ™Õ%rT   )é*   )|rm   r  Ú	itertoolsr   r   r”   Únumpyr™   r¾   Úsklearnr   Úsklearn.baser   Úsklearn.calibrationr   Ú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,   r-   Úsklearn.utils.fixesr.   r/   rJ   rD   ÚpermutationrF   ÚsizeÚpermrE   r…   rS   ÚmarkÚparametrizer‚   r†   r�   r�   r£   r¨   r³   rÄ   rÇ   rË   rÏ   Úthread_unsaferÞ   rà   ræ   rê   rñ   rû   r   r  r  r
  r  r  r  r!  r:  r=  rA  rM  rU  rX  rc  rg  rv  rz  r|  rˆ  rŽ  r“  r   r¢  rC   rT   rR   ú<module>r¿     sß  ðñó 
ß $ã Û Û å "Ý &Ý 6ß GÑ Gß 9÷	÷ 	ó 	õ 2ß ?ß QÑ Qß GÝ *ß <Ý <ß  ÷õ ÷ GÝ ,÷ñ ÷
 ?á˜Ó€ñ ƒ{€Ø
‡��t—{‘{×'Ñ'Ó(€Ø�I‰I�d‰O€„	Ø�k‰k˜$Ñ€„ñ ‹?€Ø
‡��x—‘×+Ñ+Ó,€Ø—‘˜dÑ#€„Ø—/‘/ $Ñ'€„ò0ðB ‡�×ÑØ&ÙØ˜Ñ'ð  #Ø !Ø!Ø&*ñ	ð  #Ø !Ø!Ø&*ñ	ð ¨UÈ$ÑOØ¨dÈ%ÑPð	
ò  	Oó%óñ.'2ó/ð.'2òTð8 ‡�×ÑÐ+¨^¸nÑ-LÓMñ5Aó Nð5Aôp#˜ô #ò'9òTEò8 
òF%&òP!#òHJò(Oð ‡�×Ññ&6ó ð&6ðV ‡�×Ññ&ó ð&ò4	Tð ‡�×Ññ)0ó ð)0òXCóò4ò4ò$&ò&ò3ò,7ô@
 ]ô 
ô	 ]ô 	ð ‡�×Ñ˜Ð+;Ð=NÐ*OÓPØ‡�×ÑÐ/°%¸°Ó?Ø‡�×ÑÐ+¨e°T¨]Ó;Ø‡�×Ñ˜¨¨S¨	Ó2ñ/:ó 3ó <ó @ó Qð/:òd
#òHò%5òPNò6/ò ò4ò&(òR%ò@òWð* ‡�×ÑØ!á	Ñ9À1ÔEÓ	FÈÐMÙ	Ñ7ÀÔCÓ	DÀdÐKÙ	Ñ-Ó/Ó	0°%Ð8Ù	™#›%Ó	  %Ð(ð	óñQóðQñ ¨Ô-Ø‡�×ÑØáÙ,¸!Ô<È1ô	
ñ 	Ù+¸Ô;È!ô	
ð	ó
ñ&ó
ó .ð&ð
 ‡�×ÑØ#à	/°¸IÐFà5ØØð	
ð
 
,Ð-@À)ÐLðóñ ¨Ô-ñ#
ó .óð#
ðT ‡�×ÑØáÙ(°aÔ8Øô	
ñ 	Ñ#4À!Ô#DÐSTÔUðó	ñ&ó	ñ&rT   