【问题标题】:Random Forest feature importance per value of a column in PythonPython中每列值的随机森林特征重要性
【发布时间】:2021-05-13 07:03:18
【问题描述】:
我目前有一个包含大量社区(样本)的数据集。还有一列称为“市政”,其中包含该社区所属的自治市的名称。我做了一个随机森林回归器来根据许多特征预测荷兰的能源消耗(当然“市政”列没有用作特征,也不是一个类)。
Sklearn 有一个特征重要性函数,但这是针对整个训练数据集的。我想知道是否可以查看每个城市的哪些特征对训练模型最重要。我想看看能否找到各个城市的特征重要性之间的空间差异。
首先我想,也许我可以为训练数据中的每个样本查看哪些特征最重要,然后总结来自同一城市的所有样本(社区)。但是我在谷歌上找不到这样的东西。
希望有人能提供帮助。
谢谢!
【问题讨论】:
标签:
python
pandas
scikit-learn
regression
random-forest
【解决方案1】:
获得训练模型的特征重要性。您不能根据一个列特征来要求重要性特征,因为它会自动使用训练模型的所有特征。
一个想法是为每一类邻域训练一个模型。然后,您将获得每个类的特征重要性列表并进行比较。当然,只有当不同类的数量相对较少时,您才能这样做。
【解决方案2】:
第一个:根据您想要的功能分离您的数据,例如:
data1 = data[np.where(municipality==a)]
data2 = data[np.where(municipality==b)]
现在训练您的数据并根据 municipality 的任何内容查看重要性。要比较重要性,只需查看clf.feature_importance 结果并进行比较。
为了更好的答案,写出更好的问题