如何在Scikit-learn的RandomForestRegressor中排序“feature_importances_”

时间:2014-05-27 22:36:58

标签: python scikit-learn random-forest

如果我运行一个模型(在这种情况下称为clf),我得到的输出看起来像这样。如何将其与用于训练分类器的特征输入相关联?

>>> clf.feature_importances_

array([ 0.01621506,  0.18275428,  0.09963659,... ])

3 个答案:

答案 0 :(得分:6)

正如评论中所提到的,看起来订单或功能的重要性是" x"的顺序。输入变量(我已将其从Pandas转换为Python本机数据结构)。我使用此代码生成如下所示的类型列表:(feature_name,feature_importance)。

zip(x.columns, clf.feature_importances_)

答案 1 :(得分:2)

您可以将结果保存在熊猫数据框中,如下所示:

pandas.DataFrame({'col_name': clf.feature_importances_}, index=x.columns).sort_values(by='col_name', ascending=False)

通过对它进行降序排序,我们可以了解重要功能。

答案 2 :(得分:0)

顺序是训练/数据集的特征/属性的顺序。

您可以在相应的属性/特征名称旁边显示这些重要性分数,如下所示:

attributes = list(your_data_set)

sorted(zip(clf.feature_importances_, attributes), reverse=True)

输出可能是类似的:

[(0.01621506, 'feature1'),
(0.09963659, 'feature2'),
(0.18275428, 'feature3'),
...
...