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

Введение

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

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

  1. Дрейф концепции представляет сдвиг/изменение отношений между независимой и целевой переменными.
  2. Дрейф прогноза представляет сдвиг в отношениях между входными данными модели и прогнозом модели.
  3. Дрейф метки отражает изменение целевой переменной.
  4. Дрейф признаков отражает изменение независимых переменных.

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

a) Статистические методы, такие как дивергенция Кульбака-Лейблера (KL), дивергенция Дженсена-Шеннона (JS), критерий Колмогорова-Смирнова (KS), индекс стабильности населения (PSI) и т. д. b) Статистический контроль процесса, такой как метод обнаружения дрейфа/метод раннего обнаружения дрейфа , CUMSUM и Page-Hinckley (PH) c) Распределение методов временного окна, таких как Adaptive Windowing (ADWIN) и т. д.

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

Концепция

Прежде всего, давайте кратко разберемся, что такое состязательная проверка. Это метод решения проблемы дрейфа данных и, таким образом, решения проблемы переобучения. Стоит отметить, что упомянутая здесь состязательная проверка отличается от состязательного обучения, представленного в генеративно-состязательных сетях (GAN). Термин «состязательная проверка» был вдохновлен fastml, и основная идея состоит в том, чтобы проанализировать сходство распределения между данными обучения и тестирования. Но как это сделать? Что ж, с помощью простой концепции классификации этого можно добиться. После того, как данные собраны для обучающего и тестового набора, 0 присваивается обучающему набору, а 1 присваивается тестовому набору (можно сделать и обратное). Данные объединяются, и запускается модель бинарной классификации (например, XGBoost). Теперь, если результаты довольно хорошие с точки зрения AUC (например, 0,9 или около того), то у нас проблемы. Почему? Поскольку это означает, что модель хорошо различает выборки между поездом и тестом, распределение между двумя наборами различно, что нежелательно. Если AUC близок к 0,5, что означает почти случайный выбор, то все в порядке, и это ожидаемо.

Решение

Что может быть сделано? Как мы можем уменьшить переоснащение, чтобы на тестовых данных модель также работала хорошо?

  1. Как только модель подходит и мы получаем более высокий AUC, как описано выше, получаем важность функции и видим основные функции, вносящие вклад в модель. Основные функции, которые здесь участвуют, на самом деле являются виновниками, и их можно удалить. Этот процесс можно запускать итеративно, чтобы удалить некоторые из основных функций на каждой итерации, пока мы не достигнем умеренного AUC, где модель может более или менее обобщать свое обучение и на тестовых данных.
  2. Чтобы подтвердить вышеизложенное, в качестве альтернативы можно также провести тест согласия KS (для категориальных признаков можно использовать критерий хи-квадрат Пирсона). Как только мы получим p-значения всех отдельных признаков, мы можем заметить низкие p-значения для признаков, ответственных за дрейф. Таким образом, мы можем быть вдвойне уверены в функциях, ведущих к этой проблеме, и, таким образом, избавиться от них.

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

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

б) В недавней публикации ученые из Бейханского университета, КНР, продемонстрировали использование дерева принятия решений с повышением градиента (GBDT) для решения проблемы.

Давайте также посмотрим на некоторые решения Kaggle, предлагаемые для решения этой проблемы.

а) Крис Деотт предоставил отличное решение для решения Обнаружение мошенничества IEEE-CIS, где мощность LightGBM вместе с состязательной проверкой используется для поиска решения, которое заняло 1-е место. решение.

б) Карл Макбрайд Эллис показал несколько практических примеров

в) Божан Тунгуз тоже привел пример

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