Обнаружение аномалий с помощью неконтролируемого обучения
Изолирующий лес очень похож на популярный случайный лес. Разница лишь в том, что в отличие от Random forest, изолированный лес — это метод обучения без присмотра.
Неконтролируемое обучение
Быстрое обновление неконтролируемого обучения — данные обучения не помечены. Алгоритм находит сходство и различие между входными данными. Затем он классифицирует обучающие данные по группам. Наиболее популярным использованием неконтролируемого обучения являются алгоритм кластеризации и ассоциация.
Кластеризация: группирует похожие типы данных вместе. Популярными методами являются K-средние, K ближайших соседей и т. д.
Ассоциация: это используется, чтобы найти, как связаны два несвязанных продукта. например Анализ данных корзины.
Изолированный лес:основная концепция
Основная философия Isolation forest заключается в том, что аутсайдеров немного и они сильно отличаются от других. Для обнаружения аномалий общепринятой практикой является определение «нормального». В этом отличие Изоляционного леса — он не определяет нормальное — он определяет то, что не является нормальным, поскольку их «немного и они очень разные».
Проще говоря, если ваши тренировочные данные содержат в основном аномалии, Изолирующий лес не сработает. В таких случаях вам нужно определить, что является нормальным (например, использовать обучение с учителем).
Изолирующий лес: Алгоритм
- Берет некоторую подвыборку и случайным образом выбирает любой атрибут.
- Разделите данные слева и справа от этого узла. Это делается с помощью некоторого порога разделения (между максимальным и минимальным значением атрибута).
- Продолжайте повторять процесс для левого и правого дочерних узлов до тех пор, пока его невозможно будет разделить дальше.
- Это дает бинарное дерево с внутренними и листовыми узлами.
- Нет, мы передаем данные в дерево. Нормальные данные будут перемещаться глубже, а аномалия не будет углубляться (достигнет конечного узла).
- Одна часто используемая оптимизация заключается в создании дерева только до определенной высоты. Причина в том, что все, что достигает этой высоты, не будет аномалией.
Давайте посмотрим на пример ниже:
Давайте разделим случайным образом на 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 для получения дополнительной информации.
Для дальнейшего обучения: