
    0Ph#                         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j#        $                    dg  e
d           ed e            fd e            fd edd          fgd          R g  e
d           ed e            fd e            fd edd          fg          R g  ed           ed e            fd e            fd edd          fgd          R g  ed           ed e            fd e            fd edd          fg          R gg d          d             Z%ej#        $                    deeeg          d             Z&ej#        $                    dg  e
d          eR g  e
d          eR g  ed          eR g  ed          eR g          d             Z'ej#        $                    dg  e
d           ed e            fg          R g  e
d           ed e            fg          R g  ed           ed e            fg          R g  ed           ed e            fg          R gg d          d             Z(ej#        $                    deeee feee!e"feeee feee!e"fg          d              Z)dS )!    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                 4   d|j         v sJ |j         j        |j        d         d         u sJ |j         j        |j         d         u sJ |                    | |           t	          |j                   dk    sJ t	          |j                  dk    sJ t          t          |j                                                            t          g d          k    sJ t          |          }t          |          rt                      nt                      }|                    |                              | |           t          |d          rJ |j         j                                        |j         j                                        k    sJ |j         j                                        |j         j                                        k    sJ t          |          }|                    d           |                    | |           t	          |j                   dk    sJ |j         j        dk    sJ t	          |j                  dk    sJ t          t          |j                                                            t          g d          k    sJ |j        D ]+}t%          |t'          |j         j                            rJ ,|                    d           |                    d	
           |                                d         |                                d                                         d         k    sJ |                                d         |                                d                                         d         k    sJ d S )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          b/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/sklearn/ensemble/tests/test_common.py/test_ensemble_heterogeneous_estimators_behaviorrB      s   v I.....%)Y-A!-DQ-GGGGG%)Y-G-NNNNN MM!Qy)**a////y*++q0000$y27799::;;v@ @    
 !++*955@CEEE355M###66::1a@@@+U33333-0;;==%(3355	6 	6 	6 	6 	-0;;==%(3355	6 	6 	6 	6
 i((  V ,,,!Q 122a7777-1V;;;; 233q8888$(:??AABBCCvH H     %6 M MgtI,F,J'K'KLLLLLL %%%q)))x(!!%(3355c:	; 	; 	; 	; 	/!!$'2244[A	B 	B 	B 	B 	B 	B    Ensemblec                    t          | t                    r't          d          \  }}dt                      fg}d}n&t	          d          \  }}dt                      fg}d} | |          }d                    |          }t          j        t          |          5  |
                    ||           d d d            d S # 1 swxY w Y   d S )	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001-//01
$,,,1/1123
#x:...H%%m44G	z	1	1	1  Q                 s   CC
CzX, y, Ensemblec                    t          |t                    rdt                      fg}ndt                      fg} ||          }d}t	          j        t          |          5  |                    | |           d d d            n# 1 swxY w Y   t          |t                    r!dt                      fdt                      fg}n dt                      fdt                      fg} ||          }d}t	          j        t          |          5  |                    | |           d d d            n# 1 swxY w Y   t          |t                    rdt                      fg}ndt                      fg} ||          }d}t	          j        t          |          5  |                    | |           d d d            d S # 1 swxY w Y   d S )	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      s    (O,, 413345

/1123
x:...HDG	z	1	1	1  Q               (O,, N/112T;M;O;O4PQ

-//049I9K9K2LM
x:...H>G	z	1	1	1  Q               (O,, :#%7%9%9:;

#%5%7%789
x:...HCG	z	1	1	1  Q                 s6   "BB	B	D22D69D6GG	Gc                     |                     d           t          j        t          d          5  |                    | |           d d d            d S # 1 swxY w Y   d S )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	G	G  a                 s   AAAzEnsemble, Estimator, X, yc                    |                                 }t          j                            ddg|j        ddg                              t                    }t          j        ||<   t          t                       |                      } | d|fd|fg          }|
                    ||                              ||           d S )	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9QFAGSz::AA$GGDfAdG))++66DxWdOgt_#EFF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 E E E E E E E * * * * * * 6 6 6 6 6 6 6 6 6 6 6 6yD!!!1=D)))S 
	
  2...
	
--//0IIKK(11qANNNO
   
	
 
	
		
  2...		
--//0IIKK(11qANNNO  		
 		

	
_r***
	
++--.IIKK(00a1MMMN
   
	
 
	
		
_r***		
O++--.IIKK(00a1MMMN  		
 		
C+X	 	 	]  4 4j8 8k4 4j8v (/:  	 & @


+
+
+@-?@@>


+
+
+>-=>>;//B
'
'
';):;;9//B
'
'
'999	      F 	
  2...	
D2D2D2F2F+G*HIII	
 	
	
  2...	
$0B0B0D0D)E(FGGG	
 	
	
_r***	
41A1A1C1C*D)EFFF	
 	
	
_r***	
O/?/?/A/A(B'CDDD	
 	
$	 	 	)   6 7 6 	/A6	,c37	-q!4	*C5	 # # # # #rC   