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

问题描述

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

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

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

希望有人能帮忙。

谢谢!

解决方法

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

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

,

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

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

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

现在训练您的数据并查看基于 municipality 的重要性。并比较重要性只需查看 clf.feature_importance 结果并进行比较。

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