
    UgY                     `   d Z ddlmZ ddlZddl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mZ ddl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  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+ ddl,m-Z-m.Z.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5  G d d          Z6d Z7ej8        9                    de5          d             Z:d Z;d Z<d Z=ej8        9                    de5          d             Z>d Z?d Z@d  ZAd! ZBd" ZCd# ZDd$ ZEd% ZFej8        9                    d& ed'          d'g          ej8        9                    d(ed)fed*fg          d+                         ZGej8        9                    d,d-eHfd.eIfd/ eIfg          ej8        9                    d0eeg          d1                         ZJej8        9                    d2dd)g          d3             ZKd4 ZLd5 ZMej8        9                    g d6d7d*d7 ejN        g d8          gd7d)d7 ejN        g d9          gd7d*d: ejN        g d;          gd7d)d: ejN        g d<          gd7d*d= ejN        d7d*g          gd7d)d= ejN        g d>          gd7d*d* ejN        d7d*g          gd7d)d* ejN        d7d)g          gd*d*d: ejN        d*g          gd*d)d7 ejN        d*d)g          gd*d)d: ejN        d*d)g          gg          d?             ZOej8        9                    d@eeg          dA             ZPej8        9                    d@eeg          dB             ZQej8        9                    d@eeg          ej8        9                    dCeeeg          dD                         ZRdE ZSej8        9                    dFedGfedHfg          dI             ZTdS )Jz'
Testing Recursive feature elimination
    )
attrgetterN)assert_allcloseassert_array_almost_equalassert_array_equal)BaseEstimatorClassifierMixin)TransformedTargetRegressor)CCAPLSCanonicalPLSRegression)	load_irismake_classificationmake_friedman1)RandomForestClassifier)RFERFECV)SimpleImputer)LinearRegressionLogisticRegression)
get_scorermake_scorerzero_one_loss)
GroupKFoldcross_val_score)make_pipeline)StandardScaler)SVCSVR	LinearSVR)check_random_state)ignore_warnings)CSR_CONTAINERSc                   N    e Zd ZdZddZd Zd ZeZeZeZ	ddZ
dd	Zd
 Zd ZdS )MockClassifierz@
    Dummy classifier to test recursive feature elimination
    r   c                     || _         d S N	foo_param)selfr(   s     g/var/www/surfInsights/venv3-11/lib/python3.11/site-packages/sklearn/feature_selection/tests/test_rfe.py__init__zMockClassifier.__init__"   s    "    c                     t          |          t          |          k    sJ t          j        |j        d         t          j                  | _        | S )N   )dtype)lennponesshapefloat64coef_r)   Xys      r*   fitzMockClassifier.fit%   sB    1vvQWQWQZrz:::
r,   c                     |j         d         S )Nr   )r3   )r)   Ts     r*   predictzMockClassifier.predict*   s    wqzr,   Nc                     dS )Ng         r6   s      r*   scorezMockClassifier.score1       sr,   Tc                     d| j         iS )Nr(   r'   )r)   deeps     r*   
get_paramszMockClassifier.get_params4   s    T^,,r,   c                     | S r&   r>   )r)   paramss     r*   
set_paramszMockClassifier.set_params7   s    r,   c                 
    ddiS )N	allow_nanTr>   )r)   s    r*   
_more_tagszMockClassifier._more_tags:   s    T""r,   )r   )NN)T)__name__
__module____qualname____doc__r+   r9   r<   predict_probadecision_function	transformr?   rC   rF   rI   r>   r,   r*   r$   r$      s         # # # #  
   MI   - - - -  # # # # #r,   r$   c                  f   t          d          } t                      }t          j        |j        |                     t          |j                  df          f         }|j        }t          d| d          }t          |dd	          }|
                    ||           t          |j                  |j        d
         k    sJ t          d          }t          |dd	          }|
                    ||           t          |                                |                                           d S )Nr      size      )n_estimatorsrandom_state	max_depth   皙?	estimatorn_features_to_selectstepr.   linearkernel)r    r   r1   c_datanormalr0   targetr   r   r9   ranking_r3   r   r   get_support)	generatoririsr7   r8   clfrfeclf_svcrfe_svcs           r*   test_rfe_features_importancero   >   s   "1%%I;;D 	di))DI/B)CCCDAA
 byTU
V
V
VC
!#
>
>
>CGGAqMMMs|
****"""GG!#FFFGKK1 s(('*=*=*?*?@@@@@r,   csr_containerc                 6   t          d          }t                      }t          j        |j        |                    t          |j                  df          f         } | |          }|j        }t          d          }t          |dd          }|
                    ||           |                    |          }|
                    ||           t          |j                  |j        d	         k    sJ t          d          }	t          |	dd          }
|

                    ||           |
                    |          }|j        |j        j        k    sJ t          |d d
         |j        d d
                    t          |                    |          |                    |j                             |                    ||          |                    |j        |j                  k    sJ t          ||                                           d S )Nr   rR   rS   r`   ra   rZ   r[   r\   r.   
   )r    r   r1   rc   rd   re   r0   rf   r   r   r9   rP   rg   r3   r   r<   r?   toarray)rp   ri   rj   r7   X_sparser8   rk   rl   X_r
