使用nlargest绘制随机森林特征重要性时顺序倒置问题咨询
问题解答
原因分析
pandas 的水平条形图(kind='barh')默认将 Series 的第一个元素绘制在图表底部,而 nlargest(20) 返回的是从大到小排序的特征重要性序列——数值最大的特征是序列的第一个元素,因此会被放在图表底部,和预期的顶部显示逻辑相反。
解决方法
你可以通过两种简单方式调整顺序,让高重要性特征显示在顶部:
- 方式一:反转
nlargest结果的顺序,让最大的元素成为序列最后一项:
feat_importances = pd.Series(g_search.best_estimator_.feature_importances_, index=X_train.columns) feat_importances.nlargest(20)[::-1].plot(kind='barh')
- 方式二:对
nlargest结果做升序排序,再绘制水平条形图:
feat_importances = pd.Series(g_search.best_estimator_.feature_importances_, index=X_train.columns) feat_importances.nlargest(20).sort_values(ascending=True).plot(kind='barh')
内容的提问来源于stack exchange,提问作者The Great
相关产品推荐
相关产品推荐

