Данные

Data leakage

Утечка данных

актуальноТекущий рабочий стандарт

Направления: Машинное обучение · Оценка моделей, Продвинутый ML · Причинный ML

Ситуация, когда в обучении присутствует информация, недоступная в реального предсказания. Главная причина «слишком хороших» метрик.

Ключевые тезисы

  • Типичные источники: масштабирование до сплита, из будущего, дубликаты между train и test.
  • В временных рядах любое перемешивание — почти гарантированная утечка.
  • Симптом: офлайн-метрика заметно лучше, чем всё, что вы видите в проде.

Какую задачу решает

Утечка — это попадание в обучающие информации, недоступной в реального предсказания. Модель находит её мгновенно (это самый сильный сигнал в данных), метрики на валидации взлетают, и команда празднует. В проде модель работает на уровне случайной.

Опасность утечки не в том, что её трудно исправить, а в том, что она маскируется под успех. Все обычные механизмы контроля — , , сравнение с базовой линией — при утечке дают зелёный свет, потому что заражены той же информацией. Поэтому единственная надёжная защита — не диагностика по метрикам, а дисциплина при построении данных.

Три проверки за пятнадцать минут

1) Посмотрите топ-10 : если один даёт почти всё качество, выясните его происхождение и заполнения. 2) Для каждого признака из топа спросите: «это значение существует в момент предсказания?» — по журналу источника, а не по интуиции. 3) Проверьте схему разбиения: есть ли время (нужен временной сплит), есть ли повторяющиеся сущности (нужен групповой сплит). Эти три шага ловят подавляющее большинство утечек и стоят несравнимо меньше, чем разбирательство после провала в проде.

Подробный разбор

2 подтемы — объяснения, формулы, примеры и интерактивные графики.

  1. Предобработка до разбиения: StandardScaler, или SMOTE, применённые ко всей выборке.
  2. Признаки из будущего: «дата закрытия договора» в задаче предсказания оттока.
  3. Прокси целевой переменной: сумма_страховой_выплаты при предсказании факта страхового случая.
  4. Дубликаты между train и test: один и тот же клиент или почти одинаковые изображения.
  5. Групповая утечка: несколько записей одного пациента разъехались по разным частям выборки.
Как это выглядит

на 0.98, в проде — 0.62. Разбор показывает: последний_платёж_дата заполняется только после того, как клиент ушёл.

  • Для каждого ответьте: был бы он известен в момент предсказания?
  • Подозрительно высокая метрика — повод искать ошибку, а не радоваться.
  • Посмотрите на важности: один с важностью 0.9 почти всегда означает утечку.
  • Проверяйте пересечение групп между train и test явным кодом, а не на глаз.
  • Валидация по времени: обучаемся на прошлом, проверяемся на будущем — так же, как будет в проде.
фолд 1
фолд 2
фолд 3
фолд 4
фолд 5
обучение валидация
обучений модели5
доля валидации20%
схемаK-Fold
Схема разбиения
Переключите схему на временную: валидация всегда идёт после обучающего периода, будущее не используется

Где применяется

  • Проверка перед продомОбязательный аудит до вывода модели в эксплуатацию.
  • Разбор аномально высокой метрикиПервая гипотеза при неправдоподобно хорошем результате.
  • Задачи со временемЛюбой прогноз требует разбиения по времени, а не случайного.
  • Медицина и клиентыРазбиение по пациенту или клиенту, а не по строке.

Плюсы, минусы и альтернативы

Плюсы

  • Обнаружение утечки экономит месяцы работы и репутацию проекта.
  • Проверки дешёвые: время разбиения, , здравый смысл.

Минусы

  • Утечка не проявляется в метриках — все стандартные проверки её пропускают.
  • Часто прячется в исходных данных, а не в вашем коде.
  • Полностью исключить невозможно: нужна постоянная дисциплина.

Брать, если

  • Всегда перед выводом модели в прод.
  • Немедленно, если метрика выглядит слишком хорошо.
  • При любой работе с данными, где есть время или повторяющиеся сущности.