clf_sparse
rfe_sparse
X_r_sparses               r*   test_rfery   S   s   "1%%I;;D 	di))DI/B)CCCDA}QHA X


C
!#
>
>
>CGGAqMMM
--

CGGCOOOs|
**** H%%%JzLLLJNN8Q%%h//J9	''''c#2#h	#2#777ckk!nnckk$).D.DEEE99Q??cii	4;??????c:#5#5#7#788888r,   c                      G d dt           t                    } t          d          \  }}t          j        t
          d          5  t           |                                           ||           d d d            n# 1 swxY w Y   t          j        t
          d          5  t           |                                           ||d	
                              ||           d d d            n# 1 swxY w Y   t           |                                           ||d	
                              ||d	
           d S )Nc                       e Zd ZddZddZdS )0test_RFE_fit_score_params.<locals>.TestEstimatorNc                     |t          d          t          d                              ||          | _        | j        j        | _        | S )Nfit: prop cannot be Noner`   ra   )
ValueErrorr   r9   svc_r5   r)   r7   r8   props       r*   r9   z4test_RFE_fit_score_params.<locals>.TestEstimator.fitw   sH    | !;<<<8,,,00A66DIDJKr,   c                 Z    |t          d          | j                            ||          S )Nscore: prop cannot be None)r   r   r?   r   s       r*   r?   z6test_RFE_fit_score_params.<locals>.TestEstimator.score~   s,    | !=>>>9??1a(((r,   r&   )rJ   rK   rL   r9   r?   r>   r,   r*   TestEstimatorr|   v   s<        	 	 	 		) 	) 	) 	) 	) 	)r,   r   T
return_X_yr~   matchr]   r   foo)r   )	r   r   r   pytestraisesr   r   r9   r?   )r   r7   r8   s      r*   test_RFE_fit_score_paramsr   s   s   ) ) ) ) ) ) ) ) %%%DAq	z)C	D	D	D 1 1mmoo&&&**1a0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1	z)E	F	F	F I Immoo&&&**1ae*<<BB1aHHHI I I I I I I I I I I I I I I --//"""&&q!%&88>>q!%>PPPPPs%   -BBB'AC66C:=C:c                     t          d          } t                      }t          j        |j        |                     t          |j                  df          f         }|j        }t          d          }t          |dd          }|
                    ||           t          |d	d          }|
                    ||           t          |j        |j                   t          |j        |j                   d S )
Nr   rR   rS   r`   ra   rZ   r[   r\   g?)r    r   r1   rc   rd   re   r0   rf   r   r   r9   r   rg   support_)ri   rj   r7   r8   rk   rfe_numrfe_percs          r*   test_rfe_percent_n_featuresr      s    "1%%I;;D 	di))DI/B)CCCDAA
X


