← Назад к списку
ТехническаяData Science и MLMiddle

Что такое утечка данных (data leakage), какие виды бывают и как её предотвратить?

Короткий ответ

  • В обучение попадает информация, недоступная при прогнозе
  • Target leakage: признак содержит следы таргета
  • Train-test leakage: тест влияет на препроцессинг
  • Временная утечка: признаки из будущего относительно прогноза
  • Симптом: подозрительно высокое качество офлайн
  • Защита: Pipeline, разбиение по времени, аудит признаков
  • Проверка: как признак вычислялся бы в момент прогноза

Утечка — это попадание в обучение информации, которой не будет в момент прогноза; она даёт блестящие офлайн-метрики и провал в проде.

Как сказать вслух

пример ответа

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

Подробный ответ

Основной ответ

Утечка данных — попадание в обучающий процесс информации, недоступной в момент применения модели. Основные виды: target leakage — признак прямо или косвенно содержит таргет (например, «количество звонков коллекторов» в модели дефолта — звонки происходят после дефолта); train-test contamination — статистики препроцессинга (среднее для скейлера, target encoding) посчитаны по всей выборке включая тест; временная утечка — агрегаты посчитаны по окну, захватывающему будущее; дубликаты одного объекта в train и test. Главный симптом — неправдоподобно высокое качество. Защита: sklearn Pipeline, чтобы все fit-операции происходили только на train; валидация по времени; аудит топ-признаков по важности — слишком сильный признак почти всегда подозрителен; вопрос к каждому признаку «когда это значение становится известно».

Ключевые моменты

  • Target leakage. Признак — следствие таргета, а не его предиктор; выявляется аудитом смысла и момента появления признака.
  • Утечка через препроцессинг. Скейлинг, импутация, target encoding и отбор признаков фитятся только на train-части каждого фолда.
  • Временная дисциплина. Все агрегаты считаются по данным строго до момента прогноза (point-in-time correctness); это главная причина существования feature store.
  • Детектор — здравый смысл. AUC 0.99 на сложной бизнес-задаче — почти наверняка утечка, а не гениальная модель.

Практический контекст

Любимый вопрос на middle и senior, потому что утечки — самая дорогая ошибка в прикладном ML: модель проходит ревью, деплоится и тихо проваливается. Интервьюеры дают кейсы: «модель оттока с AUC 0.98 — ваши действия?» Ожидается план: проверить топ-признаки, их момент вычисления, разбиение, дубликаты. Упоминание point-in-time join и feature store — сильный плюс.

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

  • Сводят утечку только к «тест попал в train», забывая target leakage и временные утечки
  • Радуются аномально высокой метрике вместо того, чтобы её расследовать
  • Делают target encoding или отбор признаков по всей выборке до разбиения

ИП Кочкин Алексей Сергеевич · ИНН 390509026279 · ОГРНИП 325390000030973 · jiniys2005@yandex.ru