
    Ugs                        d Z ddlmZ ddlZddlZddlmZ ddl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mZ dd	lmZ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'm(Z(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1m2Z2m3Z3 ddl4m5Z5 ddl6m7Z7m8Z8m9Z9 ddl:m;Z;m<Z<m=Z=  e            Z>e>j?        e>j@        cZAZB e            ZCeCj?        eCj@        cZDZE edd          \  ZFZG edd          \  ZHZIejJ        K                    dd e(ddd          g          ejJ        K                    dd ed          g          ejJ        K                    dddg          d                                     ZLd  ZMd! ZNd" ZOejJ        K                    dd e'ddd          g          ejJ        K                    d#di f ed          i f e            d$difg          ejJ        K                    dddg          d%                                     ZPejJ        K                    d&e;e<z   e=z             d'             ZQejJ        K                    d&e;e<z   e=z             d(             ZRd) ZS G d* d+ee          ZT G d, d-ee          ZUejJ        K                    d.eEd/g ieVd0feEd1 e#            fd2 e1d34          fgd5d6eVd7feEd/d1 e#            fd8 eU            fgieWd9feEd1 e#            fd8 e2d34          fg eU            d:eWd9fg          d;             ZXejJ        K                    d.eBd/g ieVd0feBd/d1 e"            fd8 eT            fgieWd9feBd1 e"            fd8 e3            fg eT            d:eWd9fg          d<             ZYejJ        K                    d= ed1 e#d          fd2 e2d          fg>          eDdd?         eEdd?         f ed1 e"            fd2 e3d          fg>          eAeBfgd@dAgB          dC             ZZdD Z[ejJ        K                    dE ed1 e#            fd2 e2d          fg e#             e'ddF          G          g edH          R  ed1 e"            fd2 e3d          fg e"             e'ddF          G          eAeBfgd@dAgB          dI             Z\dJ Z]ejJ        ^                    dK          ejJ        K                    dE ed1 e#            fd2 e2d          fg e#            :          g edH          R  ed1 e"            fd2 e3d          fg e"            :          eAeBfgd@dAgB          dL                         Z_ejJ        K                    dMeed5 e#d          eDeEfeedN e"            eAeBfg          dO             Z`ejJ        K                    dE ed1 e#            fd2 e1            fgdPQ          eDeEf ed1 e"            fd2 e3            fgdPQ          eAeBfg          dR             ZaejJ        K                    dSeee#feee"fg          dT             ZbejJ        K                    dU e-d           ed          gdVdWgB          dX             ZcdY ZdejJ        K                    dZd[dNg          ejJ        K                    dddg          d\                         ZeejJ        K                    d] ed1 e#d          fd2 e2d          fg>          eCjf        eDeEg d^f ed1 e#d          fd_d2 e2d          fg>          eCjf        eDdd?         eEdd?         d`dagf ed1 e"            fd2 e3d          fg>          e>jf        eAeBdbdcgfgg ddB          ejJ        K                    dddg          de                         Zgdf Zhdg ZidS )hz+Test the stacking classifier and regressor.    )MockN)assert_array_equal)sparse)BaseEstimatorClassifierMixinRegressorMixinclone)load_breast_cancerload_diabetes	load_irismake_classificationmake_multilabel_classificationmake_regression)DummyClassifierDummyRegressor)RandomForestClassifierRandomForestRegressorStackingClassifierStackingRegressor)ConvergenceWarningNotFittedError)LinearRegressionLogisticRegressionRidgeRidgeClassifier)KFoldStratifiedKFoldtrain_test_split)KNeighborsClassifier)MLPClassifier)scale)SVC	LinearSVC	LinearSVR)CheckingClassifier)assert_allcloseassert_allclose_dense_sparseignore_warnings)COO_CONTAINERSCSC_CONTAINERSCSR_CONTAINERS   *   )	n_classesrandom_state   cvT)n_splitsshuffler/   final_estimatorr/   passthroughFc                    t          t          t                    t          t          d          \  }}}}dt	                      fdt                      fg}t          ||| |          }|                    ||           |                    |           |	                    |           |
                    ||          dk    sJ |                    |          }	|rdnd}
