U
    ^»{j¯|  ã                   @   s–  d 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	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 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(m)Z) ddl*m+Z+ ddl,m-Z-m.Z. ddl/m0Z0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6 e3dƒZ7eƒ Z8e7 9e8j:j;¡Z<e8j=e< e8_=e8j:e< e8_:eƒ Z>e7 9e>j:j;¡Z<e>j=e< e>_=e>j:e< e>_:dd„ Z?ej@ Adee	e
gdddddœdddddœddddœddddœgd d!d"d#gƒ¡d$d%„ ƒZBd&d'„ ZCd(d)„ ZDG d*d+„ d+eƒZEd,d-„ ZFd.d/„ ZGd0d1„ ZHd2d3„ ZId4d5„ ZJd6d7„ ZKd8d9„ ZLd:d;„ ZMd<d=„ ZNd>d?„ ZOd@dA„ ZPdBdC„ ZQG dDdE„ dEeƒZRdFdG„ ZSdvdIdJ„ZTdKdL„ ZUdMdN„ ZVdOdP„ ZWdQdR„ ZXdSdT„ ZYdUdV„ ZZdWdX„ Z[dYdZ„ Z\d[d\„ Z]d]d^„ Z^d_d`„ Z_dadb„ Z`dcdd„ Zadedf„ Zbdgdh„ Zcej@ Adiee0fee1fg¡djdk„ ƒZdej@ Adleeg¡dmdn„ ƒZedodp„ Zfej@ Adqeedrds�ƒdfeedrds�ƒdfeeƒ ƒdfee.ƒ ƒdfg¡dtdu„ ƒZgdS )wzE
Testing for the bagging ensemble module (sklearn.ensemble.bagging).
é    )ÚcycleÚproductN)Ú
csc_matrixÚ
csr_matrix)ÚBaseEstimator)Úload_diabetesÚ	load_irisÚmake_hastie_10_2)ÚDummyClassifierÚDummyRegressor)ÚBaggingClassifierÚBaggingRegressorÚHistGradientBoostingClassifierÚHistGradientBoostingRegressor)ÚSelectKBest)ÚLogisticRegressionÚ
Perceptron)ÚGridSearchCVÚParameterGridÚtrain_test_split)ÚKNeighborsClassifierÚKNeighborsRegressor)Úmake_pipeline)ÚFunctionTransformerÚscale)ÚSparseRandomProjection)ÚSVCÚSVR)ÚDecisionTreeClassifierÚDecisionTreeRegressor)Úcheck_random_state)Úassert_array_almost_equalÚassert_array_equalc            	      C   s¦   t dƒ} ttjtj| d�\}}}}tddgddgddgddgd	œƒ}d tƒ td
d�tdd�t	ƒ t
ƒ g}t|t|ƒƒD ],\}}tf || ddœ|—Ž ||¡ |¡ qtd S )Nr   ©Úrandom_stateç      à?ç      ð?é   é   TF©Úmax_samplesÚmax_featuresÚ	bootstrapÚbootstrap_featuresé   ©Zmax_iteré   )Ú	max_depth)Ú	estimatorr$   Ú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Úparamsr2   © rB   úb/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sklearn/ensemble/tests/test_bagging.pyÚtest_classification4   sB      ÿüÿ	ú
ýü ûûrD   zsparse_format, params, methodr%   r0   Tr)   r&   r(   F©r+   r,   r-   ©r*   r,   r-   r9   Úpredict_probaÚpredict_log_probaÚdecision_functionc                    sê   G dd„ dt ƒ}tdƒ}tttjƒtj|d�\}}}}| |ƒ}	| |ƒ}
tf |ddd�dd	œ|—Ž |	|¡}t	||ƒ|
ƒ}tf |ddd�dd	œ|—Ž ||¡}t	||ƒ|ƒ}t
||ƒ t|	ƒ‰ d
d„ |jD ƒ}t‡ fdd„|D ƒƒsæt‚d S )Nc                       s    e Zd ZdZ‡ fdd„Z‡  ZS )z-test_sparse_classification.<locals>.CustomSVCú7SVC variant that records the nature of the training setc                    s   t ƒ  ||¡ t|ƒ| _| S ©N©Úsuperr8   ÚtypeÚ
data_type_©ÚselfÚXÚy©Ú	__class__rB   rC   r8   r   s    
z1test_sparse_classification.<locals>.CustomSVC.fit©Ú__name__Ú
__module__Ú__qualname__Ú__doc__r8   Ú__classcell__rB   rB   rT   rC   Ú	CustomSVCo   s   r\   r   r#   ZlinearÚovr)ZkernelÚdecision_function_shaper'   ©r2   r$   c                 S   s   g | ]
}|j ‘qS rB   ©rO   ©Ú.0ÚirB   rB   rC   Ú
<listcomp>�   s     z.test_sparse_classification.<locals>.<listcomp>c                    s   g | ]}|ˆ k‘qS rB   rB   ©rb   Út©Zsparse_typerB   rC   rd   ’   s     )r   r    r   r   r4   r5   r6   r   r8   Úgetattrr!   rN   Úestimators_ÚallÚAssertionError)Úsparse_formatrA   Úmethodr\   r:   r;   r<   r=   r>   ÚX_train_sparseÚX_test_sparseÚsparse_classifierÚsparse_resultsZdense_classifierÚdense_resultsÚtypesrB   rg   rC   Útest_sparse_classificationU   sB      ÿ
þý ü
þý ü
rt   c                  C   s    t dƒ} ttjd d… tjd d… | d�\}}}}tddgddgddgddgdœƒ}d tƒ tƒ tƒ t	ƒ fD ]0}|D ]&}t
f || d	œ|—Ž ||¡ |¡ qrqjd S )
Nr   é2   r#   r%   r&   TFr)   r_   )r    r   Údiabetesr5   r6   r   r   r   r   r   r   r8   r9   )r:   r;   r<   r=   r>   r?   r2   rA   rB   rB   rC   Útest_regression•   s4      ÿüÿ
û ÿþrw   c                     s2  t dƒ} ttjd d… tjd d… | d�\}}}}G dd„ dtƒ}ddddd	œd
dddd	œddddœddddœg}ttfD ]²}||ƒ}||ƒ}	|D ]˜}
tf |ƒ ddœ|
—Ž 	||¡}| 
|	¡}tf |ƒ ddœ|
—Ž 	||¡ 
|¡}t|ƒ‰ dd„ |jD ƒ}t||ƒ t‡ fdd„|D ƒƒ�s t‚t||ƒ q’qzd S )Nr   ru   r#   c                       s    e Zd ZdZ‡ fdd„Z‡  ZS )z)test_sparse_regression.<locals>.CustomSVRrJ   c                    s   t ƒ  ||¡ t|ƒ| _| S rK   rL   rP   rT   rB   rC   r8   »   s    
z-test_sparse_regression.<locals>.CustomSVR.fitrV   rB   rB   rT   rC   Ú	CustomSVR¸   s   rx   r%   r0   Tr)   r&   r(   FrE   rF   r'   r_   c                 S   s   g | ]
}|j ‘qS rB   r`   ra   rB   rB   rC   rd   ã   s     z*test_sparse_regression.<locals>.<listcomp>c                    s   g | ]}|ˆ k‘qS rB   rB   re   rg   rB   rC   rd   æ   s     )r    r   rv   r5   r6   r   r   r   r   r8   r9   rN   ri   r!   rj   rk   )r:   r;   r<   r=   r>   rx   Zparameter_setsrl   rn   ro   rA   rp   rq   rr   rs   rB   rg   rC   Útest_sparse_regression±   s\      ÿ
üü

ò ÿÿ þ
 ÿþÿ
ry   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚDummySizeEstimatorc                 C   s   |j d | _t |¡| _d S ©Nr   )ÚshapeÚtraining_size_ÚjoblibÚhashÚtraining_hash_rP   rB   rB   rC   r8   ë   s    zDummySizeEstimator.fitc                 C   s   t  |jd ¡S r{   )ÚnpÚonesr|   ©rQ   rR   rB   rB   rC   r9   ï   s    zDummySizeEstimator.predictN©rW   rX   rY   r8   r9   rB   rB   rB   rC   rz   ê   s   rz   c                  C   sþ   t dƒ} ttjtj| d�\}}}}tƒ  ||¡}ttƒ dd| d� ||¡}| ||¡| ||¡ksft	‚ttƒ dd| d� ||¡}| ||¡| ||¡ksœt	‚tt
ƒ dd� ||¡}g }|jD ]$}|j|jd ksÔt	‚| |j¡ q¼tt|ƒƒt|ƒksút	‚d S )Nr   r#   r&   F)r2   r*   r,   r$   T)r2   r,   )r    r   rv   r5   r6   r   r8   r   Úscorerk   rz   ri   r}   r|   Úappendr€   ÚlenÚset)r:   r;   r<   r=   r>   r2   ÚensembleZtraining_hashrB   rB   rC   Útest_bootstrap_samplesó   sH      ÿü ûü û ÿ
rŠ   c                  C   s²   t dƒ} ttjtj| d�\}}}}ttƒ dd| d� ||¡}|jD ]$}tjj	d t
 |¡j	d ksBt‚qBttƒ dd| d� ||¡}|jD ]$}tjj	d t
 |¡j	d ksˆt‚qˆd S )Nr   r#   r&   F)r2   r+   r-   r$   r'   T)r    r   rv   r5   r6   r   r   r8   Úestimators_features_r|   r�   Úuniquerk   )r:   r;   r<   r=   r>   r‰   ÚfeaturesrB   rB   rC   Útest_bootstrap_features  s8      ÿü û
"ü û
rŽ   c               	   C   sî   t dƒ} ttjtj| d�\}}}}tjddd��´ ttƒ | d� 	||¡}t
tj| |¡dd�t t|ƒ¡ƒ t
| |¡t | |¡¡ƒ ttƒ | dd	� 	||¡}t
tj| |¡dd�t t|ƒ¡ƒ t
| |¡t | |¡¡ƒ W 5 Q R X d S )
Nr   r#   Úignore)ÚdivideÚinvalidr_   r'   )Zaxisé   )r2   r$   r*   )r    r   r4   r5   r6   r�   Zerrstater   r   r8   r!   ÚsumrG   r‚   r‡   ÚexprH   r   ©r:   r;   r<   r=   r>   r‰   rB   rB   rC   Útest_probability9  sL      ÿ ÿ þ ÿ ÿ  ÿ þ ÿ ÿr–   c            	   
   C   s°   t dƒ} ttjtj| d�\}}}}tƒ tƒ fD ]|}t|ddd| d� ||¡}| 	||¡}t
||j ƒdk snt‚d}tjt|d��$ t|d	dd| d�}| ||¡ W 5 Q R X q.d S )
Nr   r#   éd   T©r2   r3   r,   Ú	oob_scorer$   çš™™™™™¹?ú{Some inputs do not have OOB scores. This probably means too few estimators were used to compute any reliable oob estimates.©Úmatchr'   )r    r   r4   r5   r6   r   r   r   r8   r…   ÚabsÚ
oob_score_rk   ÚpytestÚwarnsÚUserWarning)	r:   r;   r<   r=   r>   r2   ÚclfÚ
test_scoreÚwarn_msgrB   rB   rC   Útest_oob_score_classification\  s<      ÿû úÿûr¦   c            	   	   C   s¢   t dƒ} ttjtj| d�\}}}}ttƒ ddd| d� ||¡}| ||¡}t	||j
 ƒdk s`t‚d}tjt|d��& ttƒ d	dd| d�}| ||¡ W 5 Q R X d S )
