o
    i                     @   s  d Z ddlZddlZddlZddlmZ ddlZddlZddl	Z	ddl
mZmZmZmZ ddlmZ ddl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mZm Z  ddl!m"Z" g dZ#eddd\Z$Z%e &e$dd Z'e%dd Z(eddd\Z$Z%e &e$dd Z)e%dd Z*e'e(fe)e*fgZ+edddddd\Z,Z-ee-Z-e,e-fgZ.e Z/e/j0Z1e/j2Z3dd Z4dd Z5dd Z6e	j78de+dd Z9e	j78de.d d! Z:e	j78de+d"d# Z;e	j78de.d$d% Z<d&d' Z=d(d) Z>d*d+ Z?d,d- Z@d.d/ ZAd0d1 ZBd2d3 ZCd4d5 ZDd6d7 ZEd8d9 ZFd:d; ZGd<d= ZHd>d? ZIe	j78d@e"dAdB ZJdCdD ZKdEdF ZLe	j78dGeegdHdI ZMdJdK ZNdLdM ZOe	j78dGeegdNdO ZPdPdQ ZQe	j7RdRdSdT ZSdUdV ZTdWdX ZUdYdZ ZVe	j78d[ejWejXge	j78d\eegd]d^ ZYd_d` ZZe	j78d\eegdadb Z[e	j78dGeegdcdd Z\e	j78dGeege	j78deg dfdgdh Z]e	j78dGeegdidj Z^dkdl Z_dmdn Z`dodp Zadqdr ZbdS )szD
Testing for Multi-layer Perceptron module (sklearn.neural_network)
    N)StringIO)load_digits	load_irismake_multilabel_classificationmake_regression)ConvergenceWarning)PoissonRegressor)roc_auc_score)MLPClassifierMLPRegressor)LabelBinarizerMinMaxScalerscale)assert_allcloseassert_almost_equalassert_array_equalignore_warnings)CSR_CONTAINERS)identitylogistictanhrelu   T)Zn_classZ
return_X_y      
   g      4@g      Y@   )	n_samples
n_featuresZbiasnoiserandom_statec               	   C   s   t d d } td d }g }td}dd }|D ]8}td|dd}ttd || | W d    n1 s8w   Y  |t	||j
d	 ||j
d g qtt|d D ]}|| ||d  k sjJ qZd S )
Nd   r   c                 S   s   t t | S N)npsumabs)x r'   _/home/kim/smarthome/.venv/lib/python3.10/site-packages/sklearn/neural_network/tests/test_mlp.py<lambda>H   s    ztest_alpha.<locals>.<lambda>r      )hidden_layer_sizesalphar    categoryr   )X_digits_binaryy_digits_binaryr#   aranger
   r   r   fitappendarraycoefs_rangelenall)XyZalpha_vectorsZalpha_valuesZabsolute_sumr,   mlpir'   r'   r(   
test_alphaA   s    
 r=   c               
   C   s  t g dg} t dg}tddddddddd}dgd |_dgd |_d|_t dd	gd
dgddgg|jd< t dgd	gg|jd< t ddg|jd< t dg|jd< g d |_g d |_d|_d|_	d|_
d|_dg|jd  |_dg|jd  |_d|_d|_t j|_g |_d|_dd |jD |_dd |jD |_|j| |ddgd t|jd t ddgddgddggdd t|jd t dgdggdd t|jd t ddgdd t|jd t ddd t|| d ddd d S ) N)g333333?皙?gffffff?r   sgd皙?r   r*   r   )solverlearning_rate_initr,   
activationr    max_iterr+   momentum皙?g333333?      ?      ?r   c                 S      g | ]}t |qS r'   r#   Z
zeros_like).0Z
interceptsr'   r'   r(   
<listcomp>   s    
ztest_fit.<locals>.<listcomp>c                 S   rI   r'   rJ   )rK   Zcoefsr'   r'   r(   rL          classesgJ+?guX?gડ2?g'?g.NV?gVSbb)decimalgF??g#070?gY,?g~?gZd;O?)r   r*   gS?)r#   r4   r
   r5   intercepts_
