【发布时间】:2016-10-19 01:17:52
【问题描述】:
我使用 sklearn 来绘制森林的特征重要性。数据框被命名为“心脏”。这里是提取排序特征列表的代码:
importances = extc.feature_importances_
indices = np.argsort(importances)[::-1]
print("Feature ranking:")
for f in range(heart_train.shape[1]):
print("%d. feature %d (%f)" % (f + 1, indices[f], importances[indices[f]]))
然后我以这种方式绘制列表:
f, ax = plt.subplots(figsize=(11, 9))
plt.title("Feature ranking", fontsize = 20)
plt.bar(range(heart_train.shape[1]), importances[indices],
color="b",
align="center")
plt.xticks(range(heart_train.shape[1]), indices)
plt.xlim([-1, heart_train.shape[1]])
plt.ylabel("importance", fontsize = 18)
plt.xlabel("index of the feature", fontsize = 18)
我得到这样的情节:
我的问题是:如何将功能的 NUMBER 替换为功能的名称,以使情节更易于理解? 我试图转换包含特征名称的字符串(即数据框每一列的名称),但我无法达到我的目标。
谢谢
【问题讨论】:
标签: python numpy matplotlib scikit-learn sklearn-pandas