Nr   r#   ru   Tr˜   rš   r›   rœ   r'   )r    r   rv   r5   r6   r   r   r8   r…   rž   rŸ   rk   r    r¡   r¢   )	r:   r;   r<   r=   r>   r£   r¤   r¥   ZregrrB   rB   rC   Útest_oob_score_regression�  s:      ÿû úÿûr§   c                  C   sf   t dƒ} ttjtj| d�\}}}}ttƒ ddd| d� ||¡}tƒ  ||¡}t| 	|¡| 	|¡ƒ d S )Nr   r#   r'   F)r2   r3   r,   r-   r$   )
r    r   rv   r5   r6   r   r   r8   r!   r9   )r:   r;   r<   r=   r>   Zclf1Zclf2rB   rB   rC   Útest_single_estimator¥  s$      ÿû úr¨   c                  C   s2   t jt j } }tƒ }tt|ƒ | |¡dƒr.t‚d S )NrI   )r4   r5   r6   r   Úhasattrr   r8   rk   )rR   rS   ÚbaserB   rB   rC   Ú
test_error¹  s    r«   c                  C   s  t tjtjdd�\} }}}ttƒ ddd� | |¡}| |¡}|jdd� | |¡}t	||ƒ ttƒ ddd� | |¡}| |¡}t	||ƒ tt
dd�ddd� | |¡}| |¡}|jdd� | |¡}	t	||	ƒ tt
dd�ddd� | |¡}| |¡}
t	||
ƒ d S )	Nr   r#   é   ©Ún_jobsr$   r'   ©r®   r]   )r^   )r   r4   r5   r6   r   r   r8   rG   Ú
set_paramsr!   r   rI   )r;   r<   r=   r>   r‰   Úy1Úy2Úy3Z
decisions1Z
decisions2Z
decisions3rB   rB   rC   Útest_parallel_classificationÀ  sb      ÿ  ÿ þ


  ÿ þ

  ÿ þ


  ÿ þ