n_outputs_Z_coef_gradsZ_intercept_gradsZn_features_in_n_iter_Zlearning_rate_	n_layers_Zout_activation_Zt_inf
best_loss_Zloss_curve__no_improvement_countZ_intercept_velocityZ_coef_velocitypartial_fitr   predict_probar9   r:   r;   r'   r'   r(   test_fitV   s\   "

"	r[   c                     s@  dD ]} d}d}t jjdd}||| dt t |d |  }t |tD ]}t	|dddd	ddd
t
  t
dt  | W d    n1 sSw   Y  t dd jj D } jd gjg jg }g g g g   tjd D ]@}t  jd ||d  f t  jd ||d  f || }	||d  }
t |	|
f t |
 q fdd}||\}}t t |}t |d}t |}d}t|D ]"}|d d |f | }||| d ||| d  |d  ||< qt|| q+qd S )N)r   r      r   *   )seedr*   lbfgsh㈵>rF   )rC   r+   rA   r,   rB   rD   r    ignorec                 S   s   g | ]}|  qS r'   )Zravel)rK   lr'   r'   r(   rL      s    z!test_gradient.<locals>.<listcomp>r   c              
      s    |  d S r"   )Z_loss_grad_lbfgs)tr9   YZactivationsZ
coef_gradsZdeltasZintercept_gradsr;   r'   r(   loss_grad_fun   s   z$test_gradient.<locals>.loss_grad_fung       @)r#   randomRandomStateZrandmodr1   r   fit_transformACTIVATION_TYPESr
   warningscatch_warningssimplefilterr   r2   Zhstackr5   rQ   shaper+   rR   r3   r6   rT   emptyZzerossizeeyer   )Zn_labelsr   r   r    r:   rC   thetaZlayer_unitsr<   Zfan_inZfan_outrf   valueZgradZnumgradnEepsilonZdthetar'   rd   r(   test_gradient   sb   

	
""

rx   zX,yc           	   	   C   s   | d d }|d d }| dd  }|j d |jjf}tD ].}tddddd|d}||| ||}|||dks>J |j d |jjf|ksKJ qd S )	N   r   r_   2   Tr*   )rA   r+   rD   shuffler    rC   ffffff?)ro   dtypekindrk   r
   r2   predictscore)	r9   r:   ZX_trainZy_trainZX_testZexpected_shape_dtyperC   r;   Z	y_predictr'   r'   r(   test_lbfgs_classification   s$   
r   c              
   C   sb   t D ],}tdddddd|d}|| | |dkr$|| |d	ks#J q|| |d
ks.J qd S )Nr_   rz   r   MbP?Tr*   )rA   r+   rD   tolr{   r    rC   r   r>   g\(\?)rk   r   r2   r   )r9   r:   rC   r;   r'   r'   r(   test_lbfgs_regression  s   	r   c              
   C   sl   d}t D ]/}tddd|dd|d}tt || | ||jks$J W d    n1 s.w   Y  qd S )Nr   r_   rz   ry   Tr*   )rA   r+   rD   max_funr{   r    rC   )rk   r
   pytestwarnsr   r2   rS   r9   r:   r   rC   r;   r'   r'   r(    test_lbfgs_classification_maxfun(  s"   	r   c                 C   sn   d}t D ]0}tdddd|dd|d}tt || | ||jks%J W d    n1 s/w   Y  qd S )	Nr   r_   rz   g        ry   Tr*   )rA   r+   r   rD   r   r{   r    rC   )rk   r   r   r   r   r2   rS   r   r'   r'   r(   test_lbfgs_regression_maxfun=  s$   
r   c               	   C   s   ddgddgddgddgg} g d}d	D ]Q}t d
d|dddd}ttd || | |jj}|| | |jj}W d    n1 sDw   Y  |dkrT||ksSJ q|dkre|jtd|j |kseJ qd S )Nr   r   r*      r\   )r*   r*   r*   r   )
invscalingconstantr?      g      ?T)rA   r+   learning_raterD   power_t
warm_startr-   r   r   	   )	r
   r   r   r2   
