Обнаружение аномалий или выбросов в серии точек данных, записанных с течением времени, называется обнаружением аномалий временного ряда. Это ключевая проблема в различных отраслях, включая финансы, здравоохранение, кибербезопасность и промышленное производство, где выявление аномалий может указывать на мошенничество, сбой системы или риски для здоровья. Алгоритмы обнаружения аномалий временных рядов специально разработаны для автоматического выявления и пометки таких аномалий в данных, что позволяет своевременно и эффективно вмешиваться.
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. Существует также блог для общего рабочего процесса этой функции в графическом интерфейсе.
Подтверждение
Спасибо за обзор и исправление Джулианны Форго.