|	j        d	         |
k    sJ |rt          ||	d d d
d f                    |                    d           |                    ||           |                    |           |	                    |           ||                    |           |                    |          }	|rdnd}|	j        d	         |k    sJ |rt          ||	d d d
d f                    d S d S )Nr-   stratifyr/   lrsvc
estimatorsr4   r1   r6   皙?
         dropr:      r,   )r   r!   X_irisy_irisr   r#   r   fitpredictpredict_probascore	transformshaper&   
set_paramsdecision_function)r1   r4   r6   X_trainX_testy_trainy_testr=   clfX_transexpected_column_countexpected_column_count_drops               c/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/ensemble/tests/test_stacking.pytest_stacking_classifier_irisrY   ;   s    (8fvR( ( ($GVWf +--.	0DEJ
'	  C GGGWKKf99VV$$s****mmF##G"-4BB1=44444 1233000NNfNGGGWKKff%%%mmF##G&1!8q=99999 1233000001 1    c                  @   t          d          \  } }t          t          |           ||d          \  }}}}dt                      fdt	          d          fg}t          |d	          }|                    ||           |                    |          }|j        d
         dk    sJ dt                      fdt                      fg}|
                    |           |                    ||           |                    |          }|j        d
         dk    sJ d S )NT
return_X_yr-   r8   r:   rfr5   r,   r=   r1   rA   r0   r;   r=   )r
   r   r!   r   r   r   rH   rL   rM   r#   rN   )	XyrP   rQ   rR   _r=   rT   rU   s	            rX   :test_stacking_classifier_drop_column_binary_classificationrd   i   s7   ...DAq"2a!ab# # #GVWa 
!##$	%26667J 
q
9
9
9CGGGWmmF##G=q     +--.	0DEJNNjN)))GGGWmmF##G=q      rZ   c                     t          t          t                    t          t          d          \  } }}}ddt	          d          fg}t          dd          }t          dt	          d          fg|d	
          }t          ||d	
          }|                    | |           |                    | |           t          |	                    |          |	                    |                     t          |
                    |          |
                    |                     t          |                    |          |                    |                     d S )Nr-   r8   r:   rC   r;   r   r5   r?   n_estimatorsr/      r=   r4   r1   )r   r!   rF   rG   r#   r   r   rH   r&   rI   rJ   rL   )rP   rQ   rR   rc   r=   r^   rT   clf_drops           rX   'test_stacking_classifier_drop_estimatorrl      sS    #3fvR# # #GVWa !5)*C*C*C"DEJ	Rb	A	A	AB
I155567  C
 "ZPQRRRHGGGWLL'"""CKK'')9)9&)A)ABBBC%%f--x/E/Ef/M/MNNNCMM&))8+=+=f+E+EFFFFFrZ   c                  F   t          t          t                    t          d          \  } }}}ddt	          d          fg}t          dd          }t          dt	          d          fg|d	          }t          ||d	          }|                    | |           |                    | |           t          |	                    |          |	                    |                     t          |
                    |          |
                    |                     d S )
Nr-   r5   rf   svrr   r?   rg   ri   rj   )r   r!   
X_diabetes
y_diabetesr$   r   r   rH   r&   rI   rL   )rP   rQ   rR   rc   r=   r^   regreg_drops           rX   &test_stacking_regressor_drop_estimatorrs      s&    #3j:B# # #GVWa !5)*C*C*C"DEJ	BR	@	@	@B
I155567  C
 !JqQQQHGGGWLL'"""CKK'')9)9&)A)ABBBCMM&))8+=+=f+E+EFFFFFrZ   zfinal_estimator, predict_params
