Обнаружение аномалий с помощью неконтролируемого обучения

Изолирующий лес очень похож на популярный случайный лес. Разница лишь в том, что в отличие от Random forest, изолированный лес — это метод обучения без присмотра.

Неконтролируемое обучение

Быстрое обновление неконтролируемого обучения — данные обучения не помечены. Алгоритм находит сходство и различие между входными данными. Затем он классифицирует обучающие данные по группам. Наиболее популярным использованием неконтролируемого обучения являются алгоритм кластеризации и ассоциация.

Кластеризация: группирует похожие типы данных вместе. Популярными методами являются K-средние, K ближайших соседей и т. д.

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

Изолированный лес:основная концепция

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

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

Изолирующий лес: Алгоритм

  1. Берет некоторую подвыборку и случайным образом выбирает любой атрибут.
  2. Разделите данные слева и справа от этого узла. Это делается с помощью некоторого порога разделения (между максимальным и минимальным значением атрибута).
  3. Продолжайте повторять процесс для левого и правого дочерних узлов до тех пор, пока его невозможно будет разделить дальше.
  4. Это дает бинарное дерево с внутренними и листовыми узлами.
  5. Нет, мы передаем данные в дерево. Нормальные данные будут перемещаться глубже, а аномалия не будет углубляться (достигнет конечного узла).
  6. Одна часто используемая оптимизация заключается в создании дерева только до определенной высоты. Причина в том, что все, что достигает этой высоты, не будет аномалией.

Давайте посмотрим на пример ниже:

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

Нет, если мы посмотрим на 200, он просто перейдет на уровень 2. С другой стороны, 95 перейдет на уровень 5. Эта функция используется для выявления аномалии. Высота дерева может быть фиксированной, как в приведенном выше примере.

Изолирующий лес: реализация

Scikit Learn предоставляет библиотечную реализацию леса изоляции.

from sklearn.ensemble import IsolationForest

Код для создания модели

model=IsolationForest(n_estimators=30, max_samples=10, max_features=1.0)
model.fit(df[['Salary']])

Параметры

Количество оценщиков: Деревья в ансамбле. Это необязательно со значением по умолчанию 100.

Макс. выборки: количество выборок для обучения каждой базовой оценки. Значение по умолчанию — авто. В этом случае значение будет выбрано библиотекой

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

Обратитесь к документации scikit для получения дополнительной информации.

Для дальнейшего обучения: