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

IBM Watson AutoAI недавно представила новый тип анализа временных рядов — прогнозирование аномалий. Типичный сценарий использования AutoAI Time Series Anomaly Prediction (TSAP) заключается в том, что ваши исторические данные временных рядов не были помечены, но вы знаете, что все исторические данные являются нормальными без необычных или аномальных точек данных. Вы предоставляете исторические данные в TSAP, и он использует несколько популярных алгоритмов для обучения конвейеров модели-кандидата распознаванию нормальных закономерностей в данных. Затем вы можете развернуть полученную модель для прогнозирования аномалий в новых данных.

Давайте посмотрим, как легко использовать библиотеку IBM AutoAI Python для анализа потребления электроэнергии за 18 месяцев, чтобы обнаружить потенциальные аномалии в прогнозируемом использовании на следующие 6 месяцев.

Настраивать

Для работы с AutoAI для временных рядов у вас должен быть экземпляр Watson Machine Learning service (входит в бесплатный план) для IBM Cloud Pak for Data. Watson Machine Learning предоставляет интерфейс Python через пакет ibm-watson-machine-learning (доступен на pypi). Установите пакет, выполнив следующую команду pip:

pip install ibm-watson-machine-learning

Затем укажите данные аутентификации для инициализации клиента Python.

from ibm_watson_machine_learning import APIClient
client = APIClient(credentials)

Данные временного ряда

Данные об использовании электроэнергии — пример набора данных, который содержит данные о ежедневном потреблении электроэнергии в вымышленной отрасли с 1 января 2020 года по 22 августа 2021 года.

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

Чтобы сделать данные доступными для эксперимента AutoAI, мы начинаем с загрузки данных в облачное хранилище объектов.

AutoAI для временных рядов

Используя API Python, мы определяем эксперимент AutoAI для данных временных рядов и указываем следующие параметры для оптимизатора нашего эксперимента:

· name - название эксперимента

· prediction_type – тип проблемы

· timestamp_column_name – имя/индекс столбца даты и времени

· feature_columns – имена/индексы столбцов признаков

· pipeline_types — указать конвейеры по типу

Теперь вызовите метод fit(), чтобы запустить задание обучения.

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

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

Развертывание и оценка

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

После успешного создания развертывания мы можем запросить прогнозы с помощью метода score().

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

Сводка

В этой статье показано, как использовать IBM Watson AutoAI Python API для кодирования эксперимента, который анализирует известные данные временных рядов, чтобы результирующая модель могла предсказывать возможные аномалии в новых данных. Чтобы узнать больше о том, как использовать эту функцию для получения ценных сведений из данных временных рядов, попробуйте эту функцию в IBM Cloud Pak for Data as a Service или просмотрите примеры записных книжек AutoAI.

Перейдите в IBM Cloud и проверьте эту новую функцию.
Вы также можете найти образцы блокнотов AutoAI здесь.

P.S. Существует также блог для общего рабочего процесса этой функции в графическом интерфейсе.

Подтверждение

Спасибо за обзор и исправление Джулианны Форго.