【发布时间】:2018-04-07 04:28:29
【问题描述】:
我正在将 XGBoost 与 Python 结合使用,并已使用在 DMatrix 数据上调用的 XGBoost train() 函数成功训练了一个模型。该矩阵是从 Pandas 数据框创建的,该数据框具有列的特征名称。
Xtrain, Xval, ytrain, yval = train_test_split(df[feature_names], y, \
test_size=0.2, random_state=42)
dtrain = xgb.DMatrix(Xtrain, label=ytrain)
model = xgb.train(xgb_params, dtrain, num_boost_round=60, \
early_stopping_rounds=50, maximize=False, verbose_eval=10)
fig, ax = plt.subplots(1,1,figsize=(10,10))
xgb.plot_importance(model, max_num_features=5, ax=ax)
我现在想使用 xgboost.plot_importance() 函数查看特征重要性,但生成的图没有显示特征名称。相反,这些功能被列为f1、f2、f3 等,如下所示。
我认为问题在于我将原始 Pandas 数据框转换为 DMatrix。如何正确关联特征名称以便特征重要性图显示它们?
【问题讨论】:
标签: python pandas machine-learning xgboost