Учебник по обнаружению аномалий: скрытая сторона машинного обучения

Сложная и обычно необучаемая задача

Аномалии постоянно попадают в данные, и их важно распознавать. Будь то попытка взлома или тролль, позволить аномалиям появляться и действовать незамеченными или игнорироваться было бы фатальным. Тем не менее, к сожалению, многие курсы по науке о данных не охватывают всесторонне применения алгоритмов для обнаружения аномалий. Эта сторона машинного обучения особенно неинтересна, потому что не существует окончательного метода контролируемого или неконтролируемого решения (см. Полу-контролируемое обучение); вместо этого существуют различные изобретательские приемы и методы, позволяющие подойти к проблеме с разных сторон.

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

  • Точечные аномалии. Если точка данных находится слишком далеко от остальных, это точечная аномалия. Рассмотрим, например, транзакцию на сумму 10 000 долларов с вашего банковского счета, когда вы обычно совершаете транзакции на сумму от 10 до 100 долларов. Это также может быть известно как дополнительный выброс.
  • Контекстные аномалии. Если событие необычно для определенного контекста, это контекстная аномалия. Например, продажи мороженого остаются неизменными в течение жарких и холодных месяцев.
  • Коллективные аномалии. Коллективная аномалия представляет собой набор аномалий в отношении набора данных, но не отдельных объектов. Рассмотрим, например, серию прерывистых ритмов на электрокардиограмме.
  • Временные аномалии. Временная аномалия - это когда количество пользователей приближается к нулю или очень мало в течение короткого периода времени. Это могло быть, например, результатом отказа сервера.

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

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

KNN для обнаружения аномалий - это переработка алгоритма K-ближайших соседей, который определяет класс соседа путем агрегирования классов K-ближайших соседей с точки зрения евклидова расстояния. Не ограничиваясь только прогнозированием групп или значений точек данных, алгоритм KNN может использоваться для обнаружения аномалий. Поскольку KNN пытается сделать незначительные обобщения в распознавании лежащих в основе отношений в данных (увеличивается по мере роста k), ошибки в прогнозах являются признаками того, что точки данных могут не соответствовать общим тенденциям. Используя этот подход, любой алгоритм, использующий прогнозную модель, может использоваться для обнаружения аномалий. Любая точка данных, которая является аномалией, теоретически снижает предсказательную силу модели. Используя эти метки, можно обучить другую модель KNN строго определять аномалии / не аномалии. Этот метод, который можно перепрофилировать с другими методами прогнозирования, в некотором смысле является частично контролируемым подходом.

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

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

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

Обнаружение аномалий временных рядов - это метод обнаружения аномалий во временных рядах или значений во времени. После обучения модели временных рядов - будь то ARIMA (авторегрессивная интегрированная скользящая средняя) или RNN (рекуррентная нейронная сеть) - она ​​сможет предсказывать невидимые данные. Точки, которые значительно отличаются от прогнозируемого значения (высокие остатки), могут быть отмечены как аномалии. При работе с этим методом важно соблюдать осторожность: прогнозы временных рядов печально известны тем, что не могут улавливать внешние сигналы, которые так часто определяют ценность временного ряда (например, никакая модель цен на акции не смогла бы предсказать коронавирус) могут постоянно давать то, что помечено как аномалии. Чтобы аномалия была честно отмечена как выпадающая, необходимо выполнить несколько условий:

  • Должно быть доказано, что временные ряды являются достаточно предсказательными, или постоянно обновляются новыми сигналами.
  • Не более 5-10% (в зависимости от контекста) точек могут быть отмечены как аномалии. В противном случае они не будут аномалиями как допустимые кластеры / сигналы, или шум может быть просто структурной частью данных.

К различным другим более специализированным методам обнаружения аномалий относятся:

  • Алгоритмы ближайшего соседа: фактор выброса на основе связности (COF), вероятность локального выброса (LoOP), влияющий выброс (INFLO), интеграл локальной корреляции (LOCI)
  • Алгоритмы на основе кластеризации: фактор локального выброса на основе кластера (CBLOF), фактор выброса на основе кластера локальной плотности (LDCOF)
  • Алгоритмы на основе классификации: нейронные сети, байесовские сети, дерево решений, на основе правил
  • Алгоритмы на основе статистики: параметрические методы, непараметрические методы

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

Если вам понравилось,

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