【问题标题】:How can I get the index of features for each score of rfecv?如何获得每个 rfecv 分数的特征索引?
【发布时间】:2021-11-05 18:50:09
【问题描述】:

我正在使用递归特征消除和交叉验证 (rfecv) 来找到特征的最佳准确度得分。 正如我所看到的 _grid_scoresis 估计器在使用第 i 个特征子集进行训练时产生的分数。有什么方法可以获取 _grid_score 中每个分数的子集特征索引? 我可以使用 get_support ( 5 个特征子集) 获得最高分的所选特征的索引。

子集特征,分数

5 , 0.976251

4 , 0.9762072

3 , 0.97322212

如何获取 4 或 3 个特征子集的索引? 我检查了 rfecv.ranking_ 的输出,5 个特征的 rank =1 ,但 Rank= 2 只有一个特征,依此类推。

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: machine-learning scikit-learn data-science feature-extraction feature-selection


【解决方案1】:

(可能)从未选择过 3 个(或 4 个)特征的(单个)子集!

这似乎是对RFECV 工作原理的常见误解;见How does cross-validated recursive feature elimination drop features in each iteration (sklearn RFECV)?。每个交叉验证折叠(比如 5 个)都有一个 RFE,每个都会产生自己的一组 3 个特征(可能不同)。不幸的是(至少在这种情况下),那些RFE 对象没有被保存,所以你无法识别每个折叠选择了哪些特征集;只保存分数(来源pt1pt2)用于选择最佳特征数量,然后在整个数据集上训练另一个RFE,以减少到最终的特征集。

【讨论】:

    猜你喜欢
    • 2015-12-18
    • 2018-05-28
    • 2017-09-13
    • 2016-08-31
    • 1970-01-01
    • 2021-04-09
    • 2017-07-18
    • 1970-01-01
    • 2021-08-09
    相关资源
    最近更新 更多