return_stdc                     t          t          t                    t          d          \  }}}}dt	                      fdt                      fg}t          ||| |          }	|	                    ||            |	j        |fi |}
|rdnd}|rt          |
          |k    sJ |	
                    |          }|rdnd}|j        d         |k    sJ |rt          ||d d d	d f                    |	                    d
           |	                    ||           |	                    |           |	
                    |          }|rdnd}|j        d         |k    sJ |rt          ||d d d	d f                    d S d S )Nr-   r5   r:   rn   r<   r0   rA      rC   rD      )r   r!   ro   rp   r   r$   r   rH   rI   lenrL   rM   r&   rN   )r1   r4   predict_paramsr6   rP   rQ   rR   rc   r=   rq   resultexpected_result_lengthrU   rV   rW   s                  rX    test_stacking_regressor_diabetesr}      s    #3j:B# # #GVWa )++,uikk.BCJ
'	  C GGGWS[22>22F"07QQa 56{{44444mmF##G"-4BB1=44444 2344 0111NNfNGGGWKKmmF##G'2!9=99999 2344 0111112 2rZ   sparse_containerc                    t           | t          t                              t          d          \  }}}}dt	                      fdt                      fg}t          dd          }t          ||dd	          }|                    ||           |	                    |          }t          ||d d d
d f                    t          j        |          sJ |j        |j        k    sJ d S )Nr-   r5   r:   rn   r?   rg   ri   Tr<   rw   )r   r!   ro   rp   r   r$   r   r   rH   rL   r'   r   issparseformat	r~   rP   rQ   rR   rc   r=   r^   rT   rU   s	            rX   *test_stacking_regressor_sparse_passthroughr      s   
 #3z**++Zb# # #GVWa )++,uikk.BCJ	BR	@	@	@B
raT  C GGGWmmF##G CDD)9:::?7#####=GN******rZ   c                    t           | t          t                              t          d          \  }}}}dt	                      fdt                      fg}t          dd          }t          ||dd	          }|                    ||           |	                    |          }t          ||d d d
d f                    t          j        |          sJ |j        |j        k    sJ d S )Nr-   r5   r:   r;   r?   rg   ri   Tr<   rB   )r   r!   rF   rG   r   r#   r   r   rH   rL   r'   r   r   r   r   s	            rX   +test_stacking_classifier_sparse_passthroughr      s   
 #3v''b# # #GVWa +--.	0DEJ	Rb	A	A	AB
raT  C GGGWmmF##G BCC999?7#####=GN******rZ   c                  8   t          t          d d                   t          d d         }} dt                      fdt	                      fg}t          |          }|                    | |           |                    |           }|j        d         dk    sJ d S )Nd   r:   r^   r`   rA   r0   )	r!   rF   rG   r   r   r   rH   rL   rM   )X_y_r=   rT   X_metas        rX   )test_stacking_classifier_drop_binary_probr     s    
 6$3$<  &#,B+--.7M7O7O0PQJ


3
3
3CGGBOOO]]2F<?arZ   c                       e Zd Zd Zd ZdS )NoWeightRegressorc                 ^    t                      | _        | j                            ||          S N)r   rq   rH   selfra   rb   s      rX   rH   zNoWeightRegressor.fit  s%    !##x||Aq!!!rZ   c                 @    t          j        |j        d                   S )Nr   )nponesrM   )r   ra   s     rX   rI   zNoWeightRegressor.predict  s    wqwqz"""rZ   N)__name__
__module____qualname__rH   rI    rZ   rX   r   r     s2        " " "# # # # #rZ   r   c                       e Zd Zd ZdS )NoWeightClassifierc                 b    t          d          | _        | j                            ||          S )N
stratified)strategy)r   rT   rH   r   s      rX   rH   zNoWeightClassifier.fit  s*    "L999x||Aq!!!rZ   N)r   r   r   rH   r   rZ   rX   r   r     s#        " " " " "rZ   r   zy, params, type_err, msg_errr=   zInvalid 'estimators' attribute,r:   svmiP  max_iterrJ   )r=   stack_methodz+does not implement the method predict_probacorzdoes not support sample weightr=   r4   c           	         t          j        ||          5  t          di |ddi}|                    t	          t
                    | t          j        t
          j        d                              d d d            d S # 1 swxY w Y   d S Nmatchr1   r,   r   sample_weightr   )	pytestraisesr   rH   r!   rF   r   r   rM   )rb   paramstype_errmsg_errrT   s        rX   test_stacking_classifier_errorr   "  s    T 
