Ë
    uwj<Ÿ  ã                   ó„  — d Z ddl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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! 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/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5 ddl6m7Z7m8Z8m9Z9m:Z:m;Z; ddl<m=Z=m>Z> ddl?m@Z@ ddlAmBZBmCZCmDZD ddlEmFZFmGZG  e@d«      ZH e«       ZIeHj•                  eIj–                  j˜                  «      ZMeIjœ                  eM   eI_N        eIj–                  eM   eI_K         e«       ZOeHj•                  eOj–                  j˜                  «      ZMeOjœ                  eM   eO_N        eOj–                  eM   eO_K        d„ ZPe	j¢                  j¥                  d eeGeFz   dddddœdddddœdddd œdddd!œgg d"¢«      «      d#„ «       ZSd$„ ZTe	j¢                  j¥                  d%eGeFz   «      d&„ «       ZU G d'„ d(e«      ZVd)„ ZWd*„ ZXd+„ ZYd,„ ZZd-„ Z[d.„ Z\d/„ Z]d0„ Z^e	j¢                  j¾                  d1„ «       Z`d2„ Zae	j¢                  j¾                  d3„ «       Zbd4„ Zcdbd5„Zdd6„ Zed7„ Zfd8„ Zgd9„ Zhd:„ Zid;„ Zj G d<„ d=e«      Zk G d>„ d?e«      Zle	j¢                  j¥                  d@eeg«      e	j¢                  j¥                  dAddg«      e	j¢                  j¥                  dBddg«      e	j¢                  j¥                  dCdDdEg«      dF„ «       «       «       «       ZmdG„ ZndH„ ZodI„ ZpdJ„ ZqdK„ ZrdL„ ZsdM„ ZtdN„ ZudO„ ZvdP„ ZwdQ„ ZxdR„ Zye	j¢                  j¥                  dS e edT¬U«      «      df e edT¬U«      «      df e e#«       «      df e e5«       «      dfg«      dV„ «       Zz ed¬W«      e	j¢                  j¥                  dX e edT¬Y«      dT¬Z«       e edT¬Y«      dT¬Z«      g«      d[„ «       «       Z{e	j¢                  j¥                  d\e9d]d]fe8d^d_fe7d^d]fg«       ed¬W«      d`„ «       «       Z|e	j¢                  j¥                  dX e edT¬Y«      dT¬Z«       e edT¬Y«      dT¬Z«      g«      da„ «       Z}y)czE
Testing for the bagging ensemble module (sklearn.ensemble.bagging).
é    N)ÚcycleÚproduct)Úconfig_context)ÚBaseEstimator)Úload_diabetesÚ	load_irisÚmake_hastie_10_2)ÚDummyClassifierÚDummyRegressor)ÚAdaBoostClassifierÚAdaBoostRegressorÚBaggingClassifierÚBaggingRegressorÚHistGradientBoostingClassifierÚHistGradientBoostingRegressorÚRandomForestClassifierÚRandomForestRegressor)Ú_get_n_samples_bootstrap)Ú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	            úh/var/www/html/newmanjeet/manjet/venv/lib/python3.12/site-packages/sklearn/ensemble/tests/test_bagging.pyÚtest_classificationrS   H   sÛ   € ä
˜QÓ
€CÜ'7Ü�	‰	”4—;‘;¨Sô(Ñ$€GˆV�W˜fô à ˜:Ø ˜FØ ˜Ø#'¨ -ñ		
ó€Dð 	ÜÓÜ˜BÔÜ¨Ô+ÜÓÜ‹ð€Jô ! ¤u¨ZÓ'8Ö9Ñˆ�	Üð 	
ØØØñ	
ð ñ		
÷
 ‰#ˆg�wÓ
§¡¨¥ñ :ó    z sparse_container, params, methodr3   r?   Tr7   r4   r6   F©r9   r:   r;   ©r8   r:   r;   )rI   Úpredict_probaÚpredict_log_probaÚdecision_functionc                 ól  —  G d„ dt         «      }t        d«      }t        t        t        j
                  «      t        j                  |¬«      \  }}}} | |«      }	 | |«      }
t        d
 |dd¬«      dd	œ|¤Žj                  |	|«      } t        ||«      |
