Цель этой статьи — показать, как утечка данных может стать настоящей занозой в машинном обучении.

Повышение производительности модели радует, но, как я выразился в другой статье, цель обобщения модели важнее, чем модель с точностью 99%.

Что такое утечка данных

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

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

Непреднамеренное введение прогностической информации о цели в процессе сбора, агрегирования и подготовки данных

(Rosset et al. — Медицинский анализ данных: уроки победы в двух конкурсах)

Утечки приводят к известной проблеме: переоснащению. Действительно, пока модель на обучении будет показывать хорошую производительность, она будет потеряна при запуске в производство, давайте поговорим о некоторых примерах…

Мы можем различать различные типы утечки данных:

  • Утечка внутри обучающих наблюдений: ситуация, когда предварительная обработка данных выполняется для всего набора данных перед любым разделением (или перед перекрестной проверкой (CV)). В качестве примера можно ввести отсутствующие значения в столбце из среднего значения остальной части столбца и выполнить перекрестную проверку. Оценка каждой модели, обученной в CV, была бы неправильной, потому что каждая из них будет обучаться с данными, преобразованными во всем наборе данных.
  • Утечка путем добавления новых функций: ситуация, когда одна или несколько функций, тесно связанных с целью, но доступных только после сбора данных, используются для обучения модели. Например, наличие столбца, указывающего количество осадков для прогноза дождливого дня. Эта колонка доступна только после окончания дня и не будет использоваться для новых прогнозов.

Хороший способ быть в курсе утечек — проверить, используются ли во время обучения следующие функции:

  • Не производится самой целью (в отличие от функции дождя раньше).
  • Не преобразовано на основе данных проверки.

Чтобы предотвратить этот тип утечки данных, следует исключить любую переменную, обновленную (или созданную) после достижения целевого значения.
(Утечка данных из Kaggle)

Теперь, когда вы понимаете, что такое утечка данных, я расскажу вам пример, с которым я столкнулся…

Пример утечки данных: серия табличных игровых площадок — январь 2022 г.

На Kaggle каждый месяц выпускается новое задание под названием Tabular Playground Series. Эти задачи похожи на соревнования, но для отработки навыков решения различных задач. Например, TPS за июнь 2022 года касается вменения данных и пропущенных значений.

В январе 2022 года я решил принять участие в ежемесячной серии Tabular Playground Series. Это касалось прогнозирования продаж 3 фиктивных товаров в 2 фиктивных магазинах, расположенных в 3 настоящих странах. . Идея заключалась в том, чтобы найти сезонные периоды, когда можно было бы выявить пики продаж.

Например: конец года, Пасха, праздники были периодами с большим количеством продаж. Некоторым великим Kagglers удалось контролировать этот шум в данных и позволить модели учиться, зная, что эти периоды были разными (с точки зрения продаж).

Но… Где утечка?

Одной из главных особенностей конкурса была страна, в которой осуществлялись продажи: Швеция, Норвегия или Финляндия.

С помощью некоторых инженерных разработок и исследований претенденты обнаружили, что валовой внутренний продукт (ВВП) может быть связан с количеством осуществленных продаж. Если задуматься об этом соотношении, то становится вполне логичным, что если страна видит, что ее глобальный доход увеличивается, то население страны также видит, как растет их доход (путем упрощения и игнорирования дохода на душу населения).
Окончательное значение пропорции, которое Кагглер Гроссмейстер Амброзм нашел в своей работе: 1.212. Это означает, что количество продаж будет варьироваться каждый год в соответствии с 1,212 ** ВВП (год). Если ВВП уменьшится, объем продаж уменьшится пропорционально по сравнению с предыдущим годом.

Вы видите, где происходит утечка данных?

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

Давайте представим, что вы хотите использовать модель в феврале 2022 года (согласно тому, что мы находимся в 2022 году, а год еще не закончился). Не было бы никаких реальных данных, которые можно было бы заменить ВВП за год, и ваша функция стала бы бесполезной. Однако модель нуждается в этом и будет не так точна, как при обучении, даже хуже, будет оценивать продажи ерунды.

Очевидно, что этот пример взят из Kaggle Competition с вымышленными данными и сделан для практики. Однако такие ошибки могут возникать при решении реальных задач.

Заключение

Утечка данных — это ситуация, когда обучение модели повреждено либо из-за новой функции, либо из-за преобразования существующих функций без разделения данных. Это может просто сделать модель непригодной для новых данных из-за переоснащения.
Чтобы справиться с утечкой, вы должны знать данные в своей модели и те, которые используются для обучения модели!

Спасибо за прочтение статей, надеюсь, вам понравилось и вы узнали, что такое утечка данных!

Ресурсы :