xw	/	/	/ J J 00600a000fqQ0H0HIIIJ J J J J J J J J J J J J J J J J J   ABBBc           	         t          j        ||          5  t          di |ddi}|                    t	          t
                    | t          j        t
          j        d                              d d d            d S # 1 swxY w Y   d S r   )	r   r   r   rH   r!   ro   r   r   rM   )rb   r   r   r   rq   s        rX   test_stacking_regressor_errorr   Q  s    2 
xw	/	/	/ R R//&//Q///j!!1BGJ<LQ<O4P4PQQQR R R R R R R R R R R R R R R R R Rr   zestimator, X, yr`   r   r   r   )idsc                 J   t          |           }|                    t          dt          j                            d                               t          |           }|                    d           |                    t          dt          j                            d                               t          |                    ||                              |          d d dd f         |                    ||                              |                     d S )NTr   r3   r/   r1   rC   rD   rA   )	r	   rN   r   r   randomRandomStater&   rH   rL   )	estimatorra   rb   estimator_fullestimator_drops        rX   test_stacking_randomnessr   o  s"   : 9%%NBI,A,A!,D,DEEE     9%%N(((BI,A,A!,D,DEEE     1a  **1--aaae41a  **1--    rZ   c                      t          dt          d          fdt          d          fg          } |                     t          t
                     d S )Nr:   i'  r   r   r`   )r   r   r#   rH   rF   rG   )rT   s    rX   )test_stacking_classifier_stratify_defaultr     s^    
%v6667Iv.../
  C GGFFrZ   zstacker, X, yr   rj   r\   c                    t          |          dz  }t          j        dg|z  dgt          |          |z
  z  z             }t          |||d          \  }}}}}	}t	          t
                    5  |                     ||           d d d            n# 1 swxY w Y   |                     |          }
t	          t
                    5  |                     ||t          j        |j	                             d d d            n# 1 swxY w Y   |                     |          }t          |
|           t	          t
                    5  |                     |||	           d d d            n# 1 swxY w Y   |                     |          }t          j        |
|z
                                            dk    sJ d S )	Nr0   g?g?r-   r5   )categoryr   r   )ry   r   arrayr   r(   r   rH   rI   r   rM   r&   abssum)stackerra   rb   n_half_samplestotal_sample_weightrP   rQ   rR   rc   sample_weight_trainy_pred_no_weighty_pred_unit_weighty_pred_biaseds                rX    test_stacking_with_sample_weightr     s   B VVq[N(	##a&&>*A!BB  ;K	1!; ; ;7GVWa!4a 
"4	5	5	5 & &GW%%%& & & & & & & & & & & & & & &v..	"4	5	5	5 L LGWBGGM4J4JKKKL L L L L L L L L L L L L L L 00$&8999	"4	5	5	5 I IGW4GHHHI I I I I I I I I I I I I I IOOF++M6"]2337799A======s6   1BBB	0DD	D	
E//E36E3c                      t          dt          d          fgt          d                    } |                     t          t          t          j        t          j        d                              d S )Nr:   T)expected_sample_weightr   r   r   )r   r%   rH   rF   rG   r   r   rM   )r   s    rX   0test_stacking_classifier_sample_weight_fit_paramr     sk     -TJJJKL*$GGG  G KKbgfl1o.F.FKGGGGGrZ   z-ignore::sklearn.exceptions.ConvergenceWarningc                    t          |           }t          |           }|                    d           |                    d           |                    ||           |                    ||           t          |j        |j                  D ]\  }}t          |j        |j                    t          j        t          d          5  t          |j
        j        |j
        j                   d d d            d S # 1 swxY w Y   d S )Nr,   r   ri   z	Not equalr   )r	   rN   rH   zipestimators_r&   coef_r   r   AssertionErrorfinal_estimator_)r   ra   rb   stacker_cv_3stacker_cv_5est_cv_3est_cv_5s          rX   test_stacking_cv_influencer     sP   B >>L>>Lq!!!q!!!QQ ",":L<TUU 8 8(7777 
~[	9	9	9 
 
)/1N1T	
 	
 	

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
s   %C>>DDz7Stacker, Estimator, stack_method, final_estimator, X, yrI   c                 t   t          ||dd          \  }}}}	d |                                ||          fd |                                ||          fg}
|
D ]R\  }}t          d          |_        t          ||          }t          |          }||_        t          |||           S | |
d	|
          }|                    ||	           |j        d |