CCacBBBGKK1SsEEEHLLAx('*:;;;x('*:;;;;;r,   c                  
   t          d          } t                      }t          j        |j        |                     t          |j                  df          f         }|j        }t                      }t          |dd          }|
                    ||           |                    |          }|
                    ||           t          |j                  |j        d         k    sJ |j        |j        j        k    sJ d S )Nr   rR   rS   rZ   r[   r\   r.   )r    r   r1   rc   rd   re   r0   rf   r$   r   r9   rP   rg   r3   )ri   rj   r7   r8   rk   rl   ru   s          r*   test_rfe_mockclassifierr      s    "1%%I;;D 	di))DI/B)CCCDAA 

C
!#
>
>
>CGGAqMMM
--

CGGCOOOs|
****9	''''''r,   c                 N	   t          d          }t                      }t          j        |j        |                    t          |j                  df          f         }t          |j                  }t          t          d          d          }|                    ||           |j                                        D ]-}t          |j        |                   |j        d         k    sJ .t          |j                  |j        d         k    sJ |                    |          }t#          ||j                   t          t          d          d          } | |          }	|                    |	|           |                    |	          }
t#          |
                                |j                   t'          t(          d	          }t          t          d          d|
          } t+          |j                  ||           |                    |          }t#          ||j                   t-          d          }t          t          d          d|
          }|                    ||           |                    |          }t#          ||j                   d }t          t          d          d|
          }|                    ||           |j        dk    sJ t          t          d          d          }|                    ||           |j                                        D ]"}t          |j        |                   dk    sJ #t          |j                  |j        d         k    sJ |                    |          }t#          ||j                   t          t          d          d          } | |          }	|                    |	|           |                    |	          }
t#          |
                                |j                   t          t          d          d          } | |          }	|                    |	|           |                    |	          }
t#          |
                                |j                   d S )Nr   rR   rS   r`   ra   r.   r]   r_   F)greater_is_better)r]   r_   scoringaccuracyc                     dS )Ng      ?r>   )r]   r7   r8   s      r*   test_scorerztest_rfecv.<locals>.test_scorer   r@   r,   rV   皙?)r    r   r1   rc   rd   re   r0   listrf   r   r   r9   cv_results_keysr3   rg   rP   r   rs   r   r   r!   r   n_features_)rp   ri   rj   r7   r8   rfecvkeyru   rfecv_sparsert   rx   r   scorerr   s                 r*   
test_rfecvr      s^   "1%%I;;D 	di))DI/B)CCCDAT[A Cx000q999E	IIaOOO  %%'' 9 95$S)**agaj88888u~!'!*,,,,
//!

C sDI&&& 3h#7#7#7a@@@L}QHXq!!!''11Jz))++TY777 -5AAAGCx000q'JJJEOEIq!$$$
//!

CsDI&&& 
##FCx000q&IIIE	IIaOOO
//!

CsDI&&&   Cx000q+NNNE	IIaOOO !!!! Cx000q999E	IIaOOO %%'' 0 05$S)**a/////u~!'!*,,,,
//!

CsDI&&&3h#7#7#7a@@@L}QHXq!!!''11Jz))++TY777 3h#7#7#7cBBBL}QHXq!!!''11Jz))++TY77777r,   c                  (   t          d          } t                      }t          j        |j        |                     t          |j                  df          f         }t          |j                  }t          t                      d          }|                    ||           |j                                        D ]-}t          |j        |                   |j        d         k    sJ .t          |j                  |j        d         k    sJ d S )Nr   rR   rS   r.   r   )r    r   r1   rc   rd   re   r0   r   rf   r   r$   r9   r   r   r3   rg   )ri   rj   r7   r8   r   r   s         r*   test_rfecv_mockclassifierr     s    "1%%I;;D
di))DI/B)CCCDAT[A N,,1555E	IIaOOO  %%'' 9 95$S)**agaj88888u~!'!*,,,,,,r,   c                     dd l } ddlm}  |            | _        t	          d          }t                      }t          j        |j        |	                    t          |j                  df          f         }t          |j                  }t          t          d          dd          }|                    ||           | j        }|                    d           t          |                                          dk    sJ d S )	Nr   )StringIOrR   rS   r`   ra   r.   )r]   r_   verbose)sysior   stdoutr    r   r1   rc   rd   re   r0   r   rf   r   r   r9   seekreadline)r   r   ri   rj   r7   r8   r   verbose_outputs           r*   test_rfecv_verbose_outputr     s    JJJCJ"1%%I;;D
di))DI/B)CCCDAT[ACx000q!DDDE	IIaOOOZN~&&(())A------r,   c                    t          |           }t                      }t          j        |j        |                    t          |j                  df          f         }t          |j                  }ddgddgddgfD ]\  }}t          t                      ||          }|                    ||           t          j        |j        d         |z
  |z            dz   }|j                                        D ]"}	t          |j        |	                   |k    sJ #t          |j                  |j        d         k    sJ |j        |k    sJ d S )NrR   rS   rV   r.      r]   r_   min_features_to_select)r    r   r1   rc   rd   re   r0   r   rf   r   r$   r9   ceilr3   r   r   rg   r   )
