Алгоритмы обнаружения аномалий - PullRequest
2 голосов
/ 02 декабря 2010

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

Каковы их ограничения и недостатки?

Как бы вы порекомендовали устранить эти ограничения?

Все предложения очень ценятся.

Ответы [ 2 ]

4 голосов
/ 02 декабря 2010

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

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

3 голосов
/ 08 января 2016

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

  1. Аномалии в сигналах временных рядов: сигналы временных рядов - это что угодноВы можете рисовать в виде линейного графика с течением времени (например, загрузка ЦП, температура, количество сообщений в минуту, количество посетителей на веб-странице и т. д.).Примерами алгоритмов являются Holt-Winters, модели ARIMA, модели Маркова и другие.Я выступил с докладом на эту тему несколько месяцев назад - он может дать вам больше идей об алгоритмах и их ограничениях.Видео находится по адресу: https://www.youtube.com/watch?v=SrOM2z6h_RQ

  2. Аномалии в табличных данных: это случаи, когда у вас есть вектор объектов, который что-то описывает (например, преобразование электронной почты в вектор объектов, которыйописывает его: количество получателей, количество слов, количество заглавных букв, количество ключевых слов и т. д.).Учитывая большой набор таких векторов признаков, вы хотите обнаружить некоторые аномалии по сравнению с остальными (иногда называемые «обнаружением выбросов»).Практически любой алгоритм кластеризации подходит в этих случаях, но какой из них будет наиболее подходящим, зависит от типа признаков и их поведения - вещественных функций, порядковых, номинальных или любых других.Тип функций определяет, подходят ли определенные функции расстояния (основное требование для большинства алгоритмов кластеризации), и некоторые алгоритмы лучше с определенными типами функций, чем другие.Самым простым алгоритмом, который можно попробовать, является кластеризация k-средних, где выборкой аномалий могут быть либо очень маленькие кластеры, либо векторы, которые находятся далеко от всех центров кластеров.Односторонний SVM также может обнаруживать выбросы и обладает гибкостью выбора различных ядер (и эффективно различных функций расстояния).Другой популярный алгоритм - DBSCAN.

  3. Когда аномалии известны, проблема становится контролируемой проблемой обучения, поэтому вы можете использовать алгоритмы классификации и обучать их на примерах известных аномалий.Однако, как уже упоминалось, он будет обнаруживать только те известные аномалии, и если количество обучающих выборок для аномалий очень мало, обученные классификаторы могут быть неточными.Кроме того, поскольку количество аномалий, как правило, очень мало по сравнению с «безаномалиями», при обучении классификаторов вы можете использовать такие методы, как повышение / суммирование, с избыточной выборкой из класса (ов) аномалий, но оптимизация при очень малыхЛожноположительный показатель.В литературе для этого есть различные методы - одна идея, которая, как мне показалось, много раз очень хорошо работает, - это то, что Виола-Джонс использовал для обнаружения лиц - каскад классификаторов.см .: http://www.vision.caltech.edu/html-files/EE148-2005-Spring/pprs/viola04ijcv.pdf

(ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я главный специалист по данным в Anodot, коммерческой компании, занимающейся обнаружением аномалий в реальном времени для данных временных рядов).

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