sklearn.feature_selection.SelectFromModel

class sklearn.feature_selection.SelectFromModel(estimator, *, threshold=None, prefit=False, norm_order=1, max_features=None)

Meta-transformer用于根据重要度选择特征。

0.17版中的新功能。

参数 说明
estimator object
用来构建transformer的基本估计器。既可以是拟合的(如果prefit设置为True),也可以是不拟合的估计器。这个估计器拟合之后必须具有 feature_importances_coef_属性。
threshold string, float, optional default None
用于特征选择的阈值。保留重要性更高或相等的特征,而其他特征则被丢弃。如果为“median”(或“mean”),则该threshold值为要素重要性的中位数(或均值)。也可以使用缩放因子(例如,“ 1.25 *平均值”)。如果为None(无),并且估计器的参数惩罚显式或隐式设置为L1(例如Lasso),则使用的阈值为1e-5。否则,默认使用“mean”。
prefit bool, default False
预设模型是否直接传递给构造函数。如果为True,transform必须直接调用并且SelectFromModel不能使用cross_val_scoreGridSearchCV和与此估计类似的实用程序。否则,使用训练模型fit,然后transform进行特征选择。
norm_order non-zero int, inf, -inf, default 1
在估算器thresholdcoef_属性为维度2 的情况下,用于过滤以下系数向量的范数的阶数。
max_features int or None, optional
要选择的最大特征数。若要仅基于max_features选择,请设置threshold=-np.inf

0.20版中的新功能。
属性 说明
estimator_ an estimator
用来构建transformer的基估计器。仅当将非拟合估计量传递给SelectFromModel时(即,当prefit为False时)才存储。
threshold_ float
用于特征选择的阈值。

如果基础估算器也可以输入,则允许NaN / Inf。

示例

>>> from sklearn.feature_selection import SelectFromModel
>>> from sklearn.linear_model import LogisticRegression
>>> X = [[ 0.87-1.34,  0.31 ],
...      [-2.79-0.02-0.85 ],
...      [-1.34-0.48-2.55 ],
...      [ 1.92,  1.48,  0.65 ]]
>>> y = [0101]
>>> selector = SelectFromModel(estimator=LogisticRegression()).fit(X, y)
>>> selector.estimator_.coef_
array([[-0.3252302 ,  0.83462377,  0.49750423]])
>>> selector.threshold_
0.55245...
>>> selector.get_support()
array([False,  TrueFalse])
>>> selector.transform(X)
array([[-1.34],
       [-0.02],
       [-0.48],
       [ 1.48]])

方法

方法 说明
fit(X[, y]) 拟合SelectFromModel元转换器。
fit_transform(X[, y]) 拟合数据,然后对其进行转换。
get_params([deep]) 获取此估计器的参数。
get_support([indices]) 获取所选特征的掩码或整数索引。
inverse_transform(X) 反向转换操作
partial_fit(X[, y]) 仅拟合SelectFromModel元转换器一次。
set_params(**params) 设置此估计器的参数。
transform(X) 将X缩小为选定的特征。
__init__(estimator, *, threshold=None, prefit=False, norm_order=1, max_features=None)

[源码]

初始化self,参见help(type(self))获取更多信息。

fit(X, y=None, **fit_params)

[源码]

拟合SelectFromModel元转换器。

参数 说明
X array-like of shape (n_samples, n_features)
训练输入样本。
y array-like of shape (n_samples,)
目标值(与分类中的类对应的整数,回归中的真实值)。
**fit_params Other estimator specific parameters
返回值 说明
self object
fit_transform(X, y=None, **fit_params)

[源码]

拟合数据,然后对其进行转换。

使用可选参数fit_params将转换器拟合到X和y,并返回X的转换值。

参数 说明
X {array-like, sparse matrix, dataframe} of shape (n_samples, n_features)
y ndarray of shape (n_samples,), default=None
目标值
**fit_params dict
其他拟合参数。
返回值 说明
X_new ndarray array of shape (n_samples, n_features_new)
转换后的数组。
get_params(deep=True)

[源码]

获取此估计器的参数。

参数 说明
deep bool, default=True
如果为True,则将返回此估算器和所包含子对象的参数。
返回值 说明
params mapping of string to any
参数名称映射到其值。
get_support(indices=False)

[源码]

获取所选特征的掩码或整数索引。

参数 说明
indices boolean (default False)
如果为True,则返回值将是一个整数数组,而不是布尔掩码。
返回值 说明
support array
从特征向量中选择保留特征的索引。如果indices为False,则为形状为[#输入特征]的布尔数组,其中元素为True时(如果已选择其对应的特征进行保留)。如果indices为True,则这是一个形状为[#输出特征]的整数数组,其值是输入特征向量的索引。
inverse_transform(X)

[源码]

反向转换操作。

参数 说明
X array of shape [n_samples, n_selected_features]
输入样本。
返回值 说明
X_r array of shape [n_samples, n_original_features]
X中插入的列名为零的特征将被transform删除。
partial_fit(X, y=None, **fit_params)

[源码]

仅拟合SelectFromModel元转换器一次。

参数 说明
X array-like of shape (n_samples, n_features)
训练输入样本。
y array-like, shape (n_samples,)
目标值(与分类中的类对应的整数,回归中的真实值)。
**fit_params Other estimator specific parameters
返回值 说明
self object
set_params(**params)

[源码]

设置此估算器的参数。

该方法适用于简单的估计器以及嵌套对象(例如管道)。后者具有<component>__<parameter>形式的参数, 以便可以更新嵌套对象的每个组件。

参数 说明
**params dict
估计器参数。
返回值 说明
self object
估计器实例。
transform(X)

[源码]

将X缩小为选定的特征。

参数 说明
X array of shape [n_samples, n_features]
输入样本。
返回值 说明
X_r array of shape [n_samples, n_selected_features]
仅具有所选特征的输入样本。