Сравнение алгоритмов обнаружения аномалий для обнаружения выбросов

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

В этой статье мы обсудим 5 таких методов обнаружения аномалий и сравним их эффективность для случайной выборки данных.

Что такое аномалии?

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

Обнаружение аномалий — это метод неконтролируемой обработки данных для обнаружения аномалий в наборе данных. Аномалии можно разделить на несколько категорий:

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

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

Как обнаружить аномалии?

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

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

Checklist:
1. Isolation Forest
2. Local Outlier Factor
3. Robust Covariance
4. One-Class SVM
5. One-Class SVM (SGD)

Изолирующий лес:

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

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

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

Оценка аномалии вычисляется для всех точек данных, и пороговое значение оценки аномалии точек может рассматриваться как аномалии.

Scikit-learn реализация Алгоритма Isolation Forest

Фактор локального выброса:

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

Scikit-learn реализация Фактора локальных выбросов

Надежная ковариация:

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

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

Scikit-learn реализация Надежной ковариации с использованием эллиптической оболочки

SVM одного класса:

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

Scikit-learn реализация One-Class SVM

SVM одного класса (SGD):

Одноклассовая SVM с SGD решает линейную одноклассовую SVM с использованием стохастического градиентного спуска. Реализация предназначена для использования с методом аппроксимации ядра для получения результатов, аналогичных sklearn.svm.OneClassSVM, в котором по умолчанию используется ядро ​​Гаусса.

Scikit-learn реализация Одного класса SVM с SGD

Сравнительный анализ:

Обнаружение 5 аномалий обучается на двух наборах выборочных наборов данных (строка 1 и строка 2).

SVM одного класса имеет тенденцию немного переобучать, тогда как другие алгоритмы хорошо работают с образцом набора данных.

Заключение:

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

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

Использованная литература:

[1] Документация Scikit-learn: https://scikit-learn.org/stable/auto_examples/miscellaneous/plot_anomaly_comparison.html

Понравилась статья? Станьте участником Medium, чтобы продолжать обучение без ограничений. Я получу небольшую часть вашего членского взноса, если вы перейдете по следующей ссылке, без каких-либо дополнительных затрат с вашей стороны.



Спасибо за чтение