Обнаружение аномалий

Алгоритм отлова выбросов с использованием распределения Гаусса

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

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

Давайте приступим к делу.

Что такое аномалия?

Формально аномалия (также называемая выбросом) определяется как:

что-то отличное, ненормальное, своеобразное или нелегко классифицируемое. Отклонение от общего правила [2]

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

Рассмотрим, например, следующий набор данных, описывающий рост и вес человека:

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

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

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

Аномалия против ошибочной точки данных

Важно, чтобы мы могли отличить ошибочную точку данных от аномальной.

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

Аномалии - это возможные необычные результаты, такие как высокий трафик в сети или высокий уровень использования ЦП.

Гауссово (нормальное) распределение

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

Рассмотрим таблицу ниже, в которой указан рост населения, состоящего из 10 человек. Вас просят изобразить эти высоты графически.

Это одномерный набор данных, поэтому все, что нам нужно, это одномерная декартова система координат, например:

Что мы замечаем из рисунка 4? Во-первых, большинство нашего населения имеет рост от 165 до 180 сантиметров. Во-вторых, мы замечаем, что некоторые из них либо ниже, либо выше, чем большинство.

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

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

На рисунке 5 по оси ординат представлены значения функции плотности вероятности (PDF) этой кривой, а по оси абсцисс - рост населения. Значение 0,5 по оси ординат было выбрано произвольно.

Мы прошли весь этот процесс, чтобы определить распределение наших данных. Мы дошли до графика, который описывает возможные значения некоторой переменной X и частоту их появления. Наша переменная может быть распределена по-разному. Представьте, что у нас было больше людей ростом от 140 до 150 сантиметров. В этом случае наш график будет более наклонен влево:

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

Прежде чем переходить к алгоритму, следует отметить несколько моментов:

  • Когда значение переменной X является непрерывным (может принимать бесконечное количество значений), тогда невозможно получить конкретную вероятность одного балла. Например, вас просят вычислить вероятность того, что рост составляет 165 сантиметров, то есть вычислить P(X = 165). Вероятность того, что человек будет ровно 165 сантиметров, невозможна. Это может быть 165,00001 сантиметр, 164,9999 сантиметра, но 165 - невозможно. Вместо этого мы ищем вероятность диапазона значений. Например P(164.9 <= X <= 165.1). Эта вероятность рассчитывается путем нахождения площади под кривой плотности между этими двумя точками.
  • Площадь всей кривой плотности всегда равна единице.

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

Алгоритм обнаружения аномалий

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

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

  1. Некоторые функции будут иметь более сильные аномальные тенденции, чем другие. Например, такая функция, как использование ЦП, может в какой-то момент дать необычные результаты, поэтому ее полезно включить в систему обнаружения внешних ошибок для компьютерных систем.
  2. Вычислите среднее значение и дисперсию всех ваших характеристик. Они будут использоваться для вычисления вероятностей через PDF распределения Гаусса.
  3. Учитывая новую точку данных x, определите, является ли эта точка данных аномальной, вычислив произведение вероятностей ее характеристик. Самый простой способ понять это - на примере. Допустим, нам дан рост и вес человека x=[x_1=165cm, x_2=140lb]. Чтобы рассчитать вероятность того, что человек будет ростом 165 сантиметров и весом 140 фунтов, мы должны вычислить p(x_1=165cm and x_2=140lb) = p(x_1=165cm)*p(x_2=140lb). Мы считаем эту точку данных аномальной, если она меньше некоторого заранее определенного порогового значения эпсилон.

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

Заключение

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

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

  • Как мы тестируем систему обнаружения аномалий?
  • Должны ли мы использовать распределение Гаусса? Можем ли мы использовать какой-либо другой вид распределения? Если да, каковы преимущества и недостатки использования одного над другим? Если нет, то почему?
  • Есть ли алгоритм выбора функций для нашей системы обнаружения аномалий, или мы всегда должны полагаться на нашу интуицию?

Прошлые статьи

  1. Часть первая: Предварительная обработка данных
  2. Часть вторая: Линейная регрессия с использованием градиентного спуска: интуиция и реализация
  3. Часть третья: Логистическая регрессия с использованием градиентного спуска: интуиция и реализация
  4. Часть четвертая - 1: Нейронные сети. Часть 1: Терминология, мотивация и интуиция
  5. Часть четвертая - 2: Нейронные сети. Часть 2: обратное распространение и проверка градиента
  6. Часть шестая: Оценка вашей гипотезы и понимание систематической ошибки в сравнении с дисперсией
  7. Часть седьмая: Опорные векторные машины и ядра
  8. Часть восьмая: Обучение без учителя и интуиция, лежащая в основе кластеризации K-средних
  9. Часть девятая: Снижение размерности и анализ главных компонентов

Бесстыдный штекер

использованная литература

  1. Курс Coursera по машинному обучению Эндрю Нг
  2. Аномалия | Определение аномалии по Merriam-Webster