【问题标题】:How to interpret feature importance for ensemble methods?如何解释集成方法的特征重要性?
【发布时间】:2017-09-24 01:28:04
【问题描述】:

我正在使用集成方法(随机森林、xgbclassifier 等)进行分类。

一个重要方面是特征重要性预测,如下所示:

           Importance
Feature-A   0.25
Feature-B   0.09
Feature-C   0.08
.......

该模型的准确度得分约为 0.85;显然 Feature-A 占主导地位,所以我决定删除 Feature-A 并重新计算。

但是,在移除 Feature-A 后,我仍然发现性能不错,准确度在 0.79 左右。

这对我来说没有意义,因为 Feature-A 为模型贡献了 25%,如果去掉,为什么准确度分数几乎没有影响?

我知道集成方法具有将“弱”特征组合成“强”特征的优势,因此准确度得分主要依赖于聚合,对重要特征移除不太敏感?

谢谢

【问题讨论】:

  • 您是否通过交叉验证检查了您的模型?您是否查看了具有弱特征和响应的图表,它们明显是相对的吗?我不知道梯度提升,但随机森林可能会在没有弱特征影响的情况下相应地构建树。但是,如果没有答案的链接,我认为最好将它们从您的模型中删除。估计器越多,梯度提升可能会变得更糟,使用更少的估计器(更快)可以构建随机森林。
  • 交叉发布:stats.stackexchange.com/q/276028/2921stackoverflow.com/q/43637662/781723。请do not post the same question on multiple sites。每个社区都应该诚实地回答问题,而不会浪费任何人的时间。

标签: python scikit-learn feature-selection ensemble-learning


【解决方案1】:

可能存在与特征 A 冗余的其他特征。例如,假设特征 G、H、I 与特征 A 冗余:如果您知道特征 G、H、I 的值,那么特征 A 几乎是确定的。

这将与您的结果一致。如果我们包含特征 A,模型会向我们学习它,因为仅使用特征 A 而忽略特征 G、H、I 很容易获得出色的准确度,因此它将具有出色的准确度,对特征 A 的重要性很高,并且特征 G,H,I 的重要性较低。如果我们排除特征 A,模型仍然可以通过使用特征 G,H,I 获得几乎一样好的准确度,所以它仍然会有很好的准确度(尽管模型可能会变得更复杂,因为 G,H 之间的关系,I 和 class 的关系比 A 和 class 的关系复杂)。

【讨论】:

    猜你喜欢
    • 2016-02-23
    • 2020-12-22
    • 2023-03-26
    • 2019-10-20
    • 2021-11-24
    • 2020-08-24
    • 2019-12-04
    • 2017-02-24
    • 2018-12-14
    相关资源
    最近更新 更多