我正在使用 XGBRegressor 构建模型。 拟合模型后,我想可视化特征重要性。
reg = xgb.XGBRegressor(base_score=0.5, booster='gbtree', n_estimators=1000)
reg.fit(X_train, y_train, eval_set=[(X_train, y_train), (X_test, y_test)], verbose=100)
fi = pd.DataFrame(data=reg.feature_importances_, index=reg.feature_names_in_, columns=['importance'])
fi.sort_values('importance').plot(kind='barh', title='Feature Importance')
plt.show()
我收到错误
AttributeError: 'XGBRegressor' object has no attribute 'feature_names_in_'
。我已经升级了 sklearn 并重新启动了 jupyter 笔记本,但仍然收到此错误。我所有的功能名称都是字符串。
我没有问题获得
feature_importances_
.
reg.get_booster().feature_names
试试这个吧
reg.get_booster().feature_names