_optimizerr   rB   powr   )r9   r:   r   r;   Zprev_etaZpost_etar'   r'   r(   test_learning_rate_warmstartS  s.   
r   c               	   C   s   t dddd\} }tddddddd	d
}|| | || |dks$J tddddddd	d}tdD ]}|j| |g dd q3|| |dksJJ tdd}|| ||  d S )Nrz   r   Tr   r    Zreturn_indicatorr_   r`   ry   r   rF   )rA   r+   r,   rD   r    rC   rB   g
ףp=
?r?   )rA   r+   rD   r    rC   r,   rB   r!   )r   r*   r   r   r   rN   ?early_stopping)r   r
   r2   r   r6   rX   r   )r9   r:   r;   r<   r'   r'   r(   test_multilabel_classificationl  s8   
		
r   c                  C   sH   t dddd\} }tdddddd	}|| | || |d
ks"J d S )Nr   r\      )r   	n_targetsr    r_   rz   {Gz?r*   )rA   r+   rD   r   r    r   )r   r   r2   r   rZ   r'   r'   r(   test_multioutput_regression  s   
r   c                  C   sr   ddgg} dg}t dd}|j| |ddgd tt |j| |ddgd W d    d S 1 s2w   Y  d S )Nr   r   r   r?   rA   r*   rN   )r
   rX   r   raises
ValueErrorr9   r:   clfr'   r'   r(   test_partial_fit_classes_error  s   

"r   c               	   C   s   t D ]\\} }tddddddd}ttd || | W d    n1 s&w   Y  || }tddddd	}tdD ]}|j| |t	|d
 q<|| }t
|| || |dks^J qd S )Nr?   r!   r*   r   r`   rF   )rA   rD   r    r   r,   rB   r-   )rA   r    r,   rB   rN   r|   )classification_datasetsr
   r   r   r2   r   r6   rX   r#   uniquer   r   )r9   r:   r;   pred1r<   pred2r'   r'   r(   test_partial_fit_classification  s,   	


r   c                  C   sl   t dd} | jdgdgdggg dg dd | d	ggd
g | dgdgdgd	ggg ddks4J d S )Nr   )r    r*   r   r   )abc)r   r   r   drN   r   r   )r
   rX   r   )r   r'   r'   r(   test_partial_fit_unseen_classes  s   
$,r   c               
   C   s   t } t}dD ]e}tddddd| jd |d}t  td	t || | W d    n1 s1w   Y  |	| }tdddd| jd |d
}t
dD ]}|| | qL|	| }t|| || |}|dkskJ qd S )N)r   r   r?   r!   r   r*   r   r   )rA   rD   rC   r    rB   
batch_sizerE   ra   )rA   rC   rB   r    r   rE   g?)X_regy_regr   ro   rl   rm   rn   r   r2   r   r6   rX   r   r   )r9   r:   rE   r;   r   r<   r   r   r'   r'   r(   test_partial_fit_regression  s@   
	


r   c                  C   sr   ddgddgg} ddg}t t tddj| |dgd W d    n1 s(w   Y  ttd	dd
r7J d S )Nr   r   r*   r   r   r?   r   rN   r_   rX   )r   r   r   r
   rX   hasattr)r9   r:   r'   r'   r(   test_partial_fit_errors  s   r   c               	   C   s   t jd} d}t t jj}|| j|dfd }| j|d}t }d}t	j
t|d0 t  td ||| W d    n1 sFw   Y  W d    d S W d    d S 1 s^w   Y  d S )Nr   r   r   )rq   zrSolver produced non-finite parameter weights. The input data may contain large values and need to be preprocessed.matchra   )r#   rg   rh   Zfinfofloat64maxuniformZstandard_normalr   r   r   r   rl   rm   rn   r2   )rngr   Zfmaxr9   r:   r   msgr'   r'   r(   test_nonfinite_params  s    

"r   c            	      C   s   t d d } td d }tdddd}ttd || | W d    n1 s)w   Y  || }|| }|jd d}}|j	dd	}|j	dd	}|j||fksUJ t
|| t|t| t||d d df d
ksqJ d S )Nrz   r\   r   r*   )r+   rC   r    r-   r   r   ZaxisrH   )r/   r0   r
   r   r   r2   rY   predict_log_probaro   argmaxr   r   r#   logr	   	r9   r:   r   y_probay_log_probar   	n_classes	proba_maxproba_log_maxr'   r'   r(   test_predict_proba_binary  s   


"r   c            	      C   s   t d d } td d }tdd}ttd || | W d    n1 s'w   Y  || }|| }|jd t	
|j}}|jdd}|jdd}|j||fksWJ t|| t|t	| d S )Nr   r\   )r+   r-   r   r*   r   )X_digits_multiy_digits_multir
   r   r   r2   rY   r   ro   r#   r   rq   r   r   r   r   r   r'   r'   r(   test_predict_proba_multiclass)  s   



