Python中每列值的随机森林特征重要性

Posted

技术标签:

【中文标题】Python中每列值的随机森林特征重要性【英文标题】:Random Forest feature importance per value of a column in Python 【发布时间】:2021-05-13 07:03:18 【问题描述】:

我目前有一个包含大量社区(样本)的数据集。还有一列称为“市政”,其中包含该社区所属的自治市的名称。我做了一个随机森林回归器来根据许多特征预测荷兰的能源消耗(当然“市政”列没有用作特征,也不是一个类)。

Sklearn 有一个特征重要性函数,但这是针对整个训练数据集的。我想知道是否可以查看每个城市的哪些特征对训练模型最重要。我想看看能否找到各个城市的特征重要性之间的空间差异。

首先我想,也许我可以为训练数据中的每个样本查看哪些特征最重要,然后总结来自同一城市的所有样本(社区)。但是我在谷歌上找不到这样的东西。

希望有人能提供帮助。

谢谢!

【问题讨论】:

【参考方案1】:

获得训练模型的特征重要性。您不能根据一个列特征来要求重要性特征,因为它会自动使用训练模型的所有特征。

一个想法是为每一类邻域训练一个模型。然后,您将获得每个类的特征重要性列表并进行比较。当然,只有当不同类的数量相对较少时,您才能这样做。

【讨论】:

谢谢,我试试看:)【参考方案2】:

第一个:根据您想要的功能分离您的数据,例如:

data1 = data[np.where(municipality==a)]

data2 = data[np.where(municipality==b)]

现在训练您的数据并根据 municipality 的任何内容查看重要性。要比较重要性,只需查看clf.feature_importance 结果并进行比较。

为了更好的答案,写出更好的问题

【讨论】:

以上是关于Python中每列值的随机森林特征重要性的主要内容,如果未能解决你的问题,请参考以下文章

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

特征筛选(随机森林)

随机森林特征重要性 Python

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

利用随机森林对特征重要性进行评估

R语言随机森林模型中具有相关特征的变量重要性