global_random_seedri   rj   r7   r8   r_   r   r   	score_lenr   s
             r*   test_rfecv_cv_results_sizer   )  sc   "#566I;;D
di))DI/B)CCCDAT[A +,Q!Q!Q(@ ; ;$$$&&#9
 
 

 			!QGQWQZ*@@DHIIAM	$))++ 	< 	<Cu(-..);;;;;5>""agaj0000 $::::::; ;r,   c                      t          t          d                    } | j        dk    sJ t                      }t	          | |j        |j                  }|                                dk    sJ d S )Nr`   ra   
classifiergffffff?)r   r   _estimator_typer   r   rd   rf   min)rl   rj   r?   s      r*   test_rfe_estimator_tagsr   B  sk    
c"""
#
#C,....;;DCDK88E99;;r,   c                    d}t          d||           \  }}|j        \  }}t          d          }t          |d          }|                    ||          }|j                                        |dz  k    sJ t          |d	          }|                    ||          }|j                                        |dz  k    sJ t          |d
          }|                    ||          }|j                                        |dz  k    sJ d S )Nrr   2   	n_samples
n_featuresrX   r`   ra   g{Gz?r_   rV   r      )r   r3   r   r   r9   r   sum)r   r   r7   r8   r   r]   selectorsels           r*   test_rfe_min_stepr   K  s)   J:L  DAq GIz8$$$I 94(((H
,,q!

C<q0000 94(((H
,,q!

C<q0000 91%%%H
,,q!

C<q000000r,   c                 4   d }d }ddg}ddg}ddg}t          |||          D ]\  }}}t          |           }	|	                    d|f          }
|	                    d                                          }t          t          d	          ||
          }|                    |
|           t          j	        |j
                   ||||          k    sJ t          j	        |j
                   ||||          k    sJ d}ddg}ddg}t          ||          D ]\  }}t          |           }	|	                    d|f          }