D             k    sJ t          d |j        D                       sJ |j        D ]'}t          ||          }|                    |           (dS )z2Check the behaviour of stacking when `cv='prefit'`r-   g      ?)r/   	test_sized0d1rH   )name)side_effectprefit)r=   r1   r4   c                     g | ]\  }}|S r   r   ).0rc   r   s      rX   
<listcomp>z(test_stacking_prefit.<locals>.<listcomp>P  s    "L"L"LI9"L"L"LrZ   c              3   6   K   | ]}|j         j        d k    V  dS )r   N)rH   
call_count)r   r   s     rX   	<genexpr>z'test_stacking_prefit.<locals>.<genexpr>R  s,      RRy}'1,RRRRRRrZ   N)	r   rH   r   getattrr   setattrr   allassert_called_with)Stacker	Estimatorr   r4   ra   rb   X_train1X_train2y_train1y_train2r=   rc   r   
stack_funcpredict_method_mockedr   stack_func_mocks                    rX   test_stacking_prefitr   "  s   . .>	12. . .*Hh( 
yy{{x223	yy{{x223J # @ @9%(((	Y55
 $ < < < *6&	<)>????g(O  G KK(###"L"L"L"L"LLLLLRRg>QRRRRRRRR ( 5 5	!)\::**844445 5rZ   r   r_   c                     t          j        t                    5  |                     ||           d d d            d S # 1 swxY w Y   d S r   )r   r   r   rH   )r   ra   rb   s      rX   test_stacking_prefit_errorr   Z  s    6 
~	&	&  Aq                 s   >AAz!make_dataset, Stacking, Estimatorc                     G d d|          } | dd          \  }} |d |            fg          }|j          d}t          j        t          |	          5  |j         d d d            n# 1 swxY w Y   |                    ||           d
}t          j        t          |	          5  |j         d d d            d S # 1 swxY w Y   d S )Nc                   "     e Zd ZdZ fdZ xZS )8test_stacking_without_n_features_in.<locals>.MyEstimatorz Estimator without n_features_in_c                 P    t                                          ||           | `d S r   )superrH   n_features_in_)r   ra   rb   	__class__s      rX   rH   z<test_stacking_without_n_features_in.<locals>.MyEstimator.fit  s'    GGKK1###rZ   )r   r   r   __doc__rH   __classcell__)r   s   @rX   MyEstimatorr     s>        ..	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$rZ   r   r   r   )r/   	n_samplesr:   r`   z' object has no attribute n_features_in_r   z6'MyEstimator' object has no attribute 'n_features_in_')r   r   r   AttributeErrorr   rH   )make_datasetStackingr   r   ra   rb   r   msgs           rX   #test_stacking_without_n_features_inr  y  s   $ $ $ $ $i $ $ $ <Q#666DAqhD++--#8"9:::G
G
G
GC	~S	1	1	1                 KK1
BC	~S	1	1	1                   s$   A//A36A3-CC	Cr   r    r   c                    t          t          t          t          d          \  }}}}d}d| fg}t          |t	                      d                              ||          }|                    |          }|j        |j        d         |fk    sJ t          t          j
        |                    d	          d
                    rJ |                    |          }	|	j        |j        k    sJ dS )zCheck the behaviour for the multilabel classification case and the
    `predict_proba` stacking method.

    Estimators are not consistent with the output arrays and we need to ensure that
    we handle all cases.
    r-   r8   r,   estrJ   r=   r4   r   r   rA   )axisg      ?N)r   X_multilabely_multilabelr   r   rH   rL   rM   anyr   iscloser   rI   )
