class sklearn.feature_selection.RFECV(estimator, step=1, cv=None, scoring=None, verbose=0, n_jobs=1)
[source]
Feature ranking with recursive feature elimination and cross-validated selection of the best number of features.
Read more in the User Guide.
Parameters: |
estimator : object A supervised learning estimator with a For instance, this is the case for most supervised learning algorithms such as Support Vector Classifiers and Generalized Linear Models from the step : int or float, optional (default=1) If greater than or equal to 1, then cv : int, cross-validation generator or an iterable, optional Determines the cross-validation splitting strategy. Possible inputs for cv are:
For integer/None inputs, if Refer User Guide for the various cross-validation strategies that can be used here. scoring : string, callable or None, optional, default: None A string (see model evaluation documentation) or a scorer callable object / function with signature verbose : int, default=0 Controls verbosity of output. n_jobs : int, default 1 Number of cores to run in parallel while fitting across folds. Defaults to 1 core. If |
---|---|
Attributes: |
n_features_ : int The number of selected features with cross-validation. support_ : array of shape [n_features] The mask of selected features. ranking_ : array of shape [n_features] The feature ranking, such that grid_scores_ : array of shape [n_subsets_of_features] The cross-validation scores such that estimator_ : object The external estimator fit on the reduced dataset. |
The size of grid_scores_
is equal to ceil((n_features - 1) / step) + 1, where step is the number of features removed at each iteration.
[R168] | Guyon, I., Weston, J., Barnhill, S., & Vapnik, V., “Gene selection for cancer classification using support vector machines”, Mach. Learn., 46(1-3), 389–422, 2002. |
The following example shows how to retrieve the a-priori not known 5 informative features in the Friedman #1 dataset.
>>> from sklearn.datasets import make_friedman1 >>> from sklearn.feature_selection import RFECV >>> from sklearn.svm import SVR >>> X, y = make_friedman1(n_samples=50, n_features=10, random_state=0) >>> estimator = SVR(kernel="linear") >>> selector = RFECV(estimator, step=1, cv=5) >>> selector = selector.fit(X, y) >>> selector.support_ array([ True, True, True, True, True, False, False, False, False, False], dtype=bool) >>> selector.ranking_ array([1, 1, 1, 1, 1, 6, 4, 3, 2, 5])
decision_function (*args, **kwargs) | |
fit (X, y) | Fit the RFE model and automatically tune the number of selected features. |
fit_transform (X[, y]) | Fit to data, then transform it. |
get_params ([deep]) | Get parameters for this estimator. |
get_support ([indices]) | Get a mask, or integer index, of the features selected |
inverse_transform (X) | Reverse the transformation operation |
predict (*args, **kwargs) | Reduce X to the selected features and then predict using the underlying estimator. |
predict_log_proba (*args, **kwargs) | |
predict_proba (*args, **kwargs) | |
score (*args, **kwargs) | Reduce X to the selected features and then return the score of the underlying estimator. |
set_params (**params) | Set the parameters of this estimator. |
transform (X) | Reduce X to the selected features. |
__init__(estimator, step=1, cv=None, scoring=None, verbose=0, n_jobs=1)
[source]
fit(X, y)
[source]
Parameters: |
X : {array-like, sparse matrix}, shape = [n_samples, n_features] Training vector, where y : array-like, shape = [n_samples] Target values (integers for classification, real numbers for regression). |
---|
fit_transform(X, y=None, **fit_params)
[source]
Fit to data, then transform it.
Fits transformer to X and y with optional parameters fit_params and returns a transformed version of X.
Parameters: |
X : numpy array of shape [n_samples, n_features] Training set. y : numpy array of shape [n_samples] Target values. |
---|---|
Returns: |
X_new : numpy array of shape [n_samples, n_features_new] Transformed array. |
get_params(deep=True)
[source]
Get parameters for this estimator.
Parameters: |
deep: boolean, optional : If True, will return the parameters for this estimator and contained subobjects that are estimators. |
---|---|
Returns: |
params : mapping of string to any Parameter names mapped to their values. |
get_support(indices=False)
[source]
Get a mask, or integer index, of the features selected
Parameters: |
indices : boolean (default False) If True, the return value will be an array of integers, rather than a boolean mask. |
---|---|
Returns: |
support : array An index that selects the retained features from a feature vector. If |
inverse_transform(X)
[source]
Reverse the transformation operation
Parameters: |
X : array of shape [n_samples, n_selected_features] The input samples. |
---|---|
Returns: |
X_r : array of shape [n_samples, n_original_features]
|
predict(*args, **kwargs)
[source]
Parameters: |
X : array of shape [n_samples, n_features] The input samples. |
---|---|
Returns: |
y : array of shape [n_samples] The predicted target values. |
score(*args, **kwargs)
[source]
Parameters: |
X : array of shape [n_samples, n_features] The input samples. y : array of shape [n_samples] The target values. |
---|
set_params(**params)
[source]
Set the parameters of this estimator.
The method works on simple estimators as well as on nested objects (such as pipelines). The latter have parameters of the form <component>__<parameter>
so that it’s possible to update each component of a nested object.
Returns: | self : |
---|
transform(X)
[source]
Reduce X to the selected features.
Parameters: |
X : array of shape [n_samples, n_features] The input samples. |
---|---|
Returns: |
X_r : array of shape [n_samples, n_selected_features] The input samples with only the selected features. |
sklearn.feature_selection.RFECV
© 2007–2016 The scikit-learn developers
Licensed under the 3-clause BSD License.
http://scikit-learn.org/stable/modules/generated/sklearn.feature_selection.RFECV.html