Я использую XGBoost с Python и успешно обучил модель, используя функцию XGBoost train()
, называемую данными DMatrix
. Матрица была создана из фрейма 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. Как я могу связать имена объектов так, чтобы их отображал график важности функции?