Ответ вслух Middle Валидация и утечки обновлено

Схема валидации для реальной задачи

Вопрос

Вы прогнозируете, купит ли пользователь товар в ближайшую неделю, по логам маркетплейса за год. Как построите схему валидации?

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

Задача по сути прогнозная, поэтому основа это разбиение по времени. Выбираю точки среза: на каждую строю признаки только по логам до неё, а цель берётся из недели после.

Что должно прозвучать в ответе

  • Разбиение по времени: обучение на прошлом, валидация на следующих неделях

  • Момент среза: признаки до среза, цель в неделю после

  • Учёт групп: если важны новые пользователи, держать их отдельно

  • Отложенный тест на самом свежем периоде

  • Проверка на утечки и согласие офлайн-метрики с онлайн

Что могут спросить следом

  • Что если в данных есть сезонность и праздники?
  • Как часто переобучать модель в проде и как это повторить в валидации?

Разбор

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

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.