«      }t        d
 |d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 )ú-test_sparse_classification.<locals>.CustomSVCú7SVC 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   z1test_sparse_classification.<locals>.CustomSVC.fit†   ó!   ø€ Ü‰G‰K˜˜1ÔÜ" 1›gˆDŒOØˆKrT   ©Ú__name__Ú
__module__Ú__qualname__Ú__doc__rH   Ú__classcell__©rh   s   @rR   Ú	CustomSVCr\   ƒ   ó   ø„ ÙE÷	ð 	rT   rq   r   r1   ÚlinearÚovr)ÚkernelÚdecision_function_shaper5   ©rA   r2   rC   )r!   r*   r   r   rD   rE   rF   r   rH   Úgetattrr,   rb   Úestimators_rc   Úall)Úsparse_containerrQ   Úmethodrq   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‡   i   sR  € ô4”Cô ô ˜QÓ
€CÜ'7ÜŒd�i‰iÓœ$Ÿ+™+°Cô(Ñ$€GˆV�W˜fñ & gÓ.€NÙ$ VÓ,€Mä)ð Ù 8ÀUÔKØñð ñ÷ 
�cˆ.˜'Ó"ð	 ð
 8”WÐ.°Ó7¸ÓF€Nô )ð Ù 8ÀUÔKØñð ñ÷ 
�cˆ'�7Óð	 ð
 6”GÐ,¨fÓ5°fÓ=€MÜ˜n¨mÔ<ä�~Ó&€KØ#4×#@Ò#@ÓAÑ#@˜aˆQ�\‹\Ð#@€EÐAä©%Ó0©% Q��[Ó ¨%Ñ0Ô1Ð1Ñ1ùò Bùâ0s   Ã8D,ÄD1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   rw   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   r{   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>.CustomSVRr]   c                 óH   •— t         ‰| �  ||«       t        |«      | _        | S r_   r`   rd   s      €rR   rH   z-test_sparse_regression.<locals>.CustomSVR.fitÐ   ri   rT   rj   rp   s   @rR   Ú	CustomSVRrŽ   Í   rr   rT   r�   r3   r?   Tr7   r4   r6   FrU   rV   r5   rw   rC   )r*   r   rŠ   rE   rF   r"   r   rH   rI   rb   ry   rc   r,   rz   )r{   rJ   rK   rL   rM   rN   r�   Úparameter_setsr}   r~   rQ   r   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Û ˆä,ð 
Ù“k°ñ
Ø5;ñ
ç
‰#ˆn˜gÓ
&ð 	ð +×2Ñ2°=ÓAˆô ÐM¡y£{ÀÑMÀfÑMß‰S�˜'Ó"ß‰W�V‹_ð 	ô ˜>Ó*ˆØ'8×'DÒ'DÓEÑ'D !�—“Ð'DˆÐEä! .°-Ô@Ü©eÓ4©e¨�A˜Ó$¨eÑ4Ô5Ð5Ð5Ü! .°-Õ@ñ' !ùò 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_©re   rf   rg   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—   ©re   rf   s     rR   rI   zDummySizeEstimator.predict  s   € Ü�w‰w�q—w‘w˜q‘zÓ"Ð"rT   N)rk   rl   rm   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”   ry   r˜   r—   Úappendr›   ÚlenÚset)rJ   rK   rL   rM   rN   rA   ÚensembleÚtraining_hashs           rR   Útest_bootstrap_samplesr¨     sr  € ä
˜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¯=©=¸Ñ+;Ò;Ð;Ð;Ø×Ñ˜Y×5Ñ5Õ6ð *ô Œ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ˆÜ�}‰}×"Ñ" 1Ñ%¬¯©°8Ó)<×)BÑ)BÀ1Ñ)EÓEÐEÐEð 2ô  Ü'Ó)ØØØô	÷
 
