Утечка данных в машинном обучении
Материал из MachineLearning.
| Строка 1: | Строка 1: | ||
| - | + | {{well|Статья написана с использованием LLM '''GPT-5.6 Sol Hight''' и проверена участником [[Участник:Aleksandra Ivanova]] 9:52, 13 июля 2026 (MSD)}} | |
'''Утечка данных в машинном обучении''' — использование при обучении, настройке или оценке модели информации, которая недоступна в момент реального предсказания либо должна оставаться независимой от процесса разработки. Такая ошибка делает проверочную выборку частью обучающего процесса или передаёт модели сведения о ещё неизвестной [[Целевая переменная|целевой переменной]]. Полученная оценка качества перестаёт характеризовать способность модели работать на новых данных.<ref>Kaufman S., Rosset S., Perlich C., Stitelman O. Leakage in Data Mining: Formulation, Detection, and Avoidance // ACM Transactions on Knowledge Discovery from Data. 2012. Vol. 6, No. 4. Article 15. P. 1–21.</ref> | '''Утечка данных в машинном обучении''' — использование при обучении, настройке или оценке модели информации, которая недоступна в момент реального предсказания либо должна оставаться независимой от процесса разработки. Такая ошибка делает проверочную выборку частью обучающего процесса или передаёт модели сведения о ещё неизвестной [[Целевая переменная|целевой переменной]]. Полученная оценка качества перестаёт характеризовать способность модели работать на новых данных.<ref>Kaufman S., Rosset S., Perlich C., Stitelman O. Leakage in Data Mining: Formulation, Detection, and Avoidance // ACM Transactions on Knowledge Discovery from Data. 2012. Vol. 6, No. 4. Article 15. P. 1–21.</ref> | ||
Текущая версия
| | Статья написана с использованием LLM GPT-5.6 Sol Hight и проверена участником Участник:Aleksandra Ivanova 9:52, 13 июля 2026 (MSD) |
Утечка данных в машинном обучении — использование при обучении, настройке или оценке модели информации, которая недоступна в момент реального предсказания либо должна оставаться независимой от процесса разработки. Такая ошибка делает проверочную выборку частью обучающего процесса или передаёт модели сведения о ещё неизвестной целевой переменной. Полученная оценка качества перестаёт характеризовать способность модели работать на новых данных.[1]
Утечку часто смешивают с переобучением, хотя причины этих ошибок различны. При переобучении модель слишком точно приспосабливается к случайным особенностям корректно сформированной обучающей выборки. При утечке неверно устроен сам эксперимент: алгоритм получает информацию, которая не должна участвовать в прогнозе или оценке. Регуляризация способна ограничить сложность модели, но не исправляет признак, содержащий последствия целевого события. Увеличение выборки также не устраняет ошибку, если тестовые объекты продолжают влиять на обучение.
Определение утечки
Пусть в момент требуется по набору признаков
предсказать значение
, которое станет известно позднее. Допустимый признак должен вычисляться только по информации, существующей к моменту
. Если некоторый признак
зависит от будущих событий, от значения
или от объектов проверочной выборки, он нарушает условия задачи.
Решающее значение имеет не название столбца и не его положение в базе данных, а время возникновения содержащейся в нём информации. Итоговый диагноз допустим при анализе завершённых медицинских случаев, но недопустим при построении модели ранней диагностики. Статус возврата товара подходит для описания уже выполненных заказов, но не для прогноза возврата в момент покупки. Признак может быть статистически тесно связан с целью и одновременно не иметь никакой прогностической ценности.
Граница между доступной и недоступной информацией определяется постановкой задачи. Для неё должны быть заданы момент формирования прогноза, горизонт предсказания, источник каждого признака и задержка его обновления. Без этого формально правильный набор данных может оказаться непригодным для обучения.
Утечка целевой переменной
Утечка целевой переменной возникает, когда один или несколько признаков содержат прямую либо косвенную информацию о предсказываемом результате.
Наиболее очевидный случай — присутствие самой метки среди признаков. На практике чаще встречаются её замаскированные копии: служебный код, присвоенный после наступления события, дата закрытия обращения, сумма фактического убытка, назначенное лечение, результат ручной проверки. Название такого поля может не указывать на связь с целью, однако его значение появляется только после того, как исход уже известен.
При прогнозировании дефолта нельзя использовать сведения о передаче задолженности коллекторам. При раннем обнаружении заболевания нельзя включать процедуру, назначенную после подтверждения диагноза. При оценке вероятности отмены заказа недопустима итоговая сумма возврата. Во всех этих случаях модель не предсказывает событие, а распознаёт его последствия.
Особенно опасны агрегированные признаки. Например, среднее число просрочек клиента, вычисленное по всей истории, может включать периоды после рассматриваемой заявки. Сам столбец выглядит как обычная характеристика клиента, однако часть его значения относится к будущему.
Загрязнение выборок
Загрязнение обучающей и проверочной выборок означает, что сведения о проверочных объектах влияют на обучение модели. Для этого необязательно передавать модели их метки. Достаточно вычислить по всему набору параметры предварительной обработки.
При стандартизации признак преобразуется по формуле . Если среднее
и стандартное отклонение
рассчитаны до разделения данных, распределение проверочной выборки уже учтено при подготовке обучающих объектов. Обычно такое загрязнение даёт небольшое смещение, но методологически оценка перестаёт быть независимой.
Гораздо сильнее результат искажается при отборе признаков по всему набору. Если тысячи переменных сначала сравниваются с целевой переменной, а затем лучшие из них проверяются с помощью кросс-валидации, каждая проверочная часть уже участвовала в выборе признаков. Высокая точность может отражать случайные корреляции, обнаруженные с использованием всей выборки.[1]
Та же ошибка возникает при заполнении пропусков, удалении выбросов, понижении размерности, целевом кодировании категорий и балансировке классов до разбиения. Любое преобразование, параметры которого оцениваются по данным, является частью обучения. В кросс-валидации оно должно заново настраиваться внутри каждой обучающей части.
Временная утечка
Временная утечка возникает, когда модель использует сведения, появившиеся позже момента прогноза. Она характерна не только для временных рядов. Любая задача, в которой записи имеют естественный порядок событий, требует учёта времени.
Случайное разделение данных часто переносит будущие наблюдения в обучающую выборку, а прошлые — в проверочную. В результате модель оценивается в более лёгких условиях, чем те, в которых будет работать. При прогнозе спроса на январь нельзя обучаться на данных февраля того же года. При оценке кредитного риска новой заявки нельзя использовать профиль клиента, пересчитанный после завершения кредита.
Утечка появляется и внутри признаков. Скользящее среднее, вычисленное симметричным окном, включает будущие значения. Средний объём продаж за текущую неделю неизвестен в её начале. Агрегат по последним тридцати дням допустим только в том случае, если все эти дни предшествуют моменту прогноза.
Корректное временное разбиение сохраняет причинный порядок: модель обучается на прошлом и проверяется на более позднем периоде. Временные признаки рассчитываются отдельно для каждого среза данных.
Утечка между связанными объектами
Стандартное случайное разбиение предполагает независимость наблюдений. Во многих наборах это предположение неверно.
Один пациент может быть представлен несколькими обследованиями, пользователь — несколькими действиями, документ — несколькими фрагментами, устройство — серией измерений. Если записи одной сущности попадают и в обучение, и в проверку, модель способна запомнить её устойчивые особенности. Оценка тогда показывает качество распознавания уже встречавшихся объектов, а не перенос на новые.
Такая же проблема возникает с дубликатами и производными объектами. Два кадра одного видеоролика могут почти не отличаться. Фрагменты одного сигнала сохраняют общий фон. После аугментации исходное изображение и его изменённая копия не должны попадать в разные выборки.
Разделение в таких задачах выполняется по группам: пациентам, пользователям, документам, временным сессиям или исходным файлам. Единицей разделения служит независимая сущность, а не строка таблицы.
Утечка при выборе модели
Валидационная выборка используется для выбора признаков, алгоритма, гиперпараметров и порога решения. После такого выбора она уже не является независимой: информация о её результатах повлияла на итоговую модель.
Это не ошибка, пока окончательное качество измеряется на отдельной тестовой выборке. Ошибка возникает, когда тестовые результаты начинают использоваться для разработки. Повторный подбор параметров после просмотра тестовой метрики постепенно превращает тестовую выборку в валидационную, даже если её объекты формально не добавляются в обучение.
Каждый просмотр результата передаёт информацию о тестовых данных. После десятков экспериментов выбирается конфигурация, которая лучше других совпала не только с общей закономерностью, но и со случайными особенностями конкретного теста. Итоговая оценка оказывается смещённой вверх.[1]
При интенсивном подборе гиперпараметров применяется вложенная кросс-валидация. Во внутреннем цикле выбирается конфигурация модели. Во внешнем цикле оценивается весь процесс выбора, а не отдельная заранее настроенная модель.[1]
Числовой пример
Модель должна в момент выдачи кредита предсказывать дефолт в течение следующих девяноста дней. В проверочной выборке находятся 200 кредитов: 40 закончились дефолтом, 160 были погашены.
Среди признаков по ошибке оставлено поле «передан ли клиент в службу взыскания в течение девяноста дней после выдачи кредита». Для 38 из 40 дефолтных кредитов оно равно единице. Среди остальных кредитов единица встречается четыре раза.
Простое правило относит кредит к дефолтным, если поле равно единице. Оно даёт 38 истинно положительных, 4 ложноположительных, 156 истинно отрицательных и 2 ложноотрицательных ответа.
Доля правильных классификаций равна . Полнота дефолтного класса составляет
. Точность положительного прогноза равна
.
Эти показатели не характеризуют прогнозирование. В момент выдачи кредита поле ещё не существует, поскольку решение о взыскании принимается позднее. При реальном использовании его значение будет неизвестно. Если заменить неизвестные значения нулями, модель отнесёт все заявки к недефолтному классу. Доля правильных ответов составит , а полнота дефолтного класса упадёт до
.
Разница между 0,97 и 0,80 возникла не из-за изменения распределения данных. Первая оценка измеряла способность обнаруживать уже наступивший дефолт по его последствиям.
Последствия утечки
Утечка систематически занижает оценку ошибки на новых данных. Чем сильнее недопустимый признак связан с целью, тем убедительнее выглядит ошибочный результат.
Искажается не только метрика, но и интерпретация модели. Признак, содержащий сведения о результате, получает высокую важность и вытесняет слабые, но действительно доступные предикторы. Вывод о причинах события подменяется анализом его последствий.
После внедрения качество резко падает. Некоторые признаки невозможно вычислить в режиме реального времени, другие получают иные значения, третьи появляются с задержкой. Ошибка долго остаётся незаметной, поскольку обучение и внутренняя проверка повторяют один и тот же неверный процесс.
Сравнение алгоритмов также теряет смысл. Модель, лучше использующая утечку, может победить более устойчивый метод. Выбор архитектуры, признаков и порога тогда основан на эксперименте, который не соответствует реальной задаче.
Обнаружение утечки
Проверка начинается с происхождения каждого признака. Должно быть известно, из какой системы он поступает, когда формируется, как часто обновляется и существовал ли он в момент прогноза. Название столбца для такой проверки недостаточно.
Особого внимания требуют служебные статусы, даты завершения процессов, идентификаторы, результаты ручной проверки и агрегаты без явно заданной временной границы. Признак «число операций клиента» неполон без уточнения, какие операции и на какую дату вошли в расчёт.
Необычно высокая метрика служит поводом для проверки, но сама по себе ничего не доказывает. Более содержательные признаки утечки — резкое падение качества после удаления одного столбца, большой разрыв между случайным и временным разбиением, сильное ухудшение на новых группах объектов или невозможность воспроизвести признаки в рабочей системе.
Пересечения между выборками проверяются явно. Для табличных данных ищутся повторяющиеся идентификаторы и дубликаты строк. Для изображений, текстов и сигналов точного совпадения недостаточно: необходимо учитывать близкие копии, фрагменты одного источника и результаты аугментации.
Предварительная обработка проверяется как часть модели. У каждого преобразования должна быть собственная обучающая область. Если параметры масштабирования, отбора признаков или кодирования категорий вычислены до разбиения, оценка загрязнена.
Предотвращение утечки
Сначала определяется момент прогноза. После него отсекается любая информация, появившаяся позднее. Такой подход надёжнее попыток распознавать утечку по названиям признаков.
Данные разделяются до выполнения обучаемых преобразований. Заполнение пропусков, масштабирование, отбор признаков, понижение размерности и балансировка классов настраиваются только на обучающей части. В программной реализации эти операции объединяются с моделью в единый конвейер.
При кросс-валидации преобразования повторяются внутри каждого разбиения. Нельзя один раз выбрать признаки или построить компоненты по всей выборке, а затем оценивать уже подготовленные данные.
Временные задачи требуют последовательного разбиения. Данные будущего не участвуют ни в обучении, ни в построении признаков прошлого. Для каждого объекта агрегаты вычисляются по состоянию базы на соответствующий момент.
Связанные наблюдения распределяются по группам. Все записи одного пациента, пользователя, документа или исходного файла должны находиться в одной части выборки. Аугментация и передискретизация выполняются после разбиения.
Тестовая выборка сохраняется до завершения разработки. По ней не выбираются гиперпараметры, признаки, порог или лучший запуск. Если результаты теста уже повлияли на решения, требуется новый независимый набор данных.
Типичные ошибки
К утечке приводят следующие действия:
- стандартизация и заполнение пропусков до разбиения данных;
- отбор признаков по всему набору;
- целевое кодирование категорий без исключения проверочных меток;
- балансировка классов до формирования выборок;
- случайное разбиение временных наблюдений;
- распределение записей одной сущности между обучением и проверкой;
- использование признаков, рассчитанных после целевого события;
- многократная настройка модели по тестовой метрике;
- выбор лучшего запуска по результату на тестовой выборке;
- публикация максимальной метрики из большого числа экспериментов без независимой оценки.
Наличие столбца в исходной базе не подтверждает его допустимость. База хранит сведения о завершённом процессе, тогда как модель часто должна работать в его начале. Между этими моментами доступный набор информации различается.
Независимая оценка модели
Оценка модели должна приближать её ожидаемый риск на новых данных: , где
обозначает функцию потерь. Тестовая ошибка может оценивать этот риск только тогда, когда тестовые данные не участвовали ни в обучении, ни в выборе модели.
Независимость относится ко всей процедуре разработки. Недостаточно обучить параметры без тестовых объектов, если тестовая метрика использовалась для выбора признаков, архитектуры или числа итераций. В этом случае оценивается конфигурация, уже приспособленная к конкретному тесту.
Корректная тестовая выборка имитирует данные, которые поступят после завершения разработки. Для временной задачи это более поздний период. Для модели, предназначенной для новых пользователей, тест должен содержать пользователей, отсутствующих в обучении. Для применения в другом учреждении наиболее строгой проверкой становится внешняя выборка из этого учреждения.
Внешняя проверка не исправляет ошибочный обучающий процесс, но обнаруживает зависимости, связанные с конкретным источником или способом сбора данных. Независимая оценка отделяет информацию, использованную для построения модели, от информации, предназначенной для проверки её обобщающей способности.[1]
Примечания
Литература
- Hastie T., Tibshirani R., Friedman J. The Elements of Statistical Learning: Data Mining, Inference, and Prediction. 2nd ed. New York: Springer, 2009.
- Kuhn M., Johnson K. Applied Predictive Modeling. New York: Springer, 2013.
- Kaufman S., Rosset S., Perlich C., Stitelman O. Leakage in Data Mining: Formulation, Detection, and Avoidance // ACM Transactions on Knowledge Discovery from Data. 2012. Vol. 6, No. 4. Article 15. P. 1–21.
- Ambroise C., McLachlan G. J. Selection Bias in Gene Extraction on the Basis of Microarray Gene-Expression Data // Proceedings of the National Academy of Sciences. 2002. Vol. 99, No. 10. P. 6562–6566.
- Varma S., Simon R. Bias in Error Estimation When Using Cross-Validation for Model Selection // BMC Bioinformatics. 2006. Vol. 7. Article 91.
- Cawley G. C., Talbot N. L. C. On Over-fitting in Model Selection and Subsequent Selection Bias in Performance Evaluation // Journal of Machine Learning Research. 2010. Vol. 11. P. 2079–2107.
- Vabalas A., Gowen E., Poliakoff E., Casson A. J. Machine Learning Algorithm Validation with a Limited Sample Size // PLoS ONE. 2019. Vol. 14, No. 11. e0224365.

