ClassicML ClassicMLМетрики

Постановка задачи прогнозирования спроса

  • Как переводить бизнес-задачу прогнозирования спроса в формальную ML-постановку (регрессия на временных рядах)?
  • Как выбрать день расчёта прогноза и горизонт (на какую неделю / на N недель вперёд)?
  • Как обрабатывать пересечения зон доставки между магазинами?

Данные и фичи

  • Если есть возможность взять исторические данные за 10 лет — стоит ли это делать? Какие критерии?
  • Чем отличаются «хорошие» данные от «плохих»? Хорошие — это без пропусков?
  • Что есть «сэмпл» в задаче временных рядов? Что является таргетом?
  • Какие признаки делать на этапе feature engineering для прогноза недельного спроса (лаги, роллинги, праздники, скорблизость)?
  • Как обработать «сильно праздничные» периоды (8 марта, 14 февраля, новогодние)?

Валидация

  • Как разделять данные на train / validation / отложенную выборку для временных рядов?
  • Зачем нужна третья выборка (holdout) помимо train и test?
  • Что такое подгонка под тест и как её избежать?

Модели и обучение

  • Какие бустинги пробуют для прогнозирования спроса (XGBoost, LightGBM, CatBoost)?
  • Чем CatBoost обрабатывает категориальные признаки автоматически?
  • Какие инструменты используют для подбора гиперпараметров (Optuna)?
  • Если фичей не 50, а 2000, как подходить к их отбору? PCA, корреляции, feature importance?

Метрики

  • Чем отличаются MAE / MAPE / WAPE / RMSE? Когда что лучше использовать?
  • В каких случаях WAPE предпочтительнее MAPE (например, при сильной сезонности: август — 10 заказов, март — 10 000)?
  • Как презентовать WAPE бизнесу понятным языком?
  • Стоит ли масштабировать таргет при сильном дисбалансе значений?

Прод и AB-тесты

  • В каком формате модель попадает в прод (FastAPI, Airflow, MLFlow, ETL pipeline)?
  • В каких случаях нужен FastAPI, а в каких — пакетный режим?
  • Как доказывать бизнесу состоятельность новой модели (AB-тест)?
  • Что такое data drift? Как его отслеживать?
  • В каком инструменте смотрят мониторинг (Superset, Grafana)?

Гипотетический кейс — динамическая цена в такси

  • Как построить модель справедливой динамической цены для конкретного заказа?
  • Какие признаки использовать (дальность, пробки, погода, спрос в районе)?
  • Как формализовать это как ML-задачу (бинарная классификация: «согласен ли клиент на цену X»)?
  • Какие метрики использовать (Precision / Recall / F1 / ROC-AUC / PR-AUC)?
  • Как ROC-AUC поведёт себя при сильном дисбалансе классов? Что покажет PR-AUC?