�cˆ'�7Óð ð ×1Ô1ˆÜ�}‰}×"Ñ" 1Ñ%¬¯	©	°(Ó(;×(AÑ(AÀ!Ñ(DÓDÐDÐDñ 2rT   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Úinvalidrw   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  sP  € ä
˜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ô	
÷/ 
8×	7Ñ	7ús   ÁEF9Æ9Gc            	      óð  — t        d«      } t        t        j                  t        j                  | ¬«      \  }}}}t        «       t        «       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   é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   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ô -Ó.´³Ó6ˆ	ÜØØØØØô
÷ ‰#ˆg�wÓ
ð 	ð —Y‘Y˜v vÓ.ˆ
ä�: §¡Ñ.Ó/°#Ò5Ð5Ð5ðJð 	ô �\‰\œ+¨XÖ6Ü#Ø#ØØØØ ôˆCð �G‰G�G˜WÔ%÷ 7Ð6ñ% 7÷$ 7Ð6ús   Â>#C,Ã,C5	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ÜÜ+Ó-ØØØØô
ˆð 	�‰�˜'Ô"÷ 
3×	2Ñ	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   )rf   rg   Ú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Ø   rt   )rv   )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á   Ô  sj  € ä'7Ü�	‰	”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   )rf   rg   Ú
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ô   U  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   rf   rg   Úclf_wsrB   Ú	clf_no_wsÚtrees          rR   Útest_warm_startrþ   ]  sá   € ô  b°qÔ9�D€A€qà€FÛˆØˆ>Ü&Ø)¸ÐQUô‰Fð ×Ñ¨<ÐÔ8Ø�
‰
�1�aÔÜ�6‹{˜lÓ*Ð*Ð*ð  ô "Ø l¸uô€Ið ‡M�M�!�QÔä©fÓ5©f d�×!Ó!¨fÑ5Ó6¼#Ù'0Ó1¡y˜tˆ×	Ó	 yÑ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©rf   rg   rÆ   s      rR   Ú$test_warm_start_smaller_n_estimatorsr  w  s^   € ä 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-   )	rf   rg   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Ø�‰�˜Ô!÷ 
3ä�v˜sŸ{™{¨6Ó2Õ3÷ 
3Ð	2ú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,   )
rf   rg   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  ¦  sE   € ä 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   )rf   rg   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Ø�‰��1 MˆÔ2÷ 
3ô �=‰=œ(Ÿ/™/€q€AÜ—L‘L “O€MÜ
 UÔ
+€Cð	2ð ô 
�‰”k¨Ö	2Ø�‰��1 MˆÔ2÷ 
3Ð	2÷ 
3Ð	2ú÷ 
3Ð	2ú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  )rf   rg   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Ø�‰��1 MˆÔ2÷ 
7ô
  e¸Ô
=€CÜ—L‘L “O€MØ€M�"ÑÜ—9‘9ð	ó€Lô 
�‰”z¨Ö	6Ü�\‰\ÜÐRö
ð �G‰G�A�q¨ˆGÔ6÷
÷ 
7Ð	6÷ 
7Ð	6ú÷
ð 
ú÷ 
7Ð	6ú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_)re   rf   rg   r  s       rR   rH   z"EstimatorAcceptingSampleWeight.fitç  s   € àˆŒØˆŒØ+ˆÕrT   c                  ó   — y r_   rC   r    s     rR   rI   z&EstimatorAcceptingSampleWeight.predictí  ó   € ØrT   r_   ©rk   rl   rm   rn   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   ry   Úestimators_samples_Úbincountr¤   Úisinrz   r  r  r+   r  )r'  r(  r)  r8   rf   rg   r  Úbase_estimatorr÷   Ú
n_featuresÚexpected_integer_max_samplesÚbaggingrA   ÚsamplesÚcountss                  rR   Ú%test_draw_indices_using_sample_weightr=  ý  s+  € ô 	�	‰	�#‹×Ñ˜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ñ# #X÷ 
B×	AÑ	Aús   Â>F*I2É2I;c                  ó\  — d\  } }}t        | ||«      | k(  sJ ‚d\  } }}t        | ||«      |k(  sJ ‚d\  } }}t        | ||«      dk(  sJ ‚d\  } }}d}t        j                  t        |¬«      5  t        | ||«      t	        || z  «      k(  sJ ‚	 d d d «       d\  } }}t        j                  t        |¬«      5  t        | ||«      dk(  sJ ‚	 d d d «       d}t
        j                  j                  d	«      }d
