Data drift на собеседовании Data Scientist

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.

Зачем разбирать на собесе

Drift — главная причина деградации production моделей. На собесе DS / MLE: «как обнаружить drift», «отличие data и concept».

Виды дрейфа

Data drift (covariate shift). P(X) меняется — distribution входных features.

Concept drift. P(Y|X) меняется — отношение target к features.

Label drift. P(Y) меняется — propor classes shifted.

Пример:

  • Data drift: пришли пользователи из нового региона (новые distribution географии).
  • Concept drift: после COVID пользователи стали покупать иначе.
  • Label drift: повысили цены — fewer покупок.

Data drift не обязательно ломает модель. Concept drift — точно ломает.

Detection методы

Statistical tests.

  • Kolmogorov-Smirnov для continuous.
  • Chi-square для categorical.
  • Mann-Whitney U.

p-value < 0.05 → распределения отличаются.

Distance metrics.

  • PSI (Population Stability Index).
  • KL divergence.
  • Wasserstein distance.

Model-based.

  • Train классификатор «old vs new». ROC-AUC > 0.7 → drift есть.

Performance monitoring. Если ground truth доступен — отслеживай accuracy / AUC / loss live.

PSI и KL divergence

PSI (Population Stability Index).

PSI = Σ (p_new(i) - p_old(i)) · ln(p_new(i) / p_old(i))

Бинируем continuous variable (10-20 bins), считаем долю в каждом bin'е для old / new, формула.

Интерпретация:

  • PSI < 0.1 — no significant change.
  • 0.1-0.25 — moderate.
  • 0.25 — major drift.

Используется в финансах / scoring.

KL divergence. Information-theoretic distance.

KL(P || Q) = Σ P(x) · log(P(x) / Q(x))

Не симметричен. Wasserstein и JS divergence — alternatives.

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Что делать при drift

1. Investigation. Какая фича дрейфит? Source data check?

2. Retrain. Если retraining показывает improved metrics на recent data — gold.

3. Online learning. Постепенное обновление модели.

4. Feature engineering update. Если drift систематический — добавить features (например, time-based).

5. Sliding window training. Тренируй на последних N днях, не на всём историческом.

Tools

Evidently AI. Open source drift / quality monitoring.

Whylogs. Profile-based monitoring.

Arize / Fiddler / Aporia. Commercial.

MLflow + custom scripts.

В РФ: чаще custom solution на Python + dashboards.

Частые ошибки

Без monitoring drift detect только когда метрики упали. Слишком поздно — пользователи получают плохие predictions.

Алертинг на каждое изменение. Шум. Пороги (PSI > 0.25), multi-window.

Только на total distribution. Иногда важна группа (high-value users). Сегментированный мониторинг.

Полагаться только на ground truth. Часто ground truth доступен с задержкой. Раннее обнаружение через distribution.

Drift = retraining. Не всегда. Иногда root cause — data quality / pipeline bug, retrain не помогает.

Связанные темы

FAQ

KS test для multivariate?

Только univariate. Для multivariate — Maximum Mean Discrepancy (MMD), classifier-based.

Это официальная информация?

Нет. Статья основана на материалах MLOps community, Evidently AI docs.


Тренируйте Data Science — откройте тренажёр с 1500+ вопросами для собесов.