Does xgboost have feature_importances_?



我通过它的scikit-learn风格的Python接口调用xgboost:

model = xgboost.XGBRegressor() 
%time model.fit(trainX, trainY)
testY = model.predict(testX)

一些 sklearn 模型通过属性 feature_importances 告诉您它们为特征分配的重要性。对于XGBRegressor来说,这似乎不存在:

model.feature_importances_
AttributeError   Traceback (most recent call last)
<ipython-input-36-fbaa36f9f167> in <module>()
----> 1 model.feature_importances_
AttributeError: 'XGBRegressor' object has no attribute 'feature_importances_'

奇怪的是:对于我的合作者来说,属性feature_importances_就在那里!可能是什么问题?

这些是我拥有的版本:

In [2]: xgboost.__version__
Out[2]: '0.6'
In [4]: sklearn.__version__
Out[4]: '0.18.1'

。以及来自 GitHub 的 xgboost C++库,提交ef8d92fc52c674c44b824949388e72175f72e4d1

你是如何安装 xgboost 的?您是否在从 github 克隆包后构建了包,如文档中所述?

http://xgboost.readthedocs.io/en/latest/build.html

如这个答案:

XGBClassifier 的功能重要性

pip安装和xgboost似乎总是有问题。从您的构建构建和安装它似乎有所帮助。

这对我有用:

model.get_booster().get_score(importance_type='weight')

希望对您有所帮助

是的,XGBoost 模型具有特征重要性详细信息

尝试以下操作:(它还为您提供功能的名称及其权重)

from matplotlib import pyplot
bars = xgb_model.get_booster().feature_names
y_pos = np.arange(len(bars))
pyplot.bar(range(len(xgb_model.feature_importances_)), xgb_model.feature_importances_)
pyplot.xticks(y_pos, xgb_model.get_booster().feature_names, color='black', rotation=45, fontsize='25', horizontalalignment='right')
pyplot.show()

特征重要性图

这对你有用,也许。

xgb.plot_importance(bst)

这是链接:情节

相关内容

  • 没有找到相关文章

最新更新