【发布时间】:2017-02-21 00:21:47
【问题描述】:
您好,我使用 xgboost 的 feature_importance 绘制了一个图表。但是,该图返回“f 值”。我不知道图中表示的是哪个特征。我听说如何解决这个问题的一种方法是将我的数据框中的特征索引映射到 feature_importance“f 值”的索引并手动选择列。我该怎么做呢?此外,如果有其他方法可以做到这一点,我们将不胜感激:
下面是我的代码:
feature_importance = pd.Series(model.booster().get_fscore()).sort_values(ascending=False)
feature_importance.plot(kind='bar', title='Feature Importances')
plt.ylabel('Feature Importance Score')
print(feature_importance.head())
Output:
f20 320
f22 85
f29 67
f34 38
f81 20
【问题讨论】:
-
嘿@jezrael。觉得你也可以帮我看看这个!
-
检查上面我添加了它@jezrael
-
很好,谢谢。现在
f20、f22正在与一些dict进行映射?还是其他数据框? -
不是问题,它假设映射我的特征标签。但是由于某些奇怪的原因,xgboost 的方法是这样打印的。那些 f 值实际上是我的特征。所以我想知道是否有任何方法可以找到我的列的索引号,例如第 1 列的值可能是 f20 。我只是想要一个比较,之后我可以手动将它们取出@jezrael
-
我从不使用
xgboost,所以这对我来说很难。如果添加您的输入数据样本(如何获得model)和所需的数据框输出feature_importance,可能会有所帮助
标签: python feature-selection data-science xgboost