Признаки важнее модели
Хорошие признаки часто дают больше, чем выбор алгоритма. Источники — знание предметной области (доля возвратов клиента, дни с последней покупки), агрегаты по истории за разные окна, время (день недели, праздники), категории и тексты. Пропуски сначала понимают: почему значение отсутствует — часто это само по себе сигнал, и его сохраняют флагом.
Утечка данных
Утечка — в обучении используется информация, недоступная в момент реального прогноза. Метрики на валидации выглядят отлично, а в продакшене модель проваливается. Типичные виды:
- признак — следствие ответа (статус «возврат оформлен» при предсказании возврата);
- перемешанные временные данные — модель видит будущее;
- предобработка на всём наборе — масштабирование или target encoding до разбиения.
Проверка простая: доступен ли этот признак в момент прогноза в реальной системе. «Подозрительно хороший» признак — первый сигнал.
Схема валидации
K-fold обучает модель k раз, каждый раз оставляя одну часть на проверку, и усредняет метрику. Stratified сохраняет доли классов, group не пускает объекты одного пользователя одновременно в обучение и проверку, для временных данных — только «обучение на прошлом, проверка на будущем». Схему выбирают под то, как модель будет работать в реальности.
Кривые обучения
Ошибка на обучении и валидации по эпохам или по размеру выборки:
- обучение падает, валидация растёт — переобучение;
- обе высокие и близки — недообучение;
- валидация ещё падает с ростом выборки — помогут новые данные.
Итог
- Признаки из предметной области, пропуски — с флагом.
- Любой признак проверять на доступность в момент прогноза.
- Схема валидации повторяет реальное использование.
- Кривые обучения подсказывают, что делать дальше.