r   c            	      C   s   t dddd\} }|j\}}tdddd}|| | || }|j||fks)J t|dk| || }|jd	d
}|jd	d
}|d	d	 	|d	d	 dksTJ t|| t
|t| d S )Nrz   r   Tr   r_      rA   r+   r    rG   r*   r   g|=)r   ro   r
   r2   rY   r   r   r   r$   dotr   r#   r   )	r9   re   r   r   r   r   r   r   r   r'   r'   r(   test_predict_proba_multilabel>  s   



&
r   c               	   C   s:  t ddddd\} }dD ]H}tdddd|d}tdddd|d}t  tdt || | || | W d    n1 sAw   Y  t|j	d |j	d sTJ qtddddd	d}tddddd
d}t  tdt || | || | W d    n1 sw   Y  t|j	d |j	d rJ d S )Nrz   r\   r*   r   )r   r   r   r    )TF)r+   rD   r   r    r{   ra   TF)
r   r   rl   rm   rn   r   r2   r#   Zarray_equalr5   )r9   r:   r{   Zmlp1Zmlp2r'   r'   r(   test_shuffleV  sD   



 r   csr_containerc                 C   s   t d d }td d }| |}tdddd}||| ||}||| ||}t|| ||}||}t|| d S )Nrz   r_      r*   r   )r/   r0   r
   r2   r   r   r   )r   r9   r:   ZX_sparser;   r   r   r'   r'   r(   test_sparse_matrices  s   




r   c                  C   sF   ddgddgg} ddg}t dddd	}|| | |j|jks!J d S )
Nr   r   r*   r   r   rG     r?   )r   rD   rA   )r
   r2   rD   rS   r   r'   r'   r(   test_tolerance  s
   r   c                  C   s   ddgddgg} ddg}t ddddd}tj}t  t_}ttd	 || | W d    n1 s3w   Y  || | |t_d
| v sIJ d S )Nr   r   r*   r   r   r?   r   )rA   rD   verboser+   r-   Z	Iteration)	r
   sysstdoutr   r   r   r2   rX   getvalue)r9   r:   r   Z
old_stdoutoutputr'   r'   r(   test_verbose_sgd  s   r   MLPEstimatorc                 C   s   t d d }td d }d}| |dddd}||| |j|jks$J |jd u s+J t|jts3J |j}|j	}t
||ksAJ || |d ksKJ || |d ksUJ | |ddd	d}||| |jd u sjJ |j	d u sqJ |jd usxJ d S )
Nr!   rF   r   r?   T)r   rD   rA   r   r   F)r/   r0   r2   rD   rS   rV   
isinstancevalidation_scores_listZbest_validation_score_r   )r   r9   r:   r   Zmlp_estimatorZvalid_scoresZbest_valid_scorer'   r'   r(   test_early_stopping  s,   r   c                  C   sX   ddgddgg} ddg}t dddd	d
}|| | |j|jks"J d|jjks*J d S )Nr   r   r*   r   r   rG   r   r?   Zadaptive)r   rD   rA   r   gư>)r
   r2   rD   rS   r   r   r   r'   r'   r(   test_adaptive_learning_rate  s   r   c            
   	   C   s  t } t}tdgd dgd  }tdgd dgd  dgd  }tdgd dgd  dgd  }tdgd	 dgd	  dgd
  dgd
  }tdgd dgd  dgd  dgd  dgd  }tdddddd| |}|| | || | ||||fD ]6}tdddddd| |}dt| }	tjt	t
|	d || | W d    n1 sw   Y  qd S )Nr   K   r*   (   r   F   rz   r   %   &   r   r   r_   Tr]   r   )r+   rA   r   r    r   z}warm_start can only be used where `y` has the same classes as in the previous call to fit. Previously got [0 1 2], `y` has %sr   )X_irisy_irisr#   r4   r
   r2   r   r   r   r   reescape)
r9   r:   Z
y_2classesZ
y_3classesZy_3classes_altZ
y_4classesZ
y_5classesr   Zy_imessager'   r'   r(   test_warm_start  sB   $$.8
r   c                 C   s   t t}}d}| ddd|d}t ) tdt ||| ||jks'J ||| ||jks4J W d    d S 1 s?w   Y  d S )Nr   r   r?   T)r+   rA   r   rD   ra   )r   r   rl   rm   rn   r   r2   rS   )r   r9   r:   rD   r   r'   r'   r(   test_warm_start_full_iteration  s   

