a
    h#                     @   s  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	d
\ZZ ed	d
\Z!Z"ej#j$dg e
ddede fde fdedddfgddR g e
ddede fde fdedddfgdR g eddede fde fdedddfgddR g eddede fde fdedddfgdR gg dddd Z%ej#$deeegdd Z&ej#$dg e
ddeR g e
ddeR g eddeR g eddeR gdd  Z'ej#j$dg e
ddede fgdR g e
ddede fgdR g eddede fgdR g eddede fgdR gg dd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$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)Z
return_X_yzX, y, estimator
   Z	n_sampleslrsvmrf      )Zn_estimators	max_depth   )
estimatorsZcvr    )zstacking-classifierzvoting-classifierzstacking-regressorzvoting-regressor)Zidsc                 C   s  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snJ tt|j tg dksJ t	|}t
|rt nt }|j|d| | t|drJ |j j |j j ksJ |j j |j j ksJ t	|}|jdd || | t|j dks<J |j jdksNJ t|jdksbJ tt|j tg dksJ |jD ]}t|t|j jrJ q|jdd |jd	d
 | d | d  d ksJ | d | d  d ksJ d S )Nr      r   )r   r   r   )r   dropg      $@)svm__Cr   )rf__max_depthr$   Cr%   r   r   )Znamed_estimatorsr   r    fitlenZnamed_estimators_sortedlistkeysr   r   r   r   
set_paramshasattrr   
get_paramsr   
isinstancetype)Xy	estimatorZestimator_new_paramsZsvm_estimatorZestimator_droppedZsub_est r4   ^/var/www/html/assistant/venv/lib/python3.9/site-packages/sklearn/ensemble/tests/test_common.py/test_ensemble_heterogeneous_estimators_behavior   sT    ;







r6   Ensemblec                 C   s   t | tr*tdd\}}dt fg}d}ntdd\}}dt fg}d}| |d}d|}tjt	|d |
|| W d    n1 s0    Y  d S )	Nr   r   r   
classifierZ	regressorr!   zshould be a {}match)
issubclassr   r   r   r   r   formatpytestraises
ValueErrorr'   )r7   r1   r2   r    Zensemble_typeensembleerr_msgr4   r4   r5   +test_ensemble_heterogeneous_estimators_type   s    


rB   zX, y, Ensemblec                 C   s\  t |trdt fg}ndt fg}||d}d}tjt|d || | W d    n1 sb0    Y  t |trdt fdt fg}ndt fdt fg}||d}d}tjt|d || | W d    n1 s0    Y  t |trdt fg}ndt fg}||d}d}tjt|d || | W d    n1 sN0    Y  d S )	NZlr__r!   z3Estimator names must not contain __: got \['lr__'\]r9   r   z-Names provided are not unique: \['lr', 'lr'\]r    z3Estimator names conflict with constructor arguments)r;   r   r   r   r=   r>   r?   r'   )r1   r2   r7   r    r@   rA   r4   r4   r5   6test_ensemble_heterogeneous_estimators_name_validation   s*    

*

*
rC   c                 C   sJ   |j dd tjtdd || | W d    n1 s<0    Y  d S )Nr#   )r   zAll estimators are dropped.r9   )r,   r=   r>   r?   r'   )r1   r2   r3   r4   r4   r5   2test_ensemble_heterogeneous_estimators_all_dropped   s    rD   zEnsemble, Estimator, X, yc                 C   sp   |  }tjjddg|jddgdt}tj||< tt	 | }| d|fd|fgd}|
|||| d S )	Nr"   r   g?g?)pZpipe1pipe2r!   )copynprandomchoiceshapeZastypeboolnanr   r   r'   Zscore)r7   Z	Estimatorr1   r2   maskpiper@   r4   r4   r5   2test_heterogeneous_ensemble_support_missing_values   s    "
rP   )*numpyrH   r=   Zsklearn.baser   r   r   Zsklearn.datasetsr   r   r   r   Zsklearn.ensembler	   r
   r   r   r   r   Zsklearn.imputer   Zsklearn.linear_modelr   r   Zsklearn.pipeliner   Zsklearn.svmr   r   r   r   r1   r2   ZX_rZy_rmarkZparametrizer6   rB   rC   rD   rP   r4   r4   r4   r5   <module>   s    
,5
;
	
#




