Как привести результат обработки данных после нормализации через ScalerMinMax к начальному формату?
Есть некий датасет на Kaggle, содержащий категориальные признаки, а также float-значения.
Я преобразовал категориальные признаки с помощью dummy-метода. И теперь решил нормализовать данные с помощью MinMaxScaler.
Меня интересует прогноз Rating, данные которого в формате float от 0 до 5.
Я подал уже обработанные и нормализованные данные в RandomForestRegressor и получил прогноз в формате (от 0 до 1). MAE меня устраивает. Но так как итоговые предсказанные данные в формате от 0 до 1 (в следствии нормализации), то Kaggle кидает меня далеко вниз, так как он проверяет мой результат со своим шаблоном, в котором данные должны быть в формате от 0 до 5.
Вопрос - как мне привести предсказанные данные, но которые находятся в нормированном виде от 0 до 1 в тот вид, который у Kaggle в шаблоне (от 0 до 5) при этом сохранив саму модель и сохранив качество модели.
Вот мой ноутбук с данными и моделью: https://www.kaggle.com/viktorandriichuk/baseline-sf-tripadvisor-rating-v2-7-vandr
Спасибо )
Ответы (2 шт):
Я данные конечно не видел, но могу предположить, что нужно избежать нормализации target столбца, нормализовать надо только X, а не y, качество модели по MAE упадёт, но на самом деле это мнимое качество, ибо сам по себе разброс y значений вы искусственно уменьшили. Конечно можете просто домножить на 5 и округлить, но откровенно говоря сомневаюсь, что этот вариант даст вам лучший результат
Вообще у MinMaxScaler есть метод inverse_transform, но вам нужно будет подать в него данные с тем же числом колонок, которое вы подавали в fit_transform, потому что разные колонки он же по- разному масштабирует, с разными коэффициентами. Ну то есть надо будет подать объединение X_test c y_predict и потом забрать из колонки где был y_predict то, что получилось.
И да, обычно таргет не нормализуют, но случаи бывают разные, имеет смысл попробовать и так и эдак.