r´   c            	      C   s    t dƒ} ttjtj| d�\}}}}ttƒ ddd� ||¡}|jdd� | 	|¡}|jdd� | 	|¡}t
||ƒ ttƒ ddd� ||¡}| 	|¡}t
||ƒ d S )Nr   r#   r¬   r­   r'   r¯   r0   )r    r   rv   r5   r6   r   r   r8   r°   r9   r!   )	r:   r;   r<   r=   r>   r‰   r±   r²   r³   rB   rB   rC   Útest_parallel_regressioné  s*      ÿ ÿ


 ÿ
rµ   c                  C   sD   t jt j } }d||dk< dddœ}tttƒ ƒ|dd� | |¡ d S )Nr'   r0   )r'   r0   )r3   Zestimator__CZroc_auc)Zscoring)r4   r5   r6   r   r   r   r8   )rR   rS   Ú
parametersrB   rB   rC   Útest_gridsearch  s    
r·   c                  C   s0  t dƒ} ttjtj| d�\}}}}td ddd� ||¡}t|jt	ƒsHt
‚tt	ƒ ddd� ||¡}t|jt	ƒspt
‚ttƒ ddd� ||¡}t|jtƒs˜t
‚ttjtj| d�\}}}}td ddd� ||¡}t|jtƒsØt
‚ttƒ ddd� ||¡}t|jtƒ�st
‚ttƒ ddd� ||¡}t|jtƒ�s,t
‚d S )Nr   r#   r¬   r­   )r    r   r4   r5   r6   r   r8   Ú
isinstanceZ
estimator_r   rk   r   rv   r   r   r   r•   rB   rB   rC   Útest_estimator  sH      ÿ  ÿ þ ÿ  ÿ ÿr¹   c                  C   sL   t ttdd�tƒ ƒdd�} |  tjtj¡ t| d j	d d j
tƒsHt‚d S )Nr'   )Úkr0   )r+   r   éÿÿÿÿ)r   r   r   r   r8   r4   r5   r6   r¸   Ústepsr$   Úintrk   )r2   rB   rB   rC   Útest_bagging_with_pipeline;  s     ÿr¾   c                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚDummyZeroEstimatorc                 C   s   t  |¡| _| S rK   )r�   rŒ   Úclasses_rP   rB   rB   rC   r8   D  s    zDummyZeroEstimator.fitc                 C   s   | j tj|jd td� S )Nr   )Údtype)rÀ   r�   Zzerosr|   r½   rƒ   rB   rB   rC   r9   H  s    zDummyZeroEstimator.predictNr„   rB   rB   rB   rC   r¿   C  s   r¿   c               	   C   sj   t tƒ ƒ} tdƒ}|  tjtj¡ tj¡ t 	t
¡�, | jtjtj|jdtjjd d�d� W 5 Q R X d S )Nr   é
   )Úsize)Zsample_weight)r   r¿   r    r8   r4   r5   r6   r9   r    ÚraisesÚ
