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

Я работал над проблемой, когда мне приходилось иметь дело с точками данных, которые не были шумом, но отличались от обычных. Я пробовал несколько подходов, таких как (LOF) Local Outlier Factor, о котором я расскажу в другом блоге, и (IF) Isolation Forest, который считается самым популярным и известным методом обнаружения таких точек данных. Итак, в этом блоге мы будем работать с последним и попытаемся понять, как он работает, где он дает сбой (да, его дизайн является основной причиной его сбоя) и решение.

Прежде всего, в чем разница между шумом и выбросами?

Шум — это значение в ваших данных, которое может быть введено из-за какой-то ошибки, или мы можем называть его «бессмысленной информацией». Очень простой пример, в одной из записей артериальное давление человека записано как 1000 мм рт.ст. Сейчас в реальности невозможно иметь такое высокое значение артериального давления человека. Существует довольно высокая вероятность того, что это значение было повреждено при сборе данных.

Нормальный диапазон человеческого АД составляет 80–120 мм рт.ст., является ли 1000 мм рт.ст. выбросом? Нет, это не аутсайдер. Выброс — это точка данных, которая сообщает нам что-то о возникновении аномального события. Например, человек с артериальным давлением 190 мм рт.ст. может быть возможным признаком того, что он/она находится на грани болезни сердца.

Таким образом, мы всегда ищем выбросы, потому что они помогают нам обнаружить скрытые закономерности в наборе данных, поскольку они отличаются от обычных наблюдений и предоставляют столь необходимую «значимую информацию».

И точка, которая отличается от обычного хранения «бессмысленной информации», — это Шум.

Теперь прыгайте в (IF) Изоляционный лес!!

Как IF помогает нам находить выбросы?

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

Вы не похожи на других (нормальные баллы). Да, я это легко вижу.

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

Детальное объяснение:

  • IF по своей сути использует все качества дерева решений и использует рандомизированное дерево в качестве базовой оценки, что делает возможной подвыборку на обоих уровнях (строка и признак).
  • Он случайным образом выбирает одну функцию за раз, чтобы разделить или отрезать ветви, и использует случайное пороговое значение, которое существует ч/б в диапазоне min (значение функции) и max (значение функции). Например, диапазон значений признаков составляет [20 100], тогда пороговые значения выбираются случайным образом в пределах этого диапазона.
  • Концепция уменьшения примесей здесь полностью использовалась, как и обычные деревья решений, с намерением изолировать выбросы или аномальные точки на очень раннем этапе разделения.

Как показано на рисунке выше:

  • Требуется много разбиений (или линий, параллельных оси), чтобы отделить нормальную точку данных на левом изображении.
  • Другими словами, мы можем сказать, что нам нужно пройти до конца глубины дерева, чтобы найти этот элемент. Или,
  • Мы можем сказать, что этот Xi был общим во многих узлах дерева (от корня до последнего узла решения).
  • С другой стороны, на правом изображении точка Xo легко изолирована от других точек только с начальными 3 разбиениями, поэтому изоляция пометит ее как Выброс.

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

Давайте посмотрим на еще одно классическое изображение:

Подобные вещи показаны на рисунке выше:

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

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

Здесь на рисунке (а) показан пример дерева, где путь красного цвета относится к выбросу, а путь синего цвета — к выбросу или нормальной точке. Это снова говорит нам о том, что IF работает таким образом, что точка, которую легко выделить, является аномалией или выбросом.

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

Как рассчитывается показатель аномалии?

здесь h(x) — длина пути наблюдения x, c(n) — средняя длина пути неудачного поиска в бинарном дереве, а n — общее количество внешних узлов.

Оценка аномалии создается на основе всех деревьев в лесу и глубины, которую точка достигает в этих деревьях.

  • Оценка, близкая к 1, указывает на аномалии
  • Оценка менее 0,5 указывает на нормальные наблюдения.

Если все наблюдения имеют оценку 0,5, это означает, что нет явных признаков легко различимых аномалий.

Проблемы в изолированном лесу

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

Пример 1. Кластер нормально распределенных точек

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

Теперь Изолированный лес (изображение справа) правильно показывает центр [0,0] с областью светлого цвета, что означает очень низкий показатель аномалии, и он постепенно увеличивает интенсивность цвета по мере удаления от центра [0 ,0]. Например, сравните цвет в точках [0,0] и [-2,0], последний имеет более темный оттенок оранжевого по сравнению с центром.

Но Isolation Forest не останавливается на достигнутом, так как он также создал нежелательные параллельные оси линии, окружающие круг (линии, отличные от 4-х углов на правом изображении). Четыре угла изображения полностью темно-красные с более высоким показателем аномалии).

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

Пример 2: Два кластера нормально распределенных точек

На левом изображении у нас есть два нормально распределенных кластера данных, а справа у нас есть карта оценок аномалий.

Теперь, если подумать о карте показателей аномалий для такого набора данных, то в идеале у нас должно быть только два круга с центрами [10,0] и [0,10].

Но этого не произошло с IF, на правом изображении также есть два искусственных круга в точках [0,0] и [10,10], которых не было в реальных данных. В дополнение к этим двум искусственным кругам он также создал параллельные линии осей, окружающие все четыре круга.

Таким образом, все это полностью отсутствовало в реальных данных, и это не должно было быть создано Isolation Forest.

Пример-3: Данные в виде синусоидальной волны с гауссовским шумом

На изображении выше слева у нас есть синусоидальные данные, а справа у нас есть карта показателей аномалий.

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

Почему Isolation Forest работает таким образом?

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

На изображении выше показаны сгенерированные IF линии, параллельные осям, для:

(a) кластер нормально распределенных данных

(б) два кластера нормально распределенных данных

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

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

Например, на изображении (b) посмотрите на точки [0,0] и [10,10], так много линий проходят через эти области, но поскольку линии могут быть параллельны только осям, это регионы, которые содержат много срезов ветвей, но существуют только несколько/единственные наблюдения или наблюдения отсутствуют, что приводит к неправильному расчету показателей аномалии для некоторых наблюдений.

Есть ли у нас решение этой проблемы?

Ну да, и это известно как расширенный лес изоляции (EIF).

Разница между IF и EIF

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

  • случайный уклон для среза ветки
  • случайный перехват выбирается из диапазона доступных значений из обучающих данных

Посмотрите на изображение ниже:

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

Теперь давайте посмотрим на карту оценки аномалий EIF для тех же наборов данных:

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

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

Изолирующий лес против фактора локального выброса

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

  • Поскольку IF работает вышеупомянутым образом, то легко выделяемые наблюдения являются выбросами путем построения бинарных деревьев, что делает его мощным инструментом для выявления глобальных выбросов, но он не в состоянии идентифицировать или зафиксировать локальный выброс, который близок к нормальным точкам, но является ненормальным. в природе.
  • LOF на самом деле не страдает от этой проблемы. Однако временная сложность IF лучше, чем LOF, а добавление гиперплоскостей в EIF делает его очень подходящим для многомерных данных.

Мне очень понравилось понимать и работать с Isolation Forest, и в следующем блоге я продемонстрирую рабочий пример.

Спасибо и приятного обучения!!

Справочные ссылки:

Я особенно хотел бы упомянуть EIF GitHub, где они сгенерировали приведенные выше изображения, которые делают Isolation Forest действительно интуитивно понятным.