我想繪製隨機森林模型的要素重要性並將每個要素重要性映射回原始係數。我設法創建了一個顯示重要性並使用原始變量名稱作爲標籤的圖形,但現在它按照它們在數據集中的順序排序變量名稱(而不是按重要性排序)。我如何按照功能重要性排序?謝謝!將列名稱映射到隨機森林要素重要性
我的代碼是:
importances = brf.feature_importances_
std = np.std([tree.feature_importances_ for tree in brf.estimators_],
axis=0)
indices = np.argsort(importances)[::-1]
# Print the feature ranking
print("Feature ranking:")
for f in range(x_dummies.shape[1]):
print("%d. feature %d (%f)" % (f + 1, indices[f], importances[indices[f]]))
# Plot the feature importances of the forest
plt.figure(figsize=(8,8))
plt.title("Feature importances")
plt.bar(range(x_train.shape[1]), importances[indices],
color="r", yerr=std[indices], align="center")
feature_names = x_dummies.columns
plt.xticks(range(x_dummies.shape[1]), feature_names)
plt.xticks(rotation=90)
plt.xlim([-1, x_dummies.shape[1]])
plt.show()
你還沒有包括你目前得到的情節? –
已編輯!我不確定劇情增加了多少價值,因爲我只是想改變底部x標籤的順序。對於小字體的道歉,這是將大部分圖片放入屏幕截圖的唯一方法。 – yogz123
'plt.bar(範圍(x_dummies.shape [1]),重要性[indices], color =「r」,yerr = std [indices],align =「center」)'? –