|	                    d                                          }t          t          d	          |          }|                    |
|           |j                                        D ]X}t          |j        |                    ||||          k    sJ t          |j        |                    ||||          k    sJ Yd S )Nc                 $    d| |z   |z
  dz
  |z  z   S Nr.   r>   r   r^   r_   s      r*   formula1z4test_number_of_subsets_of_features.<locals>.formula1l  s"    Z$&)==AdJKKr,   c                 V    dt          j        | |z
  t          |          z            z   S r   )r1   r   floatr   s      r*   formula2z4test_number_of_subsets_of_features.<locals>.formula2o  s(    27J)==tLMMMMr,      r   rV   d   rS   r`   ra   r\   r.   rr   r   )zipr    re   randroundr   r   r9   r1   maxrg   r   r   r   r0   )r   r   r   n_features_listn_features_to_select_list	step_listr   r^   r_   ri   r7   r8   rl   r   r   s                  r*   "test_number_of_subsets_of_featuresr   c  s   L L LN N N 2hO!"AAI252I3 3 X X.
($ ''9::	3
"344NN3%%''***!5
 
 

 	1vcl##xx
<PRV'W'WWWWWvcl##xx
<PRV'W'WWWWWW 2hOAI;;  
D&'9::	3
"344NN3%%''8 4 4 44@@@		!Q$))++ 	 	Cu(-..((0$3 3     u(-..((0$3 3     		 r,   c                    t          |           }t                      }t          j        |j        |                    t          |j                  df          f         }|j        }t          t          d                    }|
                    ||           |j        }|j        }|                    d           |
                    ||           t          |j        |           |                                |j                                        k    sJ |                                D ]-}||         t!          j        |j        |                   k    sJ .d S )NrR   rS   r`   ra   r   rV   )n_jobs)r    r   r1   rc   rd   re   r0   rf   r   r   r9   rg   r   rF   r   r   r   approx)	r   ri   rj   r7   r8   r   rfecv_rankingrfecv_cv_results_r   s	            r*   test_rfe_cv_n_jobsr     sG   "#566I;;D
di))DI/B)CCCDAACx000111E	IIaOOONM)	A	IIaOOOenm<<<!!##u'8'='='?'????? %%'' O O %u7H7M)N)NNNNNNO Or,   c            	         t          d          } t                      }d}t          j        t          j        d|t          |j                                      }|j        }|j        dk                        t                    }t          t          |           ddt          d                    }|                    |||	           |j        dk    sJ d S )
Nr   rZ   rX   r.   r   rV   )n_splits)r]   r_   r   cv)groups)r    r   r1   floorlinspacer0   rf   rd   astypeintr   r   r   r9   r   )ri   rj   number_groupsr   r7   r8   
est_groupss          r*   test_rfe_cv_groupsr     s    "1%%I;;DMXbk!]C4D4DEEFFF	A	q  %%A(i@@@q!!!	  J NN1aN'''!A%%%%%%r,   importance_getterzregressor_.coef_zselector, expected_n_featuresr   rZ   c                     t          ddd          \  }}t          d          }t          |t          j        t          j                  } |||           }|                    ||          }|j                                        |k    sJ d S )Nr   rr   r   r   r   	regressorfuncinverse_funcr   )	r   r   r	   r1   logexpr9   r   r   )r   r   expected_n_featuresr7   r8   r]   log_estimatorr   s           r*   test_rfe_wrapped_estimatorr     s     B2AFFFDAqq)))I."&rv  M x9JKKKH
,,q!

C<!4444444r,   zimportance_getter, err_typeautorandomc                     | j         S r&   )
importance)xs    r*   <lambda>r     s    1< r,   Selectorc                 8   t          ddd          \  }}t                      }t          |t          j        t          j                  }t          j        |          5   |||           }|                    ||           d d d            d S # 1 swxY w Y   d S )Nr   rr   *   r   r   r   )	r   r   r	   r1   r   r   r   r   r9   )r   err_typer  r7   r8   r]   r   models           r*   %test_rfe_importance_getter_validationr    s     B2BGGGDAqI."&rv  M 
x	 	   :KLLL		!Q                 s   $BBBr   c                 L   t                      }|j        }|j        }t          j        |d         d<   t          j        |d         d<   t                      }| t          ||           }nt          |          }|	                    ||           |
                    |           d S )Nr   r.   )r]   r   r   )r   rd   rf   r1   naninfr$   r   r   r9   rP   )r   rj   r7   r8   rk   rl   s         r*   test_rfe_allow_nan_inf_in_xr
    s    ;;D	AA fAaDGfAaDG