"r   c                  C   sj   t d d } td d }d}d}dD ] }t||d|d}|| | |j|d ks+J ||jks2J qd S )Nr!   r   r   )r   r\   r   rz   r!   r?   r   rD   rA   n_iter_no_changer*   )r/   r0   r
   r2   rW   rS   )r9   r:   r   rD   r   r   r'   r'   r(   test_n_iter_no_change  s   r   z-ignore::sklearn.exceptions.ConvergenceWarningc                  C   sh   t d d } td d }d}tj}d}t||d|d}|| | |j|ks(J |j|jd ks2J d S )Nr!   g    eAr   r?   r   r*   )r/   r0   r#   rU   r
   r2   rS   rW   )r9   r:   r   r   rD   r   r'   r'   r(   test_n_iter_no_change_inf  s   r   c                  C   sn   ddgddgddgddgg} g d}t dd}tjtd	d
 || | W d    d S 1 s0w   Y  d S )Nr*   r   r   r   r\   )r   r   r   r*   Tr   z0The least populated class in y has only 1 memberr   )r
   r   r   r   r2   rZ   r'   r'   r(   test_early_stopping_stratified6  s   
"r   c                  C   s   t dddddd} | td d td d  | tdd  }| tdd  }t dddddd}|td d tjtd d  |tdd  tj}|tdd  tj}t	|| t
||dd	 d S )
Nr`   r\   r   r*   r!   r@   r,   r+   r    rD   r   ,  r   Zrtol)r
   r2   X_digitsy_digitsr   rY   astyper#   float32r   r   )mlp_64pred_64Zproba_64mlp_32pred_32Zproba_32r'   r'   r(   "test_mlp_classifier_dtypes_castingB  s   

$
r  c                  C   s   t dddddd} | td d td d  | tdd  }t dddddd}|td d tjtd d  |tdd  tj}t||dd	 d S )
Nr`   r   r*   ry   r   r   r   gMb@?r   )	r   r2   r   r   r   r   r#   r   r   )r   r   r   r   r'   r'   r(   !test_mlp_regressor_dtypes_castingV  s   

