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


Python sklearn RFE用法及代码示例


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

用法:

class sklearn.feature_selection.RFE(estimator, *, n_features_to_select=None, step=1, verbose=0, importance_getter='auto')

具有递归特征消除的特征排名。

给定一个为特征分配权重的外部估计器(例如,线性模型的系数),递归特征消除(RFE)的目标是通过递归地考虑越来越小的特征集来选择特征。首先,估计器在初始特征集上进行训练,每个特征的重要性通过任何特定属性或可调用获得。然后,从当前的特征集中剪除最不重要的特征。该过程在修剪后的集合上递归重复,直到最终达到要选择的所需特征数量。

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

参数

estimatorEstimator 实例

具有 fit 方法的监督学习估计器,可提供有关特征重要性的信息(例如 coef_feature_importances_ )。

n_features_to_selectint 或浮点数,默认=无

要选择的特征数。如果 None ,则选择一半的特征。如果是整数,则参数是要选择的特征的绝对数量。如果在 0 和 1 之间浮点数,则它是要选择的特征的一部分。

stepint 或浮点数,默认=1

如果大于或等于 1,则 step 对应于每次迭代时要移除的特征的(整数)个数。如果在 (0.0, 1.0) 范围内,则 step 对应于每次迭代中要删除的特征的百分比(向下舍入)。

verbose整数,默认=0

控制输出的详细程度。

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

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

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

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

属性

classes_ndarray 形状 (n_classes,)

estimator 是分类器时可用的类标签。

estimator_Estimator 实例

用于选择特征的拟合估计器。

n_features_int

所选特征的数量。

n_features_in_int

拟合期间看到的特征数。仅当基础估计器在合适时公开此类属性时才定义。

feature_names_in_ndarray 形状(n_features_in_,)

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

ranking_ndarray 形状 (n_features,)

特征排名,使得ranking_[i]对应i-th特征的排名位置。选定的(即估计的最佳)特征被分配等级 1。

support_ndarray 形状 (n_features,)

所选特征的掩码。

注意

如果基础估计器也这样做,则允许输入中的 NaN/Inf。

参考

1

Guyon, I., Weston, J., Barnhill, S., & Vapnik, V.,“使用支持向量机进行癌症分类的基因选择”,Mach。学习。, 46(1-3), 389-422, 2002。

例子

以下示例展示了如何检索 Friedman #1 数据集中信息量最大的 5 个特征。

>>> from sklearn.datasets import make_friedman1
>>> from sklearn.feature_selection import RFE
>>> from sklearn.svm import SVR
>>> X, y = make_friedman1(n_samples=50, n_features=10, random_state=0)
>>> estimator = SVR(kernel="linear")
>>> selector = RFE(estimator, n_features_to_select=5, step=1)
>>> selector = selector.fit(X, y)
>>> selector.support_
array([ True,  True,  True,  True,  True, False, False, False, False,
       False])
>>> selector.ranking_
array([1, 1, 1, 1, 1, 6, 4, 3, 2, 5])

相关用法


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