C	~cb)))C   GGAqMMMMM!r,   c                     t          t                      t                                } t          d          \  }}t	          | dd          }|                    ||           |                    |          j        d         dk    sJ d S )NTr   rV   $named_steps.logisticregression.coef_)r^   r   r.   )r   r   r   r   r   r9   rP   r3   )pipelinerd   r8   sfms       r*   test_w_pipeline_2d_coef_r    s    ^--/A/C/CDDH4(((GD!
@  C GGD!==$Q'1,,,,,,r,   c                   	 t          |           }t                      }t          j        |j        |                    t          |j                  df          f         }|j        }t          t          d                    		
                    ||           d 	j                                        D             }t          j        	fd|D                       }t          j        |d	          }t          j        |d	          }t!          	j        d
         |           t!          	j        d         |           d S )NrR   rS   r`   ra   r   c                     g | ]}d |v |	S )splitr>   ).0r   s     r*   
<listcomp>z+test_rfecv_std_and_mean.<locals>.<listcomp>  s    LLL#W^^#^^^r,   c                 *    g | ]}j         |         S r>   )r   )r  r   r   s     r*   r  z+test_rfecv_std_and_mean.<locals>.<listcomp>  s!    IIIsE-c2IIIr,   r   )axismean_test_scorestd_test_score)r    r   r1   rc   rd   re   r0   rf   r   r   r9   r   r   asarraymeanstdr   )
r   ri   rj   r7   r8   
split_keys	cv_scoresexpected_meanexpected_stdr   s
            @r*   test_rfecv_std_and_meanr     s$   "#566I;;D
di))DI/B)CCCDAACx000111E	IIaOOOLL!2!7!7!9!9LLLJ
IIIIjIIIJJIGIA...M6)!,,,LE%&78-HHHE%&67FFFFFr,   )r   r   r_   cv_results_n_featuresr.   )r.   rV   r   rZ   )r.   rV   r   rZ   r   rV   )r.   rV   rZ   )r.   r   r   r   )r.   rV   r   c                 >   t          d||d          \  }}t          t          d          ||                               ||           t	          j        d         |           t          fdj                                        D                       sJ d S )	NrU   r   )r   r   n_informativen_redundantr`   ra   r   r   c              3   n   K   | ]/}t          |          t          j        d                    k    V  0dS )r   N)r0   r   )r  valuer   s     r*   	<genexpr>z3test_rfecv_cv_results_n_features.<locals>.<genexpr>E  sR         	E

c%+L9:::     r,   )r   r   r   r9   r   r   allvalues)r   r   r_   r!  r7   r8   r   s         @r*    test_rfecv_cv_results_n_featuresr*  %  s    , :ST  DAq X&&&5  E
 
