В рамках этой серии я поделюсь с вами результатами исследований и разработок, которые мы проводили с командами SOUTHWORKS в течение некоторых периодов времени в течение 2020–2021 годов.

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

Вы можете обратиться к этим двум предыдущим сообщениям, которые закладывают основу для концепций и методов, которые я собираюсь обсудить в этой статье:

За этот конкретный пост я хочу выразить особую благодарность людям, которые помогли мне завершить его: Пабло Костантини, Дереку Фернандесу и Игнасио Грайебу — спасибо вам, ребята!

Сначала.. Немного вводной теории!

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

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

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

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

Выбросы могут быть двух видов: одномерные и многомерные. Одномерные выбросы можно обнаружить при рассмотрении распределения значений в одном пространстве признаков. Многомерные выбросы можно найти в n-мерном пространстве (из n-признаков). Наблюдение за распределениями в n-мерных пространствах может быть очень сложным для человеческого мозга, поэтому нам нужно обучить модель делать это за нас.

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

Обнаружение аномалий основано на 3 принципах:

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

Случаи применения

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

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

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

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

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

Здравоохранение. Выявление мошеннических страховых случаев и выплат.

Техники

Изолированный лес

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

В общем, первый шаг — составить профиль того, что является «нормальным», а затем сообщить обо всем, что нельзя считать нормальным, как об аномальном. Однако алгоритм изолированного леса не работает по этому принципу; сначала он не определяет «нормальное» поведение и не вычисляет расстояния на основе точек.

Как и следовало ожидать из названия, Isolation Forest вместо этого изолирует аномалии явно изолирует аномальные точки в наборе данных.

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

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

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

Машина опорных векторов одного класса

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

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

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

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

Нейронные сети с автоэнкодерами LSTM

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

Сети с долговременной кратковременной памятью (LSTM) являются подтипом более общих рекуррентных нейронных сетей (RNN). Ключевым свойством рекуррентных нейронных сетей является их способность сохранять информацию или состояние ячейки для последующего использования. Это делает их особенно подходящими для анализа временных данных, которые изменяются с течением времени. Сети LSTM используются в таких задачах, как распознавание речи, перевод текста и здесь, в анализе последовательных потоков данных для обнаружения аномалий.

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

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

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

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

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

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

Необходимо учитывать два важных параметра:

  1. Количество соседей
  2. Загрязнение

LOF вычисляет расстояние {количество соседей}-й ближайшей точки (например, если число соседей равно трем, вычисляется расстояние между текущей точкой и третьей ближайшей точкой), а затем для каждой точки он вычисляет плотность точек внутри рассчитанного расстояния для этой точки.

Затем плотность каждой точки будет сравниваться с плотностью их k соседей. Учитывая точку данных a, LOF в основном представляет собой среднее отношение плотностей соседей a к плотности a. Если отношение больше 1, плотность точки a в среднем меньше плотности ее соседей и, таким образом, от точки a нам нужно преодолеть большее расстояние, чтобы добраться до следующей точки или группы точек, чем от соседей a до их следующих соседей. Имейте в виду, что соседи точки a могут не считать a соседом, поскольку в их пределах досягаемости есть точки, которые намного ближе.

Параметр загрязнения определяет долю наиболее изолированных точек (точек, которые имеют самые высокие оценки LOF), которые будут предсказаны как аномалии.

В библиотеке Python scikit-learn есть собственная реализация этого алгоритма, которая имеет два разных метода, определяемых параметром с именем новизна. Эти методы:

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

Гауссовская смесь

Смешанная модель Гаусса — вероятностная модель, которая предполагает, что распределения вероятностей для всех точек в наборе данных могут быть получены как взвешенная сумма гауссовских (или нормальных) распределений с неизвестными параметрами.

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

Существуют различные методы реализации смешанных моделей Гаусса, наиболее распространенным из которых является максимизация ожидания (EM). Мы сосредоточимся на этой технике.

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

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

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

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

Другие методы

  • Обнаружение аномалий на основе плотности с K-ближайшими соседями: предполагается, что нормальные точки данных возникают в плотном окружении, а аномалии находятся далеко. Ближайший набор точек данных оценивается с использованием оценки, которая может быть евклидовым расстоянием или аналогичной мерой в зависимости от типа данных (категориальных или числовых). K-ближайший сосед – это простой непараметрический метод ленивого обучения, используемый для классификации данных на основе сходства показателей расстояния, таких как евклидово, манхэттенское, расстояние Минковского или расстояние Хэмминга.
  • Обнаружение аномалий на основе кластеризации с K-средними. Предполагается, что сходные точки данных, как правило, принадлежат к схожим группам или кластерам, что определяется их расстоянием от локальных центроидов. K-means – это широко используемый алгоритм кластеризации. Он создает k похожих кластеров точек данных. Экземпляры данных, которые не входят в эти группы, потенциально могут быть помечены как аномалии.

Обнаружение мошенничества с кредитными картами — Практика

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

Для этого сценария были применены следующие четыре метода:

  • Изоляция Лес
  • Автоэнкодеры
  • Фактор локального выброса
  • Гауссовская смесь

Реализация на Python доступна в блокноте Jupyter в нашем репозитории GitHub.

Набор данных

Выбранный набор данных, доступный на Kaggle, содержит необработанные данные, соответствующие транзакциям по кредитным картам. Он имеет 3075 записей с 11 функциями и дополнительный столбец, который указывает, была ли каждая транзакция мошеннической или нет. Для подбора модели этот последний столбец был удален и использовался только для проверки результатов. Около 15% записей помечены как мошенничество.

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

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

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

Результаты

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

Как только вы сможете «довериться» точности алгоритма, цель будет состоять в том, чтобы выявлять все случаи мошенничества, проверяя как можно меньше транзакций. В этом наборе данных около 15% транзакций являются мошенническими, поэтому «идеальный алгоритм» пометит для дальнейшего анализа только то подмножество, которое будет составлять 100% мошенничества в наборе данных.

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

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

Изолированный лес и одноклассовый SVM — Практика

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

Описаны два разных метода вместе с их реализацией на Python:

  • Изоляция Лес
  • Одноклассовая машина опорных векторов

Спайк можно найти в нашем репозитории в блокноте Jupyter.

Набор данных

Это два небольших независимых набора данных, состоящих из 200 нормально распределенных точек данных, которые будут представлять нормальные значения, и 50 равномерно распределенных точек данных с более высокими значениями. максимумы и более низкие минимумы по сравнению с нормальными точками данных.

Точки данных распределяются следующим образом:

Базовые кластеры (нормально распределенные)

  • (x, y) / {x ∈ [1, 3], y ∈ [1, 3]}
  • (x, y) / {x ∈ [-3, -1], y ∈ [-3, -1]}

Выбросы (равномерно распределенные)

  • (x, y) / {x ∈ [-4, 4], y ∈ [-4, 4]}

Результаты

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

Изолированный лес

Метрики сообщают, что для всплеска этот алгоритм достиг:

  • Точность: 92% (обнаружено 46/50 аномалий)
  • Ложные обнаружения: 0% (всего 0)

Машина опорных векторов одного класса

Метрики сообщают, что для всплеска этот алгоритм достиг:

  • Точность: 78% (обнаружено 39/50 аномалий — 18 ложных срабатываний)
  • Ложные обнаружения: 31,5% (всего 18)

Подведение итогов

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

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

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