Обнаружение аномалий с фиктивными характеристиками (и другими дискретными / категориальными характеристиками)

18

ТЛ; др

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

вступление

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

Onwards.

Недавно я принимал участие в классе машинного обучения Эндрю Нг

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

метод

Выберите особенности / переменные, которые, по нашему мнению, объясняют рассматриваемое действие: { x 1 , x 2 , , x i }Икся

{Икс1,Икс2,...,Икся}

Подберите параметры гауссианы для каждой функции: σ2=1

μJзнак равно1мΣязнак равно1мИксJ(я)
σ2знак равно1мΣязнак равно1м(ИксJ(я)-μJ)2

Для каждого обучающего примера вычислите: p ( x ) = n j = 1 p ( x j ; μ j , σ 2 j )Икс

п(Икс)знак равноΠJзнак равно1N п(ИксJ;μJ,σJ2)

Затем мы помечаем как аномалию ( ), учитывая: y = { 1Yзнак равно1

Yзнак равно{1п(Икс)<ε0п(Икс)ε

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

Мои вопросы)

Это кажется нормальным для непрерывных переменных / функций, но дискретные данные не рассматриваются.

[IsMale]0,1п(Икс)

реd1,бLUе2реd1Lограмм()

Вопросы: (обновлено: 2015-11-24)

  • п(Икс)
  • п(Икс)
  • Есть ли другой метод, который учитывает то, о чем я здесь спрашиваю, чтобы я мог продолжить изучение / изучение?
  • Каков рекомендуемый способ обработки discreteданных при обнаружении аномалий?
  • Каков рекомендуемый способ обработки categoricalданных при обнаружении аномалий?

Изменить: 2017-05-03

  • Этот ответ предлагает использовать дискретные данные для фильтрации результатов.
  • Возможно, замените значение категории шансом наблюдения перктата?
Адриан Торри
источник
<Disclaimer> Я человек с достаточным опытом, чтобы быть опасным. </ disclaimer> Так что давайте будем опасны .... Моя интуиция согласна с вашей, что гауссовский способ не является обработкой не непрерывных данных. Для непрерывных данных одно значение в числовой строке имеет иной вид взаимосвязи со всеми другими значениями, чем число в целой строке или двоичная переменная. Биномиальные распределения описывают двоичные переменные. Полиномиальные распределения описывают полиномиальные переменные. Разве это не все экспоненциальные члены семьи?
EngrStudent - Восстановить Монику
Еще одно, что может добавить к любому обсуждению: Тема: категорические выбросы?
Адриан Торри
пп(Икс;μ,σ2)знак равно1σ2πе-(Икс-μ)22σ2
@uvts_cvs да, функция плотности вероятности гауссиана - это то, что используется.
Адриан Торри

Ответы:

4

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

  • Частота наблюдения категории в глобальных данных
  • Частота наблюдаемой категории в подпространствах данных

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

Вот некоторые методы для категориальных и смешанных атрибутных данных, основанные на анализе выбросов от Aggarwal:

  • SSзнак равноQКλК2QКTQКЕзнак равноQКλКЕ
  • Если у вас есть чисто категориальные особенности, подгоните смешанную модель к необработанным категориальным данным. Аномальные точки имеют наименьшую генеративную вероятность.
  • Используйте горячее кодирование для категориальных предикторов и, возможно, анализ скрытых переменных ** для порядковых переменных с неявными непрерывными отображениями
    • Стандартизируйте функции «не один» (функции «один» уже неявно стандартизированы) и выполните анализ основных компонентов . Выполните уменьшение размерности, используя верхние главные компоненты (или мягкий подход PCA, где собственные векторы взвешиваются по собственным значениям) и запустите типичный метод непрерывного анализа выбросов (например, модель смеси или ваш метод Гаусса)
    • Выполните анализ на основе угла. Для каждого наблюдения вычислите косинусные сходства между всеми парами точек. Наблюдения с наименьшей дисперсией этих сходств (известные как «коэффициент выброса на основе угла») являются наиболее вероятными выбросами. Может потребоваться окончательный анализ эмпирического распределения ABOF, чтобы определить, что является аномальным.
    • Если вы пометили выбросы: Установите прогностическую модель для инженерных данных (логистическая регрессия, SVM и т. Д.).

* Дискретные функции могут быть обработаны примерно в вашем методе Гаусса. При правильных условиях признак может быть хорошо аппроксимирован нормальным распределением (например, биноминальная случайная величина с npq> 3). Если нет, обрабатывайте их как порядковые номера, описанные выше.

** Это похоже на вашу идею «заменить значение категории процентным шансом наблюдения»

Холь
источник
Кзнак равно1
@Akababa Вы можете, например, вычислить MLE для полиномиальных параметров, используя алгоритм EM. Предполагая независимость многочленных RV, этот подход обобщает произвольные категориальные предикторы. Пример здесь
хол
0

Класс Andrew Ng обрабатывает «дискретные» данные так же, как он обрабатывает «недискретные» данные. Все, что нам нужно сделать, это эмпирически оценить параметры нормального распределения, и это может быть идеально сделано для дискретных данных.

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

Если дискретные точки данных можно сравнивать между собой, то нет принципиальных различий для методов машинного обучения, когда речь идет, скажем, о длине: 1,15 фута, 1,34 фута, 3,4 фута.

или сколько веток на дереве: 1 2 3 5

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

Теперь к категориальным данным. Категориальные данные не могут быть сравнены (автомобиль против мотоцикла против лодки). Как мы справимся с этим?

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

Если количество категорий (K) равно [3 .. inf], мы сопоставляем наш единственный признак с K двоичными взаимоисключающими признаками. Например, категория «мотоцикл» становится комбинацией двоичных функций {IsCar: 0, IsMotorcycle: 1, IsBoat: 0}, точка перехода становится {IsCar: 0, IsMotorcycle: 0, IsBoat: 1} и так далее.

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

Oscar92
источник
1
Это объясняет фиктивную кодировку, но это не ответ на вопрос
Pieter