Автоматический выбор функции для обнаружения аномалий

11

Каков наилучший способ автоматического выбора функций для обнаружения аномалий?

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

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

  • «Автоматический выбор характеристик для обнаружения аномалий» ( pdf ), который обобщает описание данных опорных векторов
  • «Быстрая основанная на хосте система обнаружения вторжений, использующая грубую теорию множеств» (pdf недоступен?), Которая, как мне кажется, использует грубую теорию множеств
  • «Правила обучения для обнаружения аномалий враждебного сетевого трафика» ( pdf , видео ), в которых используется статистический подход

Итак, теперь я задаюсь вопросом, может ли кто-нибудь сказать - при условии обнаружения аномалий и действительно большого (сотни?) Набора функций:

  1. Эти огромные наборы функций имеют смысл вообще? Разве мы не должны просто сократить набор функций, скажем, до нескольких десятков, и все?
  2. Если огромные наборы функций действительно имеют смысл, какой из приведенных выше подходов даст лучшие прогнозы и почему? Есть ли что-нибудь не перечисленное, что намного лучше?
  3. Почему они должны давать лучшие результаты по сравнению, скажем, с уменьшением размерности или построением объектов посредством кластеризации / ранжирования / и т. Д.?
andreister
источник
Ваша ссылка не подняла для меня никакого конкретного вопроса. Можете ли вы дать краткое описание проблемы? Какова цель? Это контролируемая или неконтролируемая проблема обучения?
AdamO
Вопрос был от ML.SE, который сейчас закрыт - очевидно, администраторы не слились во всех вопросах. Я отредактировал текст сейчас, чтобы явно заявить о проблеме!
andreister

Ответы:

1

Один из практических подходов (по крайней мере, в случае контролируемого обучения) состоит в том, чтобы включить все, возможно, соответствующие функции и использовать (обобщенную) линейную модель (логистическая регрессия, линейная SVM и т. Д.) С регуляризацией (L1 и / или L2). Существуют инструменты с открытым исходным кодом (например, Vowpal Wabbit), которые могут иметь дело с триллионами комбинаций примеров / функций для этих типов моделей, поэтому масштабируемость не является проблемой (кроме того, всегда можно использовать подвыборку). Регуляризация помогает справиться с выбором функций.

Евгений
источник
Но как выбрать функции в неконтролируемых настройках (без необходимости использовать линейные модели и т. Д., Чтобы придумать важные функции)? Одним из способов, который я могу придумать, является использование PCA для сохранения некоторой дисперсии и уменьшения размера данных. Но опять же, сокращение данных в проблеме обнаружения аномалий кажется опасным, так как вы можете пропустить фактические выбросы, которые вы хотели предсказать. Отсюда и путаница.
ExAres