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中每列值的随机森林特征重要性的主要内容,如果未能解决你的问题,请参考以下文章