我正在使用scikit-learn 随机森林分类器,我想绘制特征重要性,例如在这个例子中。
然而,我的结果完全不同,因为特征重要性标准差几乎总是大于特征重要性本身(见附图)。
是否有可能有这种行为,或者我在绘制它时是否犯了一些错误?
我的代码如下:
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier()
clf.fit(predictors.values, outcome.values.ravel())
importance = clf.feature_importances_
importance = pd.DataFrame(importance, index=predictors.columns,
columns=["Importance"])
importance["Std"] = np.std([tree.feature_importances_
for tree in clf.estimators_], axis=0)
x = range(importance.shape[0])
y = importance.ix[:, 0]
yerr = importance.ix[:, 1]
plt.bar(x, y, yerr=yerr, align="center")
plt.show()