В этом году произошло несколько важных научных достижений, ставших возможными благодаря исследованиям, основанным на машинном обучении. Наряду с энтузиазмом пришло и некоторое беспокойство, связанное с проблемами воспроизводимости, возникающими в науке, основанной на машинном обучении. Было выявлено несколько методологических проблем, наиболее распространенной из которых является утечка данных. Как правило, утечка данных может исказить результаты и привести к чрезмерно оптимистичным выводам.

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

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

Основные источники утечки данных, которые я попытаюсь привести на примере:

  1. Неправильное разделение между обучающими и тестовыми наборами данных
  2. Использование незаконных функций (прокси-переменные)
  3. Тестовый набор не взят из распределения интересов

1. Неправильное разделение обучающих и тестовых наборов данных.

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

Этапы предварительной обработки, которые могут привести к утечке данных:

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

2. Использование незаконных функций

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

Набор данных Энергетический бенчмаркинг в Сиэтле содержит пример такой переменной. Цель Сиэтла состояла в том, чтобы спрогнозировать энергетические характеристики здания на основе характеристик, которые уже общедоступны, таких как площадь здания, тип здания, использование собственности, дата, когда оно было построено, и т. д. Их набор данных также содержит значения потребления электроэнергии и природного газа, а также с целевыми переменными Использование энергии на объекте и Выбросы парниковых газов. Значения потребления электроэнергии и природного газа сильно коррелируют с целевой переменной, поэтому включение их в функции при построении прогнозной модели даст очень точные результаты.

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

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

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

3. Тестовый набор не взят из распределения интересов

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

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

Заключение

Утечка данных может происходить на различных этапах конвейера моделирования, и ее обнаружение может быть неочевидным. Этапы предварительной обработки и метод разделения тестирования/обучения будут зависеть от характеристик набора данных и могут потребовать специальных знаний в предметной области. Как правило, если полученные результаты слишком хороши, чтобы быть правдой, высока вероятность утечки данных.