$r  r}   	Estimatorc                    s   t  t}}|dddddd}||d d |d d  ||dd  }t fdd	|jD s6J t fd
d	|jD sDJ |tkrO|j	 ksQJ d S d S )Nr`   r   r*   rz   r@   r   r   c                       g | ]}|j  kqS r'   r}   )rK   Z	interceptr  r'   r(   rL   r  rM   z)test_mlp_param_dtypes.<locals>.<listcomp>c                    r  r'   r  )rK   Zcoefr  r'   r(   rL   t  rM   )
r   r   r   r2   r   r8   rQ   r5   r   r}   )r}   r  r9   r:   r;   predr'   r  r(   test_mlp_param_dtypesf  s   
r  c           
      C   s   t ddddd}dggdg}}||| | d }t|| t|}dggd	g}}tdD ]}||| q1||}	t|	|d
d dS )zYLoading from MLP and partial fitting updates weights. Non-regression
    test for #19626.)r]   r]   r   r   )r+   r    rB   rD   r   r   zmlp.pklr*   -C6?r   N)	r   r2   joblibdumploadr6   rX   r   r   )
Ztmp_pathZpre_trained_estimatorfeaturestargetZpickled_fileZload_estimatorZfine_tune_featuresZfine_tune_target_Zpredicted_valuer'   r'   r(   (test_mlp_loading_from_joblib_partial_fitz  s   

r  c                 C   s   t d}tjd}|j|ddddgd}|jtddd	d
}| ddd}t	
  t	dt ||| W d   dS 1 sEw   Y  dS )zCheck that feature names are preserved when early stopping is enabled.

    Feature names are required for consistency checks during scoring.

    Non-regression test for gh-24846
    Zpandasr   r   r   Z	colname_aZ	colname_b)datacolumnsr*   Z	colname_y)r  nameTrF   )r   Zvalidation_fractionerrorN)r   Zimportorskipr#   rg   rh   Z	DataFrameZrandnZSeriesfullrl   rm   rn   UserWarningr2   )r  pdr   r9   r:   modelr'   r'   r(   test_preserve_feature_names  s   

"r  c                 C   s   | ddddd}t  % t dt |tt t|j}|j	dd |tt W d   n1 s4w   Y  t|j|ksBJ dS )	z0Check that early stopping works with warm start.r   r   T)rD   r    r   r   ra      rD   N)
rl   rm   rn   r   r2   r   r   r7   r   
set_params)r   r;   Zn_validation_scoresr'   r'   r(   'test_mlp_warm_start_with_early_stopping  s   

r  rA   )r?   adamr_   c                 C   s   | |dddt jdd}tt |tt W d   n1 s!w   Y  |jdks-J |j	dd tt |tt W d   n1 sIw   Y  |jdksUJ dS )	zCheck that we stop the number of iteration at `max_iter` when warm starting.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/24764
    TFr   r   )rA   r   r   rD   r   r    Nr  r  )
r#   rU   r   r   r   r2   r   r   rS   r  )r   rA   r  r'   r'   r(   "test_mlp_warm_start_no_convergence  s"   	r  c                 C   sX   | ddd tt}d}tjt|d |tt W d   dS 1 s%w   Y  dS )zoCheck partial fit does not fail after fit when early_stopping=True.

    Non-regression test for gh-25693.
    Tr   r   r    z0partial_fit does not support early_stopping=Truer   N)r2   r   r   r   r   r   rX   )r   r;   r   r'   r'   r(   test_mlp_partial_fit_after_fit  s
   "r   c                  C   s   t dddddddddd	d
d} t  tdt tdt | tt W d   n1 s0w   Y  t	| j
d t	tjksCJ t| j
d tsMJ dS )zTest that a diverging model does not raise errors when early stopping is enabled.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/29504
    r!   r   r?   r  r   r*   Tr  r   r   )r+   rC   rA   r,   r   rB   r{   rD   r   r   r    ra   Nr   )r   rl   rm   rn   RuntimeWarningr   r2   r   r   strr   r#   nanr   float)r;   r'   r'   r(   test_mlp_diverging_loss  s(   
r%  c               	   C   s   t ddddd\} }t|}tdddddddd	}tdi |}|j| ||d
 tdi |j| |d d
}t|| ||  d S )Nr!   r   r]   )r   r   Zn_informativer    r   r  Tr   )r+   rA   r   r   rB   r   r    )Zsample_weightr'   )r   r#   Z	ones_likedictr   r2   r   r   )r9   r:   swparamsm1m2r'   r'   r(   *test_mlp_sample_weight_with_early_stopping  s,   

	r+  c                 C   s   d}t j| }t dd|}|t |d }||d}tddd||}t	ddd	dd
dt j
| d d||}t||||dd t	ddd	dd
dt j
| d d||}t j||||ddrpJ dS )z:Test MLP with Poisson loss and no hidden layer equals GLM.r!   r   r*   r   gHz>)r,   r   poisson)r*   r   r_   )Zlossr+   rC   r,   rA   r   r    r  r   Zsquared_errorN)r#   rg   Zdefault_rngZlinspacer,  expZreshaper   r2   r   rh   r   r   Zallclose)Zglobal_random_seedru   r   r9   r:   Zglmr;   r'   r'   r(   "test_mlp_vs_poisson_glm_equivalent  s<   
$	r.  c                  C   s^   t dddd\} }tddd}tjtdd || | W d	   d	S 1 s(w   Y  d	S )
z9Check error message when the validation set is too small.r   r\   r   )r   r   r    Tr  zThe validation set is too smallr   N)r   r   r   r   r   r2   )r9   r:   r  r'   r'   r(   test_minimum_input_sample_sizeA  s
   "r/  )c__doc__r   r   rl   ior   r	  numpyr#   r   Zsklearn.datasetsr   r   r   r   Zsklearn.exceptionsr   Zsklearn.linear_modelr   Zsklearn.metricsr	   Zsklearn.neural_networkr
   r   Zsklearn.preprocessingr   r   r   Zsklearn.utils._testingr   r   r   r   Zsklearn.utils.fixesr   rk   r   r   rj   r   r   r/   r0   r   r   r   Zregression_datasetsZirisr  r   r  r   r=   r[   rx   markZparametrizer   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   filterwarningsr   r   r  r  r   r   r  r  r  r  r  r   r%  r+  r.  r/  r'   r'   r'   r(   <module>   s    


aC



&


%*


	"





 %