ValueErrorÚrandintr|   )r2   r:   rB   rB   rC   Ú1test_bagging_sample_weight_unsupported_but_passedL  s    
ýrÇ   é*   c                 C   s¤   t ddd�\}}d }dD ]D}|d kr4t|| dd�}n|j|d� | ||¡ t|ƒ|kst‚qtd| d	d�}| ||¡ td
d„ |D ƒƒtdd„ |D ƒƒks t‚d S )Nr.   r'   ©Z	n_samplesr$   )r’   rÂ   T)r3   r$   Ú
warm_start©r3   rÂ   Fc                 S   s   g | ]
}|j ‘qS rB   r#   ©rb   ÚtreerB   rB   rC   rd   n  s     z#test_warm_start.<locals>.<listcomp>c                 S   s   g | ]
}|j ‘qS rB   r#   rÌ   rB   rB   rC   rd   o  s     )r	   r   r°   r8   r‡   rk   rˆ   )r$   rR   rS   Úclf_wsr3   Z	clf_no_wsrB   rB   rC   Útest_warm_startY  s*      ÿ  ÿÿrÏ   c               	   C   sZ   t ddd�\} }tddd�}| | |¡ |jdd� t t¡� | | |¡ W 5 Q R X d S )	Nr.   r'   rÉ   r’   T)r3   rÊ   r(   rË   )r	   r   r8   r°   r    rÄ   rÅ   ©rR   rS   r£   rB   rB   rC   Ú$test_warm_start_smaller_n_estimatorss  s    rÑ   c            	   	   C   s�   t ddd�\} }t| |dd�\}}}}tdddd	�}| ||¡ | |¡}|d
7 }d}tjt|d�� | ||¡ W 5 Q R X t|| |¡ƒ d S )Nr.   r'   rÉ   é+   r#   r’   TéS   ©r3   rÊ   r$   r&   z;Warm-start fitting without increasing n_estimators does notrœ   )	r	   r   r   r8   r9   r    r¡   r¢   r"   )	rR   rS   r;   r<   r=   r>   r£   Zy_predr¥   rB   rB   rC   Ú"test_warm_start_equal_n_estimators}  s    
rÕ   c            
      C   s”   t ddd�\} }t| |dd�\}}}}tdddd	�}| ||¡ |jd