Не брать, если

  • Не отбрасывайте сильный только за то, что он сильный: сначала проверьте его доступность на предсказания.

Чем заменяют

Тема также относится к главам:Оценка моделейСхемы валидации · Диагностика

Видеолекции

Тайм-кода именно на эту тему в записях нет. Но глава «Данные» разобрана в курсах целиком — с той оговоркой, что место в записи придётся искать самому.

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

Надёжность данных · Утечки и честная валидация · Приватность и утечки

Data leakage98%

Утечка данных · Практика ML

Самая дорогая ошибка в ML: модель отлично работает офлайн и разваливается в проде.

Data Quality85%

Качество данных · Инженерия данных

Автоматические проверки, которые ловят поломку источника раньше, чем она попадёт в модель.

Data Contracts85%

Контракты данных · Инженерия данных

Явная договорённость между источником и потребителем: какие поля, каких типов и с какими гарантиями.

Idempotency & Exactly-once85%

Идемпотентность и гарантии доставки · Инженерия данных

Что происходит при повторной обработке события и как не задвоить данные.

Change Data Capture85%

Захват изменений (CDC) · Инженерия данных

Чтение журнала изменений базы вместо периодических полных выгрузок.

Feature Stores85%

Хранилища признаков · MLOps

Централизованное хранилище признаков, единое для обучения и онлайн-инференса.

Data preprocessing85%

Предобработка данных · Данные

Приведение сырых данных к виду, пригодному для обучения: типы, форматы, дубликаты, согласованность единиц измерения.

Train / Validation / Test split85%

Разбиение выборки · Данные

Train учит, validation настраивает гиперпараметры, test даёт единственную честную оценку — и используется один раз.

Cross-validation85%

Кросс-валидация · Оценка моделей

Многократное разбиение выборки, дающее оценку качества вместе с её разбросом.

K-Fold85%

K-Fold · Оценка моделей

Данные делятся на K частей; каждая по очереди становится валидационной.

Stratified K-Fold85%

Стратифицированный K-Fold · Оценка моделей

K-Fold с сохранением пропорции классов в каждом фолде.

Leave-One-Out85%

Leave-One-Out · Оценка моделей

Предельный случай: валидация состоит ровно из одного объекта, и так N раз.

Bootstrap85%

Бутстрэп · Оценка моделей

Многократная выборка с возвращением: даёт распределение метрики и доверительные интервалы без предположений о нормальности.

Normalization & Standardization85%

Нормализация и стандартизация · Данные

Приведение признаков к сопоставимым масштабам, без которого расстояния, градиенты и регуляризация работают некорректно.

Model Privacy Attacks85%

Атаки на приватность модели · Безопасность ИИ

Модель — сжатая копия обучающих данных: по её ответам можно узнать, кто в них был, и восстановить сами данные.

Differential Privacy85%

Дифференциальная приватность · Безопасность ИИ

Математическая гарантия: по результату обучения нельзя определить, был ли в выборке конкретный человек.

Federated Learning85%

Федеративное обучение · Безопасность ИИ

Обучение на данных, которые нельзя собрать в одном месте: на сервер уезжают обновления весов, а не сами данные.

Privacy and Security85%

Приватность и безопасность · Системный дизайн ML-сервисов

Персональные данные, доступы и специфические для ML риски.

Synthetic Data85%

Синтетические данные · Данные

Генерация обучающих данных: аугментации, симуляторы и генеративные модели. Способ обойти дефицит разметки и ограничения приватности.

Проверить себя

Тема встречается в тестах по направлениям — ошибки приведут обратно на эту страницу.

Тема в работе целиком

Разбор архитектуры, где эта тема — один из кирпичей: требования, развилки, цифры и режимы отказа.

Следующий шагПроверить себя: Классический MLТема встречается в этом тесте 2 раза. Ошибка приведёт обратно на эту страницу — с объяснением, что именно не сошлось.Перейти →

Глава «Данные» последний раз правилась . Нашли ошибку — напишите.