d|j                  d
¬«      }}} t        j                  t        |¬«      5  t        | ||«      t	        ||j                  «       z  «      k(  sJ ‚	 d d d «       t        j                  d«      }t        j                  «       5  t        j                  d«       d\  } }}t        | ||«      |k(  sJ ‚dd|j                  d¬«      }}} t        | ||«      t	        ||j                  «       z  «      k(  sJ ‚	 d d d «       y # 1 sw Y   �ŒrxY w# 1 sw Y   �ŒBxY w# 1 sw Y   ŒÆxY w# 1 sw Y   y xY w)N)rø   NÚnot_used)rø   r³   r?  )rø   çñhãˆµøä>Nr5   )rø   g…ëQ¸å?Nz?.+the number of samples.+low number.+max_samples.+as an integerr¿   zI.+the total sum of sample weights.+low number.+max_samples.+as an integerr   i@B r@  )ÚsizerÖ   Úerror)rº   é   Nrº   r3   )r   rÃ   rÄ   rÅ   rò   rž   ÚrandomÚdefault_rngÚuniformrµ   rŸ   ÚwarningsÚcatch_warningsÚsimplefilter)r÷   r8   r  Úwarning_msgÚwarning_msg_with_weightsrJ   s         rR   Útest_get_n_samples_bootstraprL  3  sJ  € Ø,@Ñ)€Iˆ{˜MÜ# I¨{¸MÓJÈiÒWÐWÐWà,=Ñ)€Iˆ{˜Mä  ¨K¸ÓGÈ;ÒVðØVð -;Ñ)€Iˆ{˜MÜ# I¨{¸MÓJÈaÒOÐOÐOà,:Ñ)€Iˆ{˜MØS€KÜ	�‰”k¨Ö	5Ü'¨	°;ÀÓNÔRUØ˜)Ñ#óS
ò 
ð 	
ñ 
÷ 
6ð
 -;Ñ)€Iˆ{˜MÜ	�‰”k¨Ö	5Ü'¨	°;ÀÓNÐRSÒSÐSÑS÷ 
6ð 	Tð ô �)‰)×
Ñ
 Ó
"€CØ,5°t¸S¿[¹[Èi¸[Ó=X˜Mˆ{€IÜ	�‰”kÐ)AÖ	BÜ'¨	°;ÀÓNÔRUØ˜-×+Ñ+Ó-Ñ-óS
ò 
ð 	
ñ 
÷ 
Cô
 —G‘G˜A“J€MÜ	×	 Ñ	 Õ	"Ü×Ñ˜gÔ&à0=Ñ-ˆ	�; ä$ Y°¸]ÓKØòð	
