Isolation Forest — это неконтролируемый алгоритм обнаружения аномалий, позволяющий находить многомерные аномалии.

Введение

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

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

1. Обнаружение мошенничества (например, кредитные карты)

2. Обнаружение вторжений (например, ИТ-системы)

3. Профилактическое обслуживание (т. е. оборудования)

4. Ухудшение здоровья (т.е. обнаружение рака)

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

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

Выброс против обнаружения аномалий

Выбросы можно легко идентифицировать визуально, поскольку они основаны на одномерных данных (одна переменная). Существует 2 основных способа визуально определить выброс:

1. График распределения для нормально распределенных данных, где среднее значение является хорошей мерой центра данных.

2. Блочная диаграмма для ненормально распределенных данных, где медиана является хорошей мерой центра данных.

На графике распределения в случае нормально распределенного набора данных выбросы определяются как любое значение, которое выше или ниже 3 стандартных отклонений от среднего значения набора данных. Ниже приведен пример нормально распределенной переменной Price Momentum, которая количественно определяет волатильность акций. Распределение представляет собой 5000 различных акций и их соответствующее значение Price Momentum.

Как видно на приведенном выше графике распределения, выбросы — это любые значения, выходящие за пределы верхнего и нижнего пределов, которые показаны красными пунктирными линиями. Всего имеется 33 или 0,76% выбросов, которые выходят за пределы трех стандартных отклонений.

В случае ненормального распределения коробчатая диаграмма является лучшим визуальным индикатором выбросов. Это связано с тем, что выбросы для ненормальных распределений рассчитываются с использованием медианы и границ выбросов, рассчитанных путем умножения значений межквартильного диапазона на 1,5. Межквартильный диапазон представляет собой значение 75-го процентиля минус значение 25-го процентиля. Таким образом, любое значение, которое более чем в 1,5 раза превышает межквартильный размах от медианы, считается выбросом.

На приведенной выше диаграмме представлены все значения годового процентного изменения 4311 акций. Как видите, выбросы определяются выходом за границы, которые устанавливаются путем умножения межквартильного диапазона на 1,5 и последующего добавления или вычитания этого значения из медианы. На блочной диаграмме эти 2 границы называются «усами» блочной диаграммы.

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

Обнаружение аномалий с использованием изолированного леса

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

Изолирующий лес — это неконтролируемый алгоритм машинного обучения, который пытается найти аномалии, не имея достоверной цели для обучения. Изолирующий лес — это древовидный алгоритм, который случайным образом разбивает переменную по значению между минимумом и максимумом набора данных несколько раз, чтобы изолировать точку данных. Деревья решений в конечном итоге изолируют каждую отдельную точку данных (размер листа = 1), а аномалии определяются тем, сколько разделов сделано для изоляции точки данных в ее собственном листе. Чем меньше количество разделов, тем более аномальной является точка данных. Прогнозируемые результаты будут «1» для нормальной точки данных и «-1» для аномалии.

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

Обнаружение аномалий для определения низкого качества данных

Низкое качество данных может повредить нашей способности отвечать на нужные нам бизнес-вопросы с точностью, необходимой для уверенности в этих ответах. Обнаружение аномалий может помочь определить, где качество данных может вызывать подозрения. Недавно я использовал алгоритм Isolation Forest для выявления акций, которые могут иметь аномальные данные. API, для которого поступают эти данные, показал проблемы с качеством данных, и мне нужен был быстрый способ выявить эти аномалии, чтобы я не принимал инвестиционные решения на основе неверных данных. Я классифицировал акции по категориям «действия» с такими ярлыками, как «Купить», «Держать» и «Продать». Эти ярлыки были основаны на 5 ключевых показателях, которые ранжировали и обозначали акции. Обеспечение качества данных, лежащих в основе этих 5 ключевых показателей, было обязательным для проведения точного анализа. Я использовал пакет ансамбля Isolation Forest от Scikit Learn, чтобы определить, какие акции могут иметь аномальные данные по 5 ключевым показателям.

#import isolation forest package
from sklearn.ensemble import IsolationForest
#create isolation forest
if_model = IsolationForest()results = if_model.fit(df_anomaly.drop(columns=['symbol']))

Хотя существует множество параметров, которые можно настроить, наиболее важным является «загрязнение», которое представляет собой «степень загрязнения набора данных, то есть долю выбросов в наборе данных. Используется при подгонке для определения порога оценок выборок». согласно строке документации. По умолчанию установлено значение «авто», которое лучше всего использовать, когда уровень загрязнения (количество выбросов) неизвестен. Поскольку я не знал, о скольких акциях потенциально могут быть неверные данные, я оставил значение по умолчанию, в результате чего уровень загрязнения составил 4,7%.

Проверка результатов

Моя главная цель состояла в том, чтобы иметь «маркер» аномалии для каждой акции на основе результатов Isolation Forest, чтобы не сомневаться в том, что метки «Купить», «Держать» и «Продать» могут быть связаны с неверными данными. Я создал панель инструментов Tableau, которая позволила мне исследовать акции для инвестиций, а маркер обнаружения аномалий помог мне быстро действовать осторожно. Например, IIVIP была акцией номер 1 в рейтинге по 5 ключевым показателям, однако у нее был маркер аномалии.

Дальнейшая оценка показала, что IIVIP завысил данные о доходах в третьем и четвертом кварталах 2020 года, из-за чего он выглядел лучше, чем цена его акций. Оглядываясь назад на ключевые показатели, алгоритм Isolation Forest посчитал это аномалией из-за чрезвычайно большого значения дохода на акцию, равного 26 457. Теперь, может ли простой метод обнаружения выбросов, такой как распределение или блок-диаграмма, найти эту точку данных аномальной? Потенциально, однако, это более эффективно, потому что значение точки данных может находиться в пределах нормального диапазона (не выброс), но в контексте других переменных и их точек данных это аномалия. Вот чем обнаружение аномалий отличается от обнаружения выбросов.

Вывод

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