d� | ||¡ | |¡}td
ddd	�}| ||¡ | |¡}	t||	ƒ d S )Nr.   r'   rÉ   rÒ   r#   r’   TiE  rÔ   rÂ   rË   F)r	   r   r   r8   r°   r9   r!   )
rR   rS   r;   r<   r=   r>   rÎ   r±   r£   r²   rB   rB   rC   Útest_warm_start_equivalence�  s    

rÖ   c               	   C   sD   t ddd�\} }tdddd�}t t¡� | | |¡ W 5 Q R X d S )Nr.   r'   rÉ   r’   T)r3   rÊ   r™   )r	   r   r    rÄ   rÅ   r8   rÐ   rB   rB   rC   Ú$test_warm_start_with_oob_score_fails¢  s    r×   c               	   C   sh   t ddd�\} }tddd�}| | |¡ |jdddd	� | | |¡ t t¡� t|d
ƒ W 5 Q R X d S )Nr—   r'   rÉ   r’   T)r3   r™   FrÂ   )rÊ   r™   r3   rŸ   )r	   r   r8   r°   r    rÄ   ÚAttributeErrorrh   rÐ   rB   rB   rC   Ú$test_oob_score_removed_on_warm_startª  s    rÙ   c                  C   sH   t ddd�\} }ttƒ ddddd�}| | |¡j| | |¡jksDt‚d S )NéÈ   r'   rÉ   r%   T)r*   r+   r™   r$   )r	   r   r   r8   rŸ   rk   ©rR   rS   ÚbaggingrB   rB   rC   Útest_oob_score_consistency·  s    ûrÝ   c                  C   sä   t ddd�\} }ttƒ ddddd�}| | |¡ |j}|j}|j}t|ƒt|ƒksVt‚t|d ƒt| ƒd ksrt‚|d j	j
d	ks†t‚d}|| }|| }|| }	| | d d …|f }
|| }|	j}|	 |
|¡ |	j}t||ƒ d S )
NrÚ   r'   rÉ   r%   F)r*   r+   r$   r,   r   r0   rc   )r	   r   r   r8   Úestimators_samples_r‹   ri   r‡   rk   rÁ   ÚkindÚcoef_r!   )rR   rS   rÜ   Zestimators_samplesZestimators_featuresr@   Zestimator_indexZestimator_samplesZestimator_featuresr2   r;   r=   Z
orig_coefsZ	new_coefsrB   rB   rC   Útest_estimators_samplesÅ  s2    ûrá   c                  C   sº   t ƒ } | j| j }}ttdd�tƒ ƒ}t|ddd�}| ||¡ |jd j	d d j
 ¡ }|jd }|jd }|jd }|| d d …|f }	|| }
