SelectFdr (original) (raw)

class sklearn.feature_selection.SelectFdr(score_func=<function f_classif>, *, alpha=0.05)[source]#

Filter: Select the p-values for an estimated false discovery rate.

This uses the Benjamini-Hochberg procedure. alpha is an upper bound on the expected false discovery rate.

Read more in the User Guide.

Parameters:

score_funccallable, default=f_classif

Function taking two arrays X and y, and returning a pair of arrays (scores, pvalues). Default is f_classif (see below “See Also”). The default function only works with classification tasks.

alphafloat, default=5e-2

The highest uncorrected p-value for features to keep.

Attributes:

**scores_**array-like of shape (n_features,)

Scores of features.

**pvalues_**array-like of shape (n_features,)

p-values of feature scores.

**n_features_in_**int

Number of features seen during fit.

Added in version 0.24.

**feature_names_in_**ndarray of shape (n_features_in_,)

Names of features seen during fit. Defined only when Xhas feature names that are all strings.

Added in version 1.0.

See also

f_classif

ANOVA F-value between label/feature for classification tasks.

mutual_info_classif

Mutual information for a discrete target.

chi2

Chi-squared stats of non-negative features for classification tasks.

f_regression

F-value between label/feature for regression tasks.

mutual_info_regression

Mutual information for a continuous target.

SelectPercentile

Select features based on percentile of the highest scores.

SelectKBest

Select features based on the k highest scores.

SelectFpr

Select features based on a false positive rate test.

SelectFwe

Select features based on family-wise error rate.

GenericUnivariateSelect

Univariate feature selector with configurable mode.

References

https://en.wikipedia.org/wiki/False_discovery_rate

Examples

from sklearn.datasets import load_breast_cancer from sklearn.feature_selection import SelectFdr, chi2 X, y = load_breast_cancer(return_X_y=True) X.shape (569, 30) X_new = SelectFdr(chi2, alpha=0.01).fit_transform(X, y) X_new.shape (569, 16)

fit(X, y=None)[source]#

Run score function on (X, y) and get the appropriate features.

Parameters:

Xarray-like of shape (n_samples, n_features)

The training input samples.

yarray-like of shape (n_samples,) or None

The target values (class labels in classification, real numbers in regression). If the selector is unsupervised then y can be set to None.

Returns:

selfobject

Returns the instance itself.

fit_transform(X, y=None, **fit_params)[source]#

Fit to data, then transform it.

Fits transformer to X and y with optional parameters fit_paramsand returns a transformed version of X.

Parameters:

Xarray-like of shape (n_samples, n_features)

Input samples.

yarray-like of shape (n_samples,) or (n_samples, n_outputs), default=None

Target values (None for unsupervised transformations).

**fit_paramsdict

Additional fit parameters.

Returns:

X_newndarray array of shape (n_samples, n_features_new)

Transformed array.

get_feature_names_out(input_features=None)[source]#

Mask feature names according to selected features.

Parameters:

input_featuresarray-like of str or None, default=None

Input features.

Returns:

feature_names_outndarray of str objects

Transformed feature names.

get_metadata_routing()[source]#

Get metadata routing of this object.

Please check User Guide on how the routing mechanism works.

Returns:

routingMetadataRequest

A MetadataRequest encapsulating routing information.

get_params(deep=True)[source]#

Get parameters for this estimator.

Parameters:

deepbool, default=True

If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns:

paramsdict

Parameter names mapped to their values.

get_support(indices=False)[source]#

Get a mask, or integer index, of the features selected.

Parameters:

indicesbool, default=False

If True, the return value will be an array of integers, rather than a boolean mask.

Returns:

supportarray

An index that selects the retained features from a feature vector. If indices is False, this is a boolean array of shape [# input features], in which an element is True iff its corresponding feature is selected for retention. If indices is True, this is an integer array of shape [# output features] whose values are indices into the input feature vector.

inverse_transform(X)[source]#

Reverse the transformation operation.

Parameters:

Xarray of shape [n_samples, n_selected_features]

The input samples.

Returns:

X_rarray of shape [n_samples, n_original_features]

X with columns of zeros inserted where features would have been removed by transform.

set_output(*, transform=None)[source]#

Set output container.

See Introducing the set_output APIfor an example on how to use the API.

Parameters:

transform{“default”, “pandas”, “polars”}, default=None

Configure output of transform and fit_transform.

Added in version 1.4: "polars" option was added.

Returns:

selfestimator instance

Estimator instance.

set_params(**params)[source]#

Set the parameters of this estimator.

The method works on simple estimators as well as on nested objects (such as Pipeline). The latter have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Parameters:

**paramsdict

Estimator parameters.

Returns:

selfestimator instance

Estimator instance.

transform(X)[source]#

Reduce X to the selected features.

Parameters:

Xarray of shape [n_samples, n_features]

The input samples.

Returns:

X_rarray of shape [n_samples, n_selected_features]

The input samples with only the selected features.