Делали ли обратное преобразование признаков?
Что проверяют
Работали ли вы с моделью дальше fit и predict: как вернуть прогнозы и коэффициенты в понятные бизнесу единицы и не потерять корректность. Вопрос про опыт, поэтому ждут конкретный случай. Следом почти всегда спрашивают, в какой шкале вы считали метрику.
Как отвечать
Постройте ответ вокруг своего проекта: что преобразовали и зачем, как вернули обратно, что проверили. Опорные пункты:
- инструменты:
inverse_transformуStandardScaler,MinMaxScaler,PowerTransformer(Box-Cox, Yeo-Johnson),OneHotEncoder,LabelEncoder;np.expm1послеnp.log1p. Для целевой переменной удобенTransformedTargetRegressorиз scikit-learn: он сам преобразуетyпри обучении и возвращает прогноз в исходной шкале; - смещение: если модель обучена на
log(y), тоexpот прогноза при симметричных ошибках оценивает медиану, а не среднее, и суммарный прогноз продаж выходит заниженным. Лечится поправкой (smearing-оценка Дуана) или обучением в исходной шкале с подходящей функцией потерь, например Tweedie или Пуассона; - метрики: MAE и RMSE для отчёта считают после обратного преобразования, иначе цифры бизнесу ничего не говорят;
- интерпретация: коэффициент линейной модели на стандартизованном признаке переводится в исходные единицы делением на стандартное отклонение признака;
- продакшн: преобразователь обучают только на трейне и сохраняют вместе с моделью в одном
Pipeline.
Цифры эффекта называйте свои: как изменились ошибка или смещение суммы. Если опыта не было, так и скажите, опишите, где бы это понадобилось, и назовите ловушку, которую знаете, чаще всего это смещение после логарифма.
Где спотыкаются
Говорят, что обратное преобразование повысило точность. Оно только возвращает шкалу, а качество меняют выбор преобразования и функция потерь.
Не знают про смещение после exp и сдают прогноз, систематически заниженный в сумме.
Заново обучают скейлер на новых данных при инференсе вместо загрузки сохранённого и получают прогнозы, сдвинутые непредсказуемо.