Рассмотрим следующую таблицу примеров, в которой я пытаюсь делать прогнозы на
![enter image description here](https://i.stack.imgur.com/5yG9X.png)
Как вы можете видеть, у меня есть сочетание числовых (Num1 & Num2) и категориальных функций (Cat1 & Cat2) для прогнозирования значения, и я использую Random Лесная регрессия для этого
После прочтения файла я преобразую категориальные функции в числовые, используя LabelEncoder , например,
category_col =['Cat1', 'Cat2']
labelEncoder = preprocessing.LabelEncoder()
# creating a map of all the numerical values of each categorical labels.
mapping_dict={}
for col in category_col:
df[col] = labelEncoder.fit_transform(df[col])
le_name_mapping = dict(zip(labelEncoder.classes_, labelEncoder.transform(labelEncoder.classes_)))
mapping_dict[col]=le_name_mapping
После преобразования я делю свой фрейм данных на набор для обучения и тестирования и делаю прогнозы, например
train_features, test_features, train_labels, test_labels = train_test_split(df, labels, test_size = 0.30)
rf = RandomForestRegressor(n_estimators = 1000)
rf.fit(train_features, train_labels)
predictions = rf.predict(test_features)
У меня вопрос, как мне изменить числовые номера Cat1 и Cat2, чтобы снова отобразить исходные категории, чтобы я мог экспортировать прогнозы обратно, например,
![enter image description here](https://i.stack.imgur.com/HpA6T.png)
Я понимаю, что мне нужно использовать labelEncoder.inverse_transform , однако, я не могу получить правильный синтаксис для возврата текста категории, чтобы связать его с результатами.
Любая помощь приветствуется!