Обнаружение редких событий - PullRequest
6 голосов
/ 10 июня 2010

Есть ли хорошие ссылки на алгоритмы, которые люди используют для обнаружения редких событий? Кроме того, как учитывается фактор времени? Если у меня есть случай, когда последовательные точки данных что-то говорят (от t_1 до t_n), как можно учесть это в обычном сценарии машинного обучения?

Любой указатель будет оценен.

1 Ответ

6 голосов
/ 11 июня 2010

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

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

Если у нас есть случайный процесс обхода, такой как цены на акции (открытая банка червей ... просто примите это для простоты),Направленное движение от t до t + 1 является случайным.Случайное событие может быть определенным количеством последовательных движений в одном направлении или большим движением в одном направлении за один временной шаг.См. Стохастическое исчисление для базовых понятий.

Если процесс на шаге t зависит только от шага t-1, то мы можем использовать Марковские цепи для моделирования процесса.

Это краткий список доступных вам математических методов.Теперь перейдем к машинному обучению.Почему вы хотите использовать машинное обучение?(Всегда полезно подумать, чтобы убедиться, что вы не слишком усложняете проблему). Предположим, что вы это делаете, и это правильное решение.Фактический алгоритм, который вы используете, не очень важен на данном этапе.Что вам нужно сделать, это определить, что такое редкое событие.И наоборот, вы можете определить, что является нормальным событием, и искать вещи, которые не являются нормальными.Обратите внимание, что это не одно и то же.Скажем, мы производим множество редких событий r1 ... rn.Каждое из этих редких событий будет иметь некоторые особенности, связанные с ним.Например, если компьютер вышел из строя, могут быть такие функции, как в последний раз, когда он был замечен в сети, состояние его порта коммутатора и т. Д. Это на самом деле самая важная часть машинного обучения, создания обучающего набора.Обычно это ручная маркировка набора примеров для обучения модели.Как только вы лучше разберетесь в пространстве функций, вы сможете подготовить другую модель для своей маркировки.Повторяйте этот процесс до тех пор, пока вы не будете удовлетворены.

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

...