当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn SelectFromModel用法及代码示例


本文简要介绍python语言中 sklearn.feature_selection.SelectFromModel 的用法。

用法:

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

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

在用户指南中阅读更多信息。

参数

estimator对象

构建转换器的基本估计器。这既可以是拟合的(如果 prefit 设置为 True),也可以是未拟合的估计器。拟合后估计器应具有feature_importances_coef_ 属性。否则,应使用importance_getter 参数。

thresholdstr 或浮点数,默认=无

用于特征选择的阈值。保留重要性大于或相等的特征,而丢弃其他特征。如果“median” (resp. “mean”),那么threshold 值是特征重要性的中值(resp. mean)。也可以使用比例因子(例如,“1.25*mean”)。如果 None 并且如果估计器将参数惩罚设置为 l1,无论是显式还是隐式(例如 Lasso),使用的阈值是 1e-5。否则,默认使用“mean”。

prefit布尔,默认=假

预拟合模型是否应直接传递给构造函数。如果为 True,则必须直接调用 transform 并且 SelectFromModel 不能与 cross_val_scoreGridSearchCV 以及克隆估算器的类似实用程序一起使用。否则使用fit 训练模型,然后使用transform 进行特征选择。

norm_order非零 int、inf、-inf、默认=1

在估计器的coef_ 属性为 2 维的情况下,用于过滤低于 threshold 的系数向量的范数阶。

max_features整数,默认=无

要选择的最大特征数。要仅基于 max_features 进行选择,请设置 threshold=-np.inf

importance_getterstr 或可调用,默认='auto'

如果‘auto’,通过估计器的coef_属性或feature_importances_属性使用特征重要性。

还接受一个字符串,该字符串指定用于提取特征重要性的属性名称/路径(使用 attrgetter 实现)。例如,在 TransformedTargetRegressor 的情况下给出 regressor_.coef_ 或在 Pipeline 的情况下给出 named_steps.clf.feature_importances_ ,最后一步命名为 clf

如果 callable ,覆盖默认的特征重要性获取器。可调用对象与拟合的估计器一起传递,它应该返回每个特征的重要性。

属性

estimator_估计者

构建转换器的基本估计器。仅当将未拟合的估计器传递给 SelectFromModel 时,即 prefit 为 False 时,才存储此信息。

n_features_in_int

fit 期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

拟合期间看到的特征名称。仅当 X 具有全为字符串的函数名称时才定义。

threshold_浮点数

用于特征选择的阈值。

注意

如果基础估计器也这样做,则允许输入中的 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]])

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.feature_selection.SelectFromModel。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。