- PVSM.RU - https://www.pvsm.ru -
Сточные воды… Казалось бы, что тут может быть связанного с технологиями. Ну, возможно, какой-нибудь датчик загрязненности. Но, оказывается, нет. Все намного интереснее. Ведь машинное обучение помогает выявлять аномалии и отклонения в системе контроля сточных вод. Подробности под катом!
В следующем примере кода представлен инновационный метод выявления аномалий и ожидаемых отклонений с помощью Microsoft Anomaly Detection API [1] и двоичной классификации, поддерживающей фильтрацию динамических рядов.
Компания Carl Data Solutions [2] разрабатывает программные инструменты Flow Works [3], используемые муниципальными организациями для контроля инфраструктуры сточных вод. Эти инструменты получают данные со множества датчиков, измеряющих такие показатели, как расход воды, скорость и глубина.
Датчики иногда выходят из строя или ведут себя непредсказуемым образом, что вызывает отклонения показателей. Поскольку прогностические модели создаются на основе полученных с датчиков показаний, их отклонения могут снизить точность модели. В настоящее время муниципальные организации, использующие инструменты Carl Data Flow Works, прибегают к услугам консультантов, которые вручную проверяют данные со всех датчиков и изменяют значения, представляющиеся ошибочными, для устранения таких неточностей.
Выборка суточных показаний счетчика с маркированными аномалиями
Чтобы избежать дополнительных временных и финансовых затрат, компания Carl Data решила создать модель выявления аномалий, которая позволила бы автоматизировать обнаружение таких ошибок.
Поскольку ошибки в работе датчиков случаются нечасто, обучающие множества, которые сформированы на основе журналов, отобранных Carl Data, содержали гораздо больше «точных» значений, чем «неточных». В случае неравномерного распределения обучающих образцов традиционные двоичные классификаторы в отдельных случаях могут не выявлять ошибки датчиков ввиду большого количества положительных примеров. Зачастую для выявления нерегулярного потока используются неконтролируемые алгоритмы обнаружения отклонений динамических рядов.
Однако такие неконтролируемые системы выявления отклонений, как Twitter Anomaly Detection Package [4] или Microsoft Anomaly Detection API [1], хотя и справляются с задачей обнаружения нерегулярных потоков, все равно не могут отличить ожидаемые отклонения в поведении (например, пиковые значения в случае наводнений) от ошибок датчика. Кроме того, эти API выполняют только пакетную классификацию, которая отнимает слишком много времени, чтобы эффективно работать в режиме реального времени.
Microsoft помогает компании Carl Data в разработке модели обнаружения аномалий, способной идентифицировать различные типы отклонений от нормы, и передаче ее в производственную среду посредством концентраторов событий и PowerBI.
Модель 1. Обнаружение отклонений (неконтролируемый алгоритм)
Модель 2. Двоичный классификатор (контролируемый)
Модель 3. Гибридный классификатор (дифференциация аномалий и отклонений)
В процессе взаимодействия мы создали три модели, скомбинировав Microsoft Anomaly Detection API с набором случайных лесов и логистической регрессией, чтобы выявить ошибку датчика.
Хотя Anomaly Detection API позволяет выявить отклонения идентификатора в целях классификации аномалий, в наборе данных Carl Data разница между аномалиями и регулярным потоком была линейно дифференцируемой достаточно, чтобы получать сопоставимо качественный результат как при использовании двоичного классификатора случайного леса, так и в комбинации с Anomaly Detection API.
В отдельных случаях аналитики могут вручную помечать как аномальные значения в границах аномального пика датчика. Anomaly Detection API не может корректно маркировать такие значения. Тем не менее, если ошибка датчика представлена более наглядно и аномалии не являются линейно дифференцируемыми в достаточной степени, гибридный метод дает более обобщенные результаты, чем при использовании только двоичного классификатора.
Выбранная модель имеет следующие характеристики производительности с высокой степенью точности (99 %) и полноты возврата (100 %):
Измерение производительности модели с использованием обучаемого модуля теста производительности SciKit
Исходный код и заметки по использованию описанного метода см. на GitHub [5].
Методика, изложенная в этом примере кода, важна с точки зрения применения машинного обучения динамических рядов в таких мало охваченных областях, как контроль сточных вод.
Кроме того, по мере развития Интернета вещей и перехода от агрегирования данных к прогнозной аналитике все большее значение приобретает возможность различать аномалии, вызванные ошибками датчика, от аномалий, представляющих собой ожидаемые отклонения. Подход, изложенный в этом примере кода, рекомендуется использовать как раз в этих случаях.
Автор: sahsAGU
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/microsoft/274591
Ссылки в тексте:
[1] Microsoft Anomaly Detection API: https://docs.microsoft.com/ru-ru/azure/machine-learning/team-data-science-process/apps-anomaly-detection-api
[2] Carl Data Solutions: http://www.carlsolutions.com/
[3] Flow Works: http://www.flowworks.com/
[4] Anomaly Detection Package: https://github.com/twitter/AnomalyDetection
[5] на GitHub: https://github.com/aribornstein/Channel-Sensor-Error-Detection
[6] Источник: https://habrahabr.ru/post/345442/?utm_campaign=345442
Нажмите здесь для печати.