r   rP   rQ   rR   rS   	n_outputsr=   r   rU   y_preds
             rX   1test_stacking_classifier_multilabel_predict_probar    s   $ (8l\( ( ($GVWf I)$%J ,..$   
c'7	  ''G=V\!_i888882:gkkqk1137788888__V$$F<6<''''''rZ   c                     t          t          t          t          d          \  } }}}d}dt                      fg}t	          |t                      d                              | |          }|                    |          }|j        |j        d         |fk    sJ |	                    |          }|j        |j        k    sJ dS )	zCheck the behaviour for the multilabel classification case and the
    `decision_function` stacking method. Only `RidgeClassifier` supports this
    case.
    r-   r8   r,   r  rO   r	  r   N)
r   r  r  r   r   r   rH   rL   rM   rI   )	rP   rQ   rR   rS   r  r=   r   rU   r  s	            rX   5test_stacking_classifier_multilabel_decision_functionr    s    
 (8l\( ( ($GVWf I/++,-J ,..(   
c'7	  ''G=V\!_i88888__V$$F<6<''''''rZ   r   autoc                    t          t          t          t          d          \  }}}}|                                }d}dt	          d          fdt          d          fdt                      fg}t                      }	t          ||	||           	                    ||          }
t          ||           |
                    |          }|j        |j        k    sJ | d	k    rg d
}ndgt          |          z  }|
j        |k    sJ |t          |          z  }|r||j        d         z  }|
                    |          }|j        |j        d         |fk    sJ t          |
j        t#          j        ddg          g|z             dS )zCheck the behaviour for the multilabel classification case for stack methods
    supported for all estimators or automatically picked up.
    r-   r8   r,   mlpr5   r^   ridge)r=   r4   r6   r   r  )rJ   rJ   rO   rI   rA   r   N)r   r  r  copyr    r   r   r   r   rH   r   rI   rM   ry   stack_method_rL   classes_r   r   )r   r6   rP   rQ   rR   rS   y_train_before_fitr  r=   r4   rT   r  expected_stack_methodsn_features_X_transrU   s                  rX   0test_stacking_classifier_multilabel_auto_predictr    s    (8l\( ( ($GVWf !I 
2.../	%26667	/##$J
 +,,O
'!	  
 
c'7  )7333[[  F<6<''''v!X!X!X"+s:!> 66666"S__4 /gmA..mmF##G=V\!_.@AAAAAs|bh1v&6&6%7)%CDDDDDrZ   z,stacker, feature_names, X, y, expected_names)stackingclassifier_lr0stackingclassifier_lr1stackingclassifier_lr2stackingclassifier_svm0stackingclassifier_svm1stackingclassifier_svm2)otherrC   stackingclassifier_lrstackingclassifier_svmstackingregressor_lrstackingregressor_svm)StackingClassifier_multiclassStackingClassifier_binaryr   c                     |                      |           |                     t          |          |           |rt          j        ||f          }|                     |          }t          ||           dS )z/Check get_feature_names_out works for stacking.)r6   N)rN   rH   r!   r   concatenateget_feature_names_outr   )r   feature_namesra   rb   expected_namesr6   	names_outs          rX   test_get_feature_names_outr2    s|    D ;///KKa! I(GHH--m<<Iy.11111rZ   c                  d   t          t          t                    t          t          d          \  } }}}t	          dt                      fg          }|                    | |           |                    |           |                    |           |	                    ||          dk    sJ dS )zNCheck that a regressor can be used as the first layer in `StackingClassifier`.r-   r8   r  r`   r>   N)
r   r!   rF   rG   r   r   rH   rI   rJ   rK   )rP   rQ   rR   rS   rT   s        rX   'test_stacking_classifier_base_regressorr4  T  s    '7fvR( ( ($GVWf '577);(<
=
=
=CGGGWKKf99VV$$s******rZ   c                     t          d          \  } }dt                      fdt          dd          fg}t          dd          }t          ||d          }d	}d
}t	          j        t          |          5 }|                    | |                              |            ddd           n# 1 swxY w Y   t          |j
        j        t                    sJ |t          |j
        j                  v sJ dS )a
  Check that we raise the proper AttributeError when the final estimator
    does not implement the `decision_function` method, which is decorated with
    `available_if`.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/28108
    r-   r5   r:   r^   r0   rg   r,   rj   z>This 'StackingClassifier' has no attribute 'decision_function'zD'RandomForestClassifier' object has no attribute 'decision_function'r   N)r   r   r   r   r   r   r  rH   rO   
