Руководство по сквозному обнаружению аномалий с помощью PyFBAD

искусственный интеллект
Руководство по сквозному обнаружению аномалий с помощью PyFBAD

По существу, ваномальное обнаружениеВ , мы ищем наблюдения, которые отклоняются от нормы, которые либо лучше, чем то, что мы нашли или определили как нормальное, либо не могут идти в ногу. Таким образом, обнаружение аномалий дает преимущества как с коммерческой, так и с технической точки зрения. Чтобы выполнить исключения, нужно полагаться на такие вещи, какSciKit Learnтакой инструмент. Однако, когда дело доходит до выполнения сквозных задач, есть только несколько вариантов, таких как PyFBAD, пакет на основе Python. С самого начала мы можем загружать данные с различных распределенных серверов и запускать алгоритм SOTA для обнаружения аномалий. Мы собираемся поговорить об этих инструментах в этой статье, но сначала мы рассмотрим некоторые важные из них, перечисленные ниже.

содержание

  1. Что такое обнаружение аномалий?
  2. Методы обнаружения аномалий
  3. Алгоритмы обнаружения аномалий
  4. Как PyFBAD обрабатывает исключения?

Давайте начнем наше обсуждение с понимания обнаружения аномалий.

Что такое обнаружение аномалий?

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

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

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

Технология обнаружения аномалий

Неконтролируемые, полуконтролируемые и контролируемые методы обнаружения аномалий бывают трех типов. Лучший метод обнаружения аномалий в основном определяется метками в наборе данных. Для контролируемых методов обнаружения аномалий требуется набор данных с полным набором «нормальных» и «ненормальных» меток для работы алгоритмов классификации. Классификатор также должен быть обучен как часть метода.

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

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

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

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

изолированный лес

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

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

Алгоритмы на основе плотности

Общие методы на основе плотности включают K-ближайших соседей (KNN), локальный фактор выбросов (LOF) и другие. Эти методы могут принести пользу как системам регрессии, так и системам классификации.

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

Методы на основе SVM

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

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

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

Как PyFBAD обрабатывает исключения?

Библиотека PyFBAD — это неконтролируемый пакет обнаружения аномалий, который работает от начала до конца. Все этапы мл-потока имеют исходный код в этом пакете. С помощью многочисленных пакетов PyFBAD данные можно считывать из таких файлов, как CSV, баз данных, таких как MongoDB или MySQL. Препроцессоры могут использоваться для подготовки считанных данных для модели.

Для обучения модели можно использовать различные модели машинного обучения, такие как Prophet или Isolation Forest. Результаты обнаружения аномалий можно отправить по электронной почте или через slack. Другими словами, весь цикл проекта можно выполнить, используя только исходный код, предоставленный PyFBAD, и никакие другие библиотеки.

Начнем с этого пакета, сначала устанавливаем этот пакет с pip и импортируем все зависимости, также в этой реализации Plotly dash используется для интерактивной прорисовки.

import plotly.express as px
import plotly.graph_objects as go
from pyfbad.data import database as db
from pyfbad.models import models as md
from pyfbad.features import create_feature as cf

Поскольку мы упомянули, что этот инструмент является сквозной платформой, мы можем использовать наши данные из баз данных высокого уровня; это можно сделать с помощью объектов базы данных. Здесь мы загружаем стандартный CSV-файл, содержащий информацию об акциях Microsoft, который можно загрузить в формате .

# initialize the connection
connection = db.File()
data = connection.read_from_csv('/content/Microsoft_Stock.csv')
data.head()

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

features = cf.Features()
features_set = features.get_model_data(df=data, time_column_name = 'Date', value_column_name = 'Volume')
features_set

Затем, используя этот набор функций, созданный выше, PyFBAD предоставляет объект модели, с помощью которого мы можем обнаруживать аномалии. В настоящее время в качестве алгоритмов для работы используются Prophet и Isolation Forest.

# initialize the algorithm
models = md.Model_Prophet()
# train algorithm on the features
trained_features = models.train_model(features_set)
# get the anomalies
forecast_anomaly = models.train_forecast(trained_features)

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

последние слова

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

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