| |	|
¡ t|j	d d j
|ƒ d S )Nr0   )Zn_componentsr%   r   )r2   r*   r$   r»   r'   )r   r5   r6   r   r   r   r   r8   ri   r¼   rà   ÚcopyrÞ   r‹   r"   )r4   rR   rS   Zbase_pipeliner£   Zpipeline_estimator_coefr2   Zestimator_sampleZestimator_featurer;   r=   rB   rB   rC   Ú%test_estimators_samples_deterministicí  s      ÿ


rã   c                  C   sH   d} t d|  dd�\}}ttƒ | ddd�}| ||¡ |j| ksDt‚d S )Nr—   r0   r'   rÉ   r%   )r*   r+   r$   )r	   r   r   r8   Z_max_samplesrk   )r*   rR   rS   rÜ   rB   rB   rC   Útest_max_samples_consistency  s    ürä   c                  C   sœ   d} dgdgdggd }dddgd }dddgd }dddgd }t d	| d
� ||¡j}t d	| d
� ||¡j}t d	| d
� ||¡j}||g||gks˜t‚d S )Nr’   r»   r   r'   ÚAÚBÚCr0   T)r™   r$   )r   r8   rŸ   rk   )r$   rR   ZY1ZY2ZY3Úx1Zx2Zx3rB   rB   rC   Ú!test_set_oob_score_label_encoding  s*     ÿÿ ÿÿ ÿÿré   c                 C   s"   | j ddd�} d| t | ¡ < | S )NÚfloatT)râ   r   )Zastyper�   Úisfinite)rR   rB   rB   rC   Úreplace1  s    rì   c               
   C   s8  t  dddgdd dgdt jdgdt jdgdt j dgg¡} t  dddddg¡t  dddgdddgdddgdddgdddgg¡g}|D ]®}tƒ }tttƒ|ƒ}| | |¡ 	| ¡ t
|ƒ}| | |¡ 	| ¡}|j|jksØt‚tƒ }t|ƒ}t t¡� | | |¡ W 5 Q R X t
|ƒ}t t¡� | | |¡ W 5 Q R X q„d S )Nr'   r¬   r’   r0   é   é	   é   )r�   ÚarrayÚnanÚinfr   r   r   rì   r8   r9   r   r|   rk   r    rÄ   rÅ   )rR   Zy_valuesrS   Z	regressorÚpipelineZbagging_regressorÚy_hatrB   rB   rC   Ú*test_bagging_regressor_with_missing_inputs7  s@    