isinstancevalue	__cause__str)ra   rb   r=   r4   rT   	outer_msg	inner_msg	exec_infos           rX   -test_stacking_final_estimator_attribute_errorr=  `  sH    B///DAq 
!##$	%12FFFGJ -!"MMMO
1  C QIVI	~Y	7	7	7 +91''***+ + + + + + + + + + + + + + +io/@@@@@IO566666666s   9*B//B36B3)jr   unittest.mockr   numpyr   r   numpy.testingr   scipyr   sklearn.baser   r   r   r	   sklearn.datasetsr
   r   r   r   r   r   sklearn.dummyr   r   sklearn.ensembler   r   r   r   sklearn.exceptionsr   r   sklearn.linear_modelr   r   r   r   sklearn.model_selectionr   r   r   sklearn.neighborsr   sklearn.neural_networkr    sklearn.preprocessingr!   sklearn.svmr"   r#   r$   sklearn.utils._mockingr%   sklearn.utils._testingr&   r'   r(   sklearn.utils.fixesr)   r*   r+   diabetesdatatargetro   rp   irisrF   rG   r  r  X_binaryy_binarymarkparametrizerY   rd   rl   rs   r}   r   r   r   r   r   
ValueError	TypeErrorr   r   r   r   r   r   filterwarningsr   r   r   r  r  r  r  r/  r2  r4  r=  r   rZ   rX   <module>r[     s>   1 1
            , , , , , ,       N N N N N N N N N N N N                : 9 9 9 9 9 9 9            B A A A A A A A            M L L L L L L L L L 2 2 2 2 2 2 0 0 0 0 0 0 ' ' ' ' ' ' 1 1 1 1 1 1 1 1 1 1 5 5 5 5 5 5         
 O N N N N N N N N N=??! 
Jy{{DK;;b   l )(12FFF ( 1ooq$RHHH
I  44"EEEF  66$1 $1 76  $1N! ! !6G G G,G G G* 55!TPR#S#S#STUU%	r
		B	/	/	/4			L$/0  66!2 !2 76  VU!2H 7.H + + +" 7.H + + +"     # # # # # # # #" " " " "- " " " "	,#Z1RS --//0CC0001 !0  9	
 --//0..001 ,
	
  --//0IIv6667 $6#5#7#7  ,	
3%( (RJ JS( (RJ "	lB'5VWT#3#3#5#56@Q@Q@S@S8TUV,		
  ++--.IIKK( $5#4#6#6  ,	
 0R R1 0R  --1===>II15556   4C4L4C4L		
 ++--.II15556   		
, 
231   4 5 4(
 
 
  --//0II26667 !3 2 4 45B777  
	
  4000
	
 
	
 ++--.II26667 !1 0 2 25B777   	
2 
237   :> >; :>:H H H KLL --//0II26667 !3 2 4 4  		
  4000		
 		
 ++--.II26667 !1 0 2 2   
	
. 
233   6
 
7  ML8
2 = B///	
 	
 * 5  5+ * 5F  !#5#5#7#785##%%.I   	
 ++--.IIKK(    
	
 0 1 0 '	02DE	+-=>   4  	2&&& 	B/// 
23  
 
( (
 
(8( ( (0 &))<==66*E *E 76 >=*EZ 2 --1===>II15556     	
( --1===>%II15556   4C4L4C4L'(	
" ++--.II15556   "&'	
I3h	 	 	m  ; ;x u662 2 76y; ;z2	+ 	+ 	+7 7 7 7 7rZ   