
    {Kg#                     &   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       fd edd      fgd      g  e
d       ed e       fd e       fd edd      fg      g  ed       ed e       fd e       fd edd      fgd      g  ed       ed e       fd e       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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          f/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/sklearn/ensemble/tests/test_common.py/test_ensemble_heterogeneous_estimators_behaviorrB      s:   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gtI,F,F,J,J'KLLL 7
 %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
ValueErrorr/   )rD   r:   r;   r$   ensemble_typeensembleerr_msgs          rA   +test_ensemble_heterogeneous_estimators_typerR      s     (O,"R01-/01
$,1/123
#:.H%%m4G	z	1Q 
2	1	1s   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__'\]rH   r   z-Names provided are not unique: \['lr', 'lr'\]r$   z3Estimator names conflict with constructor arguments)rJ   r   r   r   rL   rM   rN   r/   )r:   r;   rD   r$   rP   rQ   s         rA   6test_ensemble_heterogeneous_estimators_name_validationrU      sP    (O,1345
/123
:.HDG	z	1Q 
2 (O,/12T;M;O4PQ
-/049I9K2LM
:.H>G	z	1Q 
2 (O,#%7%9:;
#%5%789
:.HCG	z	1Q 
2	1- 
2	1 
2	1 
2	1s$   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.rH   )r5   rL   rM   rN   r/   )r:   r;   r<   s      rA   2test_ensemble_heterogeneous_estimators_all_droppedrW      s?    < F#	z)F	Ga 
H	G	Gs   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   r/   score)rD   	Estimatorr:   r;   maskpiperP   s          rA   2test_heterogeneous_ensemble_support_missing_valuesrh      s     	
A99QFAGGSz:AA$GDffAdG)+6DWdOgt_#EFHLLAQ"rC   )*numpyr]   rL   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parametrizerB   rR   rU   rW   rh    rC   rA   <module>rv      s     > >   ) E * 6 6D!1D)S 
	
 2.
	
-/0IK(1qANO
 
	
		
 2.		
-/0IK(1qANO		

	
r*
	
+-.IK(0a1MN
 
	
		
r*		
+-.IK(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	##rC   