ûÿ
ûÿþrõ   c               	   C   s  t  dddgdd dgdt jdgdt jdgdt j dgg¡} t  dddddg¡}tƒ }tttƒ|ƒ}| | |¡ 	| ¡ t
|ƒ}| | |¡ | 	| ¡}|j|jks¢t‚| | ¡ | | ¡ tƒ }t|ƒ}t t¡� | | |¡ W 5 Q R X t
|ƒ}t t¡� | | |¡ W 5 Q R X d S )Nr'   r¬   r’   r0   rí   )r�   rð   rñ   rò   r   r   r   rì   r8   r9   r   r|   rk   rH   rG   r    rÄ   rÅ   )rR   rS   Ú
classifierró   Zbagging_classifierrô   rB   rB   rC   Ú+test_bagging_classifier_with_missing_inputs`  s2    

ûÿ	


r÷   c                  C   sD   t  ddgddgg¡} t  ddg¡}ttƒ ddd�}| | |¡ d S )Nr'   r0   r¬   r(   r   g333333Ó?)r+   r$   )r�   rð   r   r   r8   rÛ   rB   rB   rC   Útest_bagging_small_max_features€  s    rø   c                  C   sj   t j d¡} |  dd¡}t  d¡}G dd„ dtƒ}t|ƒ ddd�}| ||¡ t|j	d j
|jd ƒ d S )Nr   é   r(   c                   @   s   e Zd ZdZdd„ ZdS )z8test_bagging_get_estimators_indices.<locals>.MyEstimatorz7An estimator which stores y indices information at fit.c                 S   s
   || _ d S rK   )Ú_sample_indicesrP   rB   rB   rC   r8   –  s    z<test_bagging_get_estimators_indices.<locals>.MyEstimator.fitN)rW   rX   rY   rZ   r8   rB   rB   rB   rC   ÚMyEstimator“  s   rû   r'   )r2   r3   r$   )r�   ÚrandomZRandomStateZrandnZaranger   r   r8   r"   ri   rú   rÞ   )r:   rR   rS   rû   r£   rB   rB   rC   Ú#test_bagging_get_estimators_indicesŠ  s    
rý   zBagging, Estimatorc              	   C   s`   t  ddgddgg¡}t  ddg¡}| |ƒ dd�}d}tjt|d	�� | ||¡ W 5 Q R X d S )
Nr'   r0   r¬   r(   r   rÂ   )Úbase_estimatorr3   úV`base_estimator` was renamed to `estimator` in version 1.2 and will be removed in 1.4.rœ   )r�   rð   r    r¡   ÚFutureWarningr8   )ÚBaggingZ	EstimatorrR   rS   Úmodelr¥   rB   rB   rC   Ú'test_base_estimator_argument_deprecated   s    ÿr  r  c              	   C   s^   t  ddgddgg¡}t  ddg¡}| ƒ }| ||¡ d}tjt|d�� |j W 5 Q R X d S )Nr'   r0   r¬   r(   r   zoAttribute `base_estimator_` was deprecated in version 1.2 and will be removed in 1.4. Use `estimator_` instead.rœ   )r�   rð   r8   r    r¡   r   Zbase_estimator_)r  rR   rS   r  r¥   rB   rB   rC   Ú'test_base_estimator_property_deprecatedµ  s    ÿr  c               	   C   sp   t ƒ } | j| j }}ttƒ d�}t|dƒs.t‚d}tjt	|d�� | 
||¡ |¡}W 5 Q R X |jdkslt‚dS )zSCheck that `BaggingClassifier` delegate to classifier with
    `decision_function`.)rþ   rI   rÿ   rœ   )é–   r¬   N)r   r5   r6   r   r   r©   rk   r    r¡   r   r8   rI   r|   )r4   rR   rS   r£   r¥   Z
y_decisionrB   rB   rC   Ú4test_deprecated_base_estimator_has_decision_functionÈ  s    ÿr  zbagging, expected_allow_nanr'   r/   c                 C   s   |   ¡ d |kst‚dS )z*Check that bagging inherits allow_nan tag.Ú	allow_nanN)Z	_get_tagsrk   )rÜ   Zexpected_allow_nanrB   rB   rC   Útest_bagging_allow_nan_tagØ  s    r  )rÈ   )hrZ   Ú	itertoolsr   r   r~   Únumpyr�   r    Zscipy.sparser   r   Zsklearn.baser   Zsklearn.datasetsr   r   r	   Zsklearn.dummyr
   r   Zsklearn.ensembler   r   r   r   Zsklearn.feature_selectionr   Zsklearn.linear_modelr   r   Zsklearn.model_selectionr   r   r   Zsklearn.neighborsr   r   Zsklearn.pipeliner   Zsklearn.preprocessingr   r   Zsklearn.random_projectionr   Zsklearn.svmr   r   Zsklearn.treer   r   Zsklearn.utilsr    Zsklearn.utils._testingr!   r"   r:   r4   Zpermutationr6   rÃ   Úpermr5   rv   rD   ÚmarkZparametrizert   rw   ry   rz   rŠ   rŽ   r–   r¦   r§   r¨   r«   r´   rµ   r·   r¹   r¾   r¿   rÇ   rÏ   rÑ   rÕ   rÖ   r×   rÙ   rÝ   rá   rã   rä   ré   rì   rõ   r÷   rø   rý   r  r  r  r  rB   rB   rB   rC   Ú<module>   sÔ   !üü

ò
îþ
)9	*#%$),	

() 
þþ
þ
üþ	