
    h$,f#                     6   d dl Zd dlZd dlmZmZmZ d dlmZm	Z	m
Z
mZ d dl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 d dlmZmZmZmZ  e	d	
      \  ZZ  ed	
      \  Z!Z"ejF                  jI                  dg  e
d       ed e       fd ed      fd edd      fgd      g  e
d       ed e       fd ed      fd edd      fg      g  ed       ed e       fd ed      fd edd      fgd      g  ed       ed e       fd ed      fd edd      fg      gg d      d        Z%ejF                  jI                  deeeg      d        Z&ejF                  jI                  dg  e
d      eg  e
d      eg  ed      eg  ed      eg      d        Z'ejF                  jI                  dg  e
d       ed e       fg      g  e
d       ed e       fg      g  ed       ed e       fg      g  ed       ed e       fg      gg d      d         Z(ejF                  jI                  d!eeee feee!e"feeee feee!e"fg      d"        Z)y)#    N)ClassifierMixincloneis_classifier)load_diabetes	load_irismake_classificationmake_regression)RandomForestClassifierRandomForestRegressorStackingClassifierStackingRegressorVotingClassifierVotingRegressor)SimpleImputer)LinearRegressionLogisticRegression)make_pipeline)SVCSVR	LinearSVC	LinearSVRT)
return_X_yzX, y, estimator
   	n_sampleslrsvmauto)dualrf      )n_estimators	max_depth   )
estimatorscvr&   )zstacking-classifierzvoting-classifierzstacking-regressorzvoting-regressor)idsc                    d|j                   v sJ |j                   j                  |j                  d   d   u sJ |j                   j                  |j                   d   u sJ |j                  | |       t	        |j                         dk(  sJ t	        |j
                        dk(  sJ t        t        |j
                  j                                     t        g d      k(  sJ t        |      }t        |      r
t               n	t               }|j                  |      j                  | |       t        |d      rJ |j                   j                  j!                         |j                   j                  j!                         k(  sJ |j                   j"                  j!                         |j                   j"                  j!                         k(  sJ t        |      }|j                  d       |j                  | |       t	        |j                         dk(  sJ |j                   j                  dk(  sJ t	        |j
                        dk(  sJ t        t        |j
                  j                                     t        g d      k(  sJ |j
                  D ]-  }t%        |t'        |j                   j                              s-J  |j                  d       |j                  d	
       |j!                         d   |j!                         d   j!                         d   k(  sJ |j!                         d   |j!                         d   j!                         d   k(  sJ y )Nr      r"   )r   r   r    )r   dropg      $@)svm__Cr!   )rf__max_depthr-   Cr.   r    r$   )named_estimatorsr   r&   fitlennamed_estimators_sortedlistkeysr   r   r   r   
set_paramshasattrr   
get_paramsr    
isinstancetype)Xy	estimatorestimator_new_paramssvm_estimatorestimator_droppedsub_ests          Blib/python3.12/site-packages/sklearn/ensemble/tests/test_common.py/test_ensemble_heterogeneous_estimators_behaviorrD      sA   v I.....%%))Y-A-A!-DQ-GGGG%%))Y-G-G-NNNN MM!Qy))*a///y**+q000$y22779:;v@   
 !+*95CE35M###6::1a@+U333--00;;=%%((335	6	6 	--00;;=%%((335	6	6
 i(  V ,!Q 112a777--11V;;; 223q888$(::??ABCvH    %66 MgtI,F,F,J,J'KLLLM
 %q)x(!%(335c:	;	; 	/!$'224[A	B	B    Ensemblec                 V   t        | t              rt        d      \  }}dt               fg}d}nt	        d      \  }}dt               fg}d} | |      }dj                  |      }t        j                  t        |      5  |j                  ||       d d d        y # 1 sw Y   y xY w)	Nr   r   r   
classifier	regressorr(   zshould be a {}match)
issubclassr   r   r   r	   r   formatpytestraises
ValueErrorr1   )rF   r<   r=   r&   ensemble_typeensembleerr_msgs          rC   +test_ensemble_heterogeneous_estimators_typerT      s     (O,"R01-/01
$,1/123
#:.H%%m4G	z	1 Q  s   BB(zX, y, Ensemblec                     t        |t              rdt               fg}ndt               fg} ||      }d}t	        j
                  t        |      5  |j                  | |       d d d        t        |t              rdt               fdt               fg}ndt               fdt               fg} ||      }d}t	        j
                  t        |      5  |j                  | |       d d d        t        |t              rdt               fg}ndt               fg} ||      }d}t	        j
                  t        |      5  |j                  | |       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)	Nlr__r(   z3Estimator names must not contain __: got \['lr__'\]rJ   r   z-Names provided are not unique: \['lr', 'lr'\]r&   z3Estimator names conflict with constructor arguments)rL   r   r   r   rN   rO   rP   r1   )r<   r=   rF   r&   rR   rS   s         rC   6test_ensemble_heterogeneous_estimators_name_validationrW      sg    (O,1345
/123
:.HDG	z	1 Q (O,/12T;M;O4PQ
-/049I9K2LM
:.H>G	z	1 Q (O,#%7%9:;
#%5%789
:.HCG	z	1 Q -   s$   EE( E4E%(E14E=c                     |j                  d       t        j                  t        d      5  |j	                  | |       d d d        y # 1 sw Y   y xY w)Nr,   )r   zAll estimators are dropped.rJ   )r7   rN   rO   rP   r1   )r<   r=   r>   s      rC   2test_ensemble_heterogeneous_estimators_all_droppedrY      sG    < F#	z)F	G a  s   A

AzEnsemble, Estimator, X, yc                 d   |j                         }t        j                  j                  ddg|j                  ddg      j                  t              }t        j                  ||<   t        t                |             } | d|fd|fg      }|j                  ||      j                  ||       y )	Nr+   r   g?g?)ppipe1pipe2r(   )copynprandomchoiceshapeastypeboolnanr   r   r1   score)rF   	Estimatorr<   r=   maskpiperR   s          rC   2test_heterogeneous_ensemble_support_missing_valuesrj      s     	
A99QFAGGSz:AA$GDffAdG)+6DWdOgt_#EFHLLAQ"rE   )*numpyr_   rN   sklearn.baser   r   r   sklearn.datasetsr   r   r   r	   sklearn.ensembler
   r   r   r   r   r   sklearn.imputer   sklearn.linear_modelr   r   sklearn.pipeliner   sklearn.svmr   r   r   r   r<   r=   X_ry_rmarkparametrizerD   rT   rW   rY   rj    rE   rC   <module>rx      s     > >   ) E * 6 6D!1D)S 
	
 2.
	
-/0I6231qANO
 
	
		
 2.		
-/0I6231qANO		

	
r*
	
+-.I6230a1MN
 
	
		
r*		
+-.I6230a1MN		
C+X	]  4j8k4j8v (/:	& @

+@-?@>

+>-=>;/B
';):;9/B
'99	  F 	
 2.	
D2D2F+G*HI	
	
 2.	
$0B0D)E(FG	
	
r*	
41A1C*D)EF	
	
r*	
/?/A(B'CD	
$	)  676 	/A6	,c37	-q!4	*C5	##rE   