ðð 14°S¸#¿+¹+È3¸+Ó:O �;ˆ	Ü'¨	°;ÀÓNÔRUØ˜-×+Ñ+Ó-Ñ-óS
ò 
ð 	
ñ 
÷ 
#Ð	"÷) 
6Ñ	5ú÷ 
6Ñ	5ú÷ 
CÐ	Bú÷ 
#Ð	"ús1   Á,G<Â5H	Ä#-HÆA0H"Ç<HÈ	HÈHÈ"H+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   ÚAttributeErrorrx   r  s      rR   Ú$test_oob_score_removed_on_warm_startrO  d  sl   € Ü 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Â   ©rf   rg   r:  s      rR   Útest_oob_score_consistencyrS  q  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 )
NrQ  r5   rö   r3   F)r8   r9   r2   r:   r   r?   r„   )r	   r   r   rH   r4  rª   ry   r¤   ÚdtypeÚkindÚcoef_r,   )rf   rg   r:  Úestimators_samplesÚestimators_featuresrP   Úestimator_indexÚestimator_samplesÚestimator_featuresrA   rK   rM   Ú
orig_coefsÚ	new_coefss                 rR   Útest_estimators_samplesr_    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   ry   rñ   rW  Úcopyr4  rª   r-   )rD   rf   rg   Úbase_pipelinerÆ   Úpipeline_estimator_coefrA   Úestimator_sampleÚestimator_featurerK   rM   s              rR   Ú%test_estimators_samples_deterministicrg  §  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   rf   rg   r:  s       rR   Útest_max_samples_consistencyrj  Â  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   rf   ÚY1ÚY2ÚY3Úx1Úx2Úx3s           rR   Ú!test_set_oob_score_label_encodingru  Ñ  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 )Nr2  T)rb  r   )Úastyperž   Úisfinite)rf   s    rR   Úreplacery  ë  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?   r}  )r?   rÖ   rÖ   rÖ   rÖ   )r?   r5   é	   )rÖ   r}  é   )rž   ÚarrayÚnanÚinfr)   r   r   ry  rH   rI   r   r—   rÃ   r   r  )rf   Úy_valuesrg   Ú	regressorÚpipelineÚbagging_regressorÚy_hats          rR   Ú*test_bagging_regressor_with_missing_inputsrˆ  ñ  sj  € ä
�‰âÚØ”—‘˜ˆ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)Nr{  r|  r?   r}  )rÖ   r}  r}  r}  r}  )rž   r€  r�  r‚  r(   r   r   ry  rH   rI   r   r—   rX   rW   rÃ   r   r  )rf   rg   Ú
classifierr…  Úbagging_classifierr‡  s         rR   Ú+test_bagging_classifier_with_missing_inputsrŒ    sX  € ä
�‰âÚØ”—‘˜ˆ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ž   r€  r   r   rH   rR  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.fitP  s
   € Ø#$ˆDÕ rT   N)rk   rl   rm   rn   rH   rC   rT   rR   ÚMyEstimatorr’  M  s
   „ ÙEó	%rT   r•  r5   r   )rA   rB   r2   )rž   rD  ÚRandomStateÚrandnr.  r)   r   rH   r-   ry   r”  r4  )Úglobal_random_seedrJ   rf   rg   r•  rÆ   s         rR   Ú#test_bagging_get_estimators_indicesr™  D  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)r:  Úexpected_allow_nans     rR   Útest_bagging_allow_nan_tagrŸ  Y  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¤  k  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   r}  )r5   r?   rÖ   Úa)ÚregistryÚset_Ú_requestT)r  Úmetadataró   rÖ   )rf   r  rª  )Úobjr|   Úparentr  rª  N)rž   r€  r&   rx   r   rH   r¤   r'   )Úsub_estimatorÚcallerÚcalleerf   rg   r  rª  r§  rA   Úset_callee_requestr:  s              rR   Ú3test_metadata_routing_with_dynamic_method_selectionr±  |  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   )é*   )~rn   r  rG  Ú	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.ensemble._baggingr   Ú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   rA  ÚpermrE   rŠ   rS   ÚmarkÚparametrizer‡   r‹   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=  rL  rO  rS  r_  rg  rj  ru  ry  rˆ  rŒ  rŽ  r™  rŸ  r¤  r±  r³  rC   rT   rR   Ú<module>rÏ     sÏ  ðñó 
Û ß $ã Û Û å "Ý &ß GÑ Gß 9÷	÷ 	ó 	õ ?Ý 1ß ?ß QÑ Qß GÝ *ß <Ý <ß  ÷õ ÷ GÝ ,÷ñ ÷
 ?á˜Ó€ñ ƒ{€Ø
‡��t—{‘{×'Ñ'Ó(€Ø�I‰I�d‰O€„	Ø�k‰k˜$Ñ€„ñ ‹?€Ø
‡��x—‘×+Ñ+Ó,€Ø—‘˜dÑ#€„Ø—/‘/ $Ñ'€„ò0ðB ‡�×ÑØ&ÙØ˜Ñ'ð  #Ø !Ø!Ø&*ñ	ð  #Ø !Ø!Ø&*ñ	ð ¨UÈ$ÑOØ¨dÈ%ÑPð	
ò  	Oó%óñ.&2ó/ð.&2òRð8 ‡�×ÑÐ+¨^¸nÑ-LÓMñ5Aó Nð5Aôp#˜ô #ò'9òTEò8 
òF"&òJ!#òHJò(Oò&6ðV ‡�×Ññ&ó ð&ò4	Tð ‡�×Ññ)0ó ð)0òXCóò4ò4ò$&ò&ò3ò,7ô@
 ]ô 
ô	 ]ô 	ð ‡�×Ñ˜Ð+;Ð=NÐ*OÓPØ‡�×ÑÐ/°%¸°Ó?Ø‡�×ÑÐ+¨e°T¨]Ó;Ø‡�×Ñ˜¨¨S¨	Ó2ñ/:ó 3ó <ó @ó Qð/:òd.
òb
#ò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   