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



如果运行一个模型(在本例中称为clf),将得到如下所示的输出。我如何将其与用于训练分类器的特征输入联系起来?

>>> clf.feature_importances_
array([ 0.01621506,  0.18275428,  0.09963659,... ])

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

zip(x.columns, clf.feature_importances_)

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

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

通过降序排序,我们得到了重要特征的提示。

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

你可以在它们对应的属性/特性名称旁边显示这些重要性分数,如下所示:

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

输出可以是类似的:

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

相关内容

  • 没有找到相关文章

最新更新