IIaOOOu(68MNNN    &--//         r,   ClsRFEc                     t           j                            d          }t           j                            dd          }t	          d          } | |          }|                    ||           d S )N)rr   r   rS   rV   )rr   rV   r   )rW   )r1   r   re   randintr   r9   )r+  r7   r8   rk   rfe_tests        r*   test_multioutputr/  K  sk    
	g&&A
	!'**A
 a
0
0
0Cvc{{HLLAr,   c                     t          d          \  }}t          j        |d<   t          t	                      t                      t                                } | |d          }|                    ||           dS )z`Check that RFE works with pipeline that accept nans.

    Non-regression test for gh-21743.
    Tr   )r   r   r  )r]   r   N)r   r1   r  r   r   r   r   r9   )r+  r7   r8   pipefss        r*   test_pipeline_with_nansr3  T  s     %%%DAqfAdG D 
@
 
 
B FF1aLLLLLr,   PLSEstimatorc                     t          ddd          \  }} |d          } | |d                              ||          }|                    ||          dk    sJ d	S )
zCheck the behaviour of RFE with PLS estimators.

    Non-regression test for:
    https://github.com/scikit-learn/scikit-learn/issues/12410
    r   rr   r   r   r.   )n_componentsr   g      ?N)r   r9   r?   )r+  r4  r7   r8   r]   r   s         r*   test_rfe_plsr7  j  sw     B2AFFFDAq!,,,Ivia(((,,Q22H>>!Q#%%%%%%r,   c                     t                      } t          t                                }d}d}t          j        t
          |          5 }|                    | j        | j                  	                    | j                   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 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   z/This 'RFE' has no attribute 'decision_function'z>'LinearRegression' object has no attribute 'decision_function'r   N)r   r   r   r   r   AttributeErrorr9   rd   rf   rO   
isinstancer&  	__cause__str)rj   rl   	outer_msg	inner_msg	exec_infos        r*   "test_rfe_estimator_attribute_errorr@  x  s    ;;D (**
+
+
+CAIPI	~Y	7	7	7 E9	4;''99$)DDDE E E E E E E E E E E E E E Eio/@@@@@IO566666666s   
9BBBzClsRFE, paramr^   r   c                     t          dd          \  }}t          j        t          | d          5   | d	dt	                      i|di}|                    ||           ddd           dS # 1 swxY w Y   dS )
zCheck if the correct warning is raised when trying to initialize a RFE
    object with a n_features_to_select attribute larger than the number of
    features present in the X variable that is passed to the fit method
    rU   r   )r   rX   z=21 > n_features=20r   r]      Nr>   )r   r   warnsUserWarningr   r9   )r+  paramr7   r8   clsrfes        r*   %test_rfe_n_features_to_select_warningrG    s     "1===DAq	kE)F)F)F	G	G	G   FF"4"6"6F5"+FF

1a	                 s   /A//A36A3)UrM   operatorr   numpyr1   r   numpy.testingr   r   r   sklearn.baser   r   sklearn.composer	   sklearn.cross_decompositionr
   r   r   sklearn.datasetsr   r   r   sklearn.ensembler   sklearn.feature_selectionr   r   sklearn.imputer   sklearn.linear_modelr   r   sklearn.metricsr   r   r   sklearn.model_selectionr   r   sklearn.pipeliner   sklearn.preprocessingr   sklearn.svmr   r   r   sklearn.utilsr    sklearn.utils._testingr!   sklearn.utils.fixesr"   r$   ro   markparametrizery   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r9  r  r
  r  r   arrayr*  r/  r3  r7  r@  rG  r>   r,   r*   <module>r^     s                X X X X X X X X X X 7 7 7 7 7 7 7 7 6 6 6 6 6 6 H H H H H H H H H H K K K K K K K K K K 3 3 3 3 3 3 0 0 0 0 0 0 0 0 ( ( ( ( ( ( E E E E E E E E B B B B B B B B B B ? ? ? ? ? ? ? ? * * * * * * 0 0 0 0 0 0 + + + + + + + + + + , , , , , , 2 2 2 2 2 2 . . . . . .# # # # # # # #BA A A* .999 9 :99>Q Q Q2< < <(( ( ($ .99N8 N8 :9N8b- - -". . .(; ; ;2  1 1 10> > >BO O O*& & &$ **%788:LM  8C8eQZ:PQQ5 5 RQ 5 !		>"		0  c5\22	 	 32 	 ay))  *)$- - -G G G" MMM	
Aq("(<<<(()	
Aq("(???++,	
Aq("(999%%&	
Aq("(999%%&	
Aq("(Aq6""#	
Aq("(999%%&	
Aq("(Aq6""#	
Aq("(Aq6""#	
Aq("(A3-- 	
Aq("(Aq6""#	
Aq("(Aq6""#   !  , C<00  10 C<00  10* C<00#|])KLL	& 	& ML 10	&7 7 7, s23e=U5VW     r,   