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_score , GridSearchCV 和与此估计类似的实用程序。否则,使用训练模型fit ,然后transform 进行特征选择。 |
norm_order | non-zero int, inf, -inf, default 1 在估算器 threshold 的coef_ 属性为维度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 = [0, 1, 0, 1]
>>> 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, True, False])
>>> 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] 仅具有所选特征的输入样本。 |