Как получить реальные имена элементов на графике важности функций XGBoost без переобучения модели? - PullRequest
0 голосов
/ 28 февраля 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...