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


Python sklearn RFECV用法及代码示例


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

用法:

class sklearn.feature_selection.RFECV(estimator, *, step=1, min_features_to_select=1, cv=None, scoring=None, verbose=0, n_jobs=None, importance_getter='auto')

使用交叉验证进行递归特征消除以选择特征数量。

请参阅交叉验证估计器的词汇表条目。

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

参数

estimatorEstimator 实例

具有fit 方法的监督学习估计器,通过coef_ 属性或feature_importances_ 属性提供有关特征重要性的信息。

stepint 或浮点数,默认=1

如果大于或等于 1,则 step 对应于每次迭代时要移除的特征的(整数)个数。如果在 (0.0, 1.0) 范围内,则 step 对应于每次迭代中要删除的特征的百分比(向下舍入)。请注意,最后一次迭代可能会删除少于 step 的特征以达到 min_features_to_select

min_features_to_select整数,默认=1

要选择的最小特征数。即使原始特征计数和 min_features_to_select 之间的差异不能被 step 整除,也会始终对这个数量的特征进行评分。

cvint,交叉验证生成器或可迭代的,默认=无

确定交叉验证拆分策略。 cv 的可能输入是:

  • 无,使用默认的 5 折交叉验证,
  • 整数,指定折叠次数。
  • CV分配器,
  • 一个可迭代的 yield (train, test) 拆分为索引数组。

对于整数/无输入,如果 y 是二进制或多类,则使用 StratifiedKFold 。如果估计器是分类器或者如果y 既不是二元也不是多类,则使用 KFold

有关可在此处使用的各种交叉验证策略,请参阅用户指南。

scoringstr,可调用或无,默认=无

一个字符串(参见模型评估文档)或带有签名 scorer(estimator, X, y) 的记分器可调用对象/函数。

verbose整数,默认=0

控制输出的详细程度。

n_jobsint 或无,默认=无

在适合折叠时并行运行的内核数。 None 表示 1,除非在 joblib.parallel_backend 上下文中。 -1 表示使用所有处理器。有关详细信息,请参阅词汇表。

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

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

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

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

属性

classes_ndarray 形状 (n_classes,)

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

estimator_Estimator 实例

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

grid_scores_ndarray 形状 (n_subsets_of_features,)

已弃用:grid_scores_ 属性在 1.0 版中已弃用,取而代之的是 cv_results_,并将在 1.2 版中删除。

cv_results_ndarrays的字典

带键的字典:

拆分(k)_test_scorendarray 形状 (n_features,)

第 (k) 倍的交叉验证分数。

mean_test_scorendarray 形状 (n_features,)

折叠的平均分数。

std_test_scorendarray 形状 (n_features,)

折叠分数的标准差。

n_features_int

具有交叉验证的选定特征的数量。

n_features_in_int

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

feature_names_in_ndarray 形状(n_features_in_,)

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

ranking_narray 形状 (n_features,)

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

support_ndarray 形状 (n_features,)

所选特征的掩码。

注意

grid_scores_ 的大小等于 ceil((n_features - min_features_to_select) / step) + 1 ,其中 step 是每次迭代中移除的特征数。

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

参考

1

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

例子

以下示例显示了如何在 Friedman #1 数据集中检索 a-priori 未知的 5 个信息特征。

>>> from sklearn.datasets import make_friedman1
>>> from sklearn.feature_selection import RFECV
>>> from sklearn.svm import SVR
>>> X, y = make_friedman1(n_samples=50, n_features=10, random_state=0)
>>> estimator = SVR(kernel="linear")
>>> selector = RFECV(estimator, step=1, cv=5)
>>> 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.RFECV。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。