Схема валидации для реальной задачи
Вопрос
Вы прогнозируете, купит ли пользователь товар в ближайшую неделю, по логам маркетплейса за год. Как построите схему валидации?
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Разбиение по времени: обучение на прошлом, валидация на следующих неделях
Момент среза: признаки до среза, цель в неделю после
Учёт групп: если важны новые пользователи, держать их отдельно
Отложенный тест на самом свежем периоде
Проверка на утечки и согласие офлайн-метрики с онлайн
Что могут спросить следом
- Что если в данных есть сезонность и праздники?
- Как часто переобучать модель в проде и как это повторить в валидации?
Разбор
Задача по сути прогнозная, поэтому основа это разбиение по времени. Выбираю точки среза: на каждую строю признаки только по логам до неё, а цель берётся из недели после. Обучаю на нескольких срезах из прошлого, валидирую на более поздних, а самые свежие недели откладываю в тест. Так я повторяю то, как модель будет работать в проде, где её будут переобучать, например раз в неделю. Слежу, чтобы окна цели трейна не заходили в период валидации, иначе нужен зазор. Если важно качество на новых пользователях, отдельно смотрю метрику по ним. Проверяю утечки: признаки, которые считаются после покупки, статистики по всему периоду. В конце сверяю офлайн-метрику с A/B: если они расходятся, схема валидации не отражает прод.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.