如何从 xgboost 或随机森林中区分重要特征的方向?

Posted

技术标签:

【中文标题】如何从 xgboost 或随机森林中区分重要特征的方向?【英文标题】:How to distinguish the direction of important features from xgboost or random forest? 【发布时间】:2020-02-07 09:56:54 【问题描述】:

我现在正在研究二进制文本分类问题(如情感分析),仅通过 feature_importances_ 提取 xgboost 或随机森林的最重要特征是微不足道的

假设对于这个分类问题,我们有两个标签 1 和 0。那么有什么方法可以打印出特征的方向(正面或负面)?比如说,单词特征 A 有一个标签 1 的丰富或高 tfidf。

当然我可以拉出这个特定单词特征的 tfidf 列,并与 pearson 系数的标签相关联,系数的 +/- 表示方向,对吧?任何其他更优雅的方式或 xgboost 和随机森林都内置了这样的功能。 (没找到)

谢谢

【问题讨论】:

【参考方案1】:

除了 Lime(Sam H 建议)之外,SHAP 也是一个选项。

【讨论】:

【参考方案2】:

这并不完全符合您的要求,但我通常使用Lime 来执行此操作。即使我切换模型,我也喜欢它的工作方式。

【讨论】:

谢谢,实际上我已经阅读了 TreeInterpreter 和 Lime,并且生成的功能重要性列表似乎是针对“每个测试”的。虽然我的目的是给出一个整体列表,但我可以简单地总结每个测试的重要性权重?谢谢

以上是关于如何从 xgboost 或随机森林中区分重要特征的方向?的主要内容,如果未能解决你的问题,请参考以下文章

随机森林如何评估特征重要性

PySpark 和 MLLib:随机森林特征的重要性

特征筛选(随机森林)

测量随机森林回归器中每个预测器特征重要性对目标值的影响(量化)(目标值的提升或下降)

XGBoost三种特征重要性计算方法对比

如何在python中绘制随机森林的特征重要性