Я сталкивался с несколькими вопросами о Stackoverflow, где проблема, с которой сталкиваются массы, заключается в том, что они предварительно обрабатывают обучающие данные, такие как использование центра и масштаба и т. Д., До подгонки / обучения модели XGBoost с использованием, например,
`
scaler = MinMaxScaler(feature_range=(0, 1))
X = scaler.fit_transform(X)
my_model_name = XGBClassifier()
my_model_name.fit(X,Y)`
где X и Y - обучающие данные и метки соответственно, масштабирование, которое возвращает двумерный массив NumPy, тем самым теряя имена объектов.
Я обучил свою модель XGBoost, но с использованием предварительно обработанных данных (центри масштабировать с использованием MinMaxScaler).Таким образом, я нахожусь в аналогичной ситуации, когда имена столбцов / имена элементов теряются.Таким образом, когда я пытаюсь использовать plot_importance(my_model_name)
, это приводит к графику важности объектов, но только с именами объектов как f0, f1, f2 и т. Д., А не с фактическими именами объектов в наборе данных, как должно быть очевидно.
Большинство ответов по SO относятся к обучению модели таким образом, чтобы имена элементов не терялись (например, с помощью pd.get_dummies для столбцов фрейма данных. У меня есть запрос о том, как получить действительные имена объектовпри использовании plot_importance(my_model_name)
, без переобучения модели? Есть ли способ сопоставить имена объектов f0, f1, f2 и т. д. из исходных данных обучения (без предварительной обработки, с именами столбцов) с созданным графиком важности объектов, поэтомучто фактические названия объектов нанесены на график? Любая помощь в этом отношении высоко ценится.