在 sklearn 集成方法中解释 feature_importances_

Posted

技术标签:

【中文标题】在 sklearn 集成方法中解释 feature_importances_【英文标题】:Interpreting feature_importances_ in sklearn ensamble methods 【发布时间】:2016-04-16 05:30:54 【问题描述】:

预测后,feature_importances_(特别是GradientBoostingClassifier,但可能存在于其他方法)具有特征重要性。根据文档,越高,功能越重要。

你知道返回的数字是什么意思吗?

我得到的值范围从 0.02 到 10^-6 或 0。

如果一个特征的重要性为 0.02,那么它的重要性是所有特征的 2%,但这与预测准确性或预测相关性有何关系?我可以解释这个数字并了解删除此类功能将如何影响预测吗?

【问题讨论】:

你能详细解释一下这个问题吗? 它们应该是一个相对重要性比率,所以基本上所有特征加起来应该是1.0,听起来你有很多特征 添加了更多细节。谢谢! 【参考方案1】:

Gilles Louppe,sklearn 集成和树模块的主要作者,对问题here 写了一个很好的回复。

有不同的方法可以量化决策树中的节点如何帮助将传入数据集划分为具有输出类的块,这些输出类累积起来比分割前更具预测性。一种这样的度量是gini importance,它是在节点处拆分的数据集提供的输出类杂质减少的度量。这个衡量标准,根据使用该特征实际分割数据集的多少行并在集合中的所有决策树上取平均值来加权,确定了 sklearn 中的 feature_importance_。

【讨论】:

以上是关于在 sklearn 集成方法中解释 feature_importances_的主要内容,如果未能解决你的问题,请参考以下文章

特征选择- Sklearn.feature_selection的理解

Python SKLearn:如何在 OneHotEncoder 之后获取特征名称?

随机森林 sklearn 变量重要性

在 sklearn.preprocessing 模块中,我得到 ValueError: Found array with 0 feature(s)

sklearn.feature_selection.SelectKBest 特征评分模块中的负数问题

sklearn中调用集成学习算法