Data drift на собеседовании Data Scientist
Карьерник — 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.
Что делать при 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 не помогает.
Связанные темы
- MLOps на собесе DS
- MLflow и DVC на собесе DS
- Bias-variance trade-off на собесе DS
- Cross-validation на собесе DS
- Подготовка к собесу Data Scientist
FAQ
KS test для multivariate?
Только univariate. Для multivariate — Maximum Mean Discrepancy (MMD), classifier-based.
Это официальная информация?
Нет. Статья основана на материалах MLOps community, Evidently AI docs.
Тренируйте Data Science — откройте тренажёр с 1500+ вопросами для собесов.