Шукаєте гарний пакет для виявлення аномалії у часових рядах


17

Чи є комплексний пакет із відкритим кодом (бажано в пітоні чи R), який можна використовувати для виявлення аномалії у часових рядах?

Існує однокласний пакет SVM в scikit-learn, але це не для даних часових рядів. Я шукаю більш складні пакети, які, наприклад, використовують байєсівські мережі для виявлення аномалії.


нам треба написати один, брато !! : P
Arpit Sisodia

Відповіді:


19

Я знаю, що тут я трохи запізнююся, але так, є пакет для виявлення аномалії разом із зовнішніми комбінаційними рамками.

Він ще знаходиться на початковій стадії розвитку на Github і незабаром буде опублікований у JMLR.

Пакет є мовою python, а назва пакету - pyod ( https://github.com/yzhao062/Pyod ).

Він має кілька алгоритмів для наступних індивідуальних підходів:

  1. Лінійні моделі для виявлення зовнішнього вигляду ( PCA, vMCD, vOne-Class та SVM )
  2. Моделі виявлення на основі близькості ( LOF, CBLOF, HBOS, KNN, AverageKNN та MedianKNN )
  3. Імовірнісні моделі для виявлення зовнішньої форми ( ABOD та FastABOD )
  4. Ассамблеї та комбіновані рамки Outlier ( IsolationForest та FeatureBagging )
  5. Нейронні мережі та моделі глибокого навчання ( Автокодер з повністю пов'язаною нейронною мережею )

Нарешті, якщо ви шукаєте спеціально часові ряди самі по собі, то ця посилання на github буде корисною.

Він має такі пакети списку для виявлення зовнішньої хронології:

datastream.io

горизонт

бандпеї

Виявлення аномалії


будь-який спосіб працювати над контекстними відхиленнями?
Arpit Sisodia

Ви говорите про виявлення аномалії чи виявлення зовнішньої форми? Є різниця.
Arpit Sisodia

6

Існує кілька способів впоратися з порушеннями часових рядів -

1) Якщо аномалії відомі , побудуйте модель класифікації. Використовуйте цю модель для виявлення однотипних відхилень для даних часових рядів.

2) Якщо аномалії невідомі , те, що ми зробили в нашій організації, - це поєднання кластеризації та класифікації,

Спочатку використовуйте LOF / K-засоби / відстань Кука, щоб визначити людей, що вижили. Перетворіть цілі дані в класифікаційну задачу, оскільки зараз у нас є 2 класи - випускники та нормали. Тепер побудуйте класифікаційну модель та отримайте правила (класифікаційна модель) для виявлення ненормальності під час виконання (дані часових рядів).

3) Якщо аномалії невідомі. Під час мого дослідження найпоширенішим способом виявлення відхилень є побудова нормальної моделі, а будь-яке відхилення від нормальної моделі (помилка) ненормальне, тому в урному випадку ви прогнозуєте свій часовий ряд на наступну годину, а потім порівнюєте з фактичними значеннями. Якщо помилок більше очікуваного, відбувається щось ненормальне.

Я не зміг знайти жодного прямого пакету в python або R, щоб зробити це, оскільки ніхто не знав, що насправді є ненормальним: P, у всіх випадках це було пов'язано з виявленням зовнішнього середовища.

кілька корисних посилань-

https://machinelearningstories.blogspot.com/2018/12/easiest-way-of-detection-abnormality.html

https://machinelearningstories.blogspot.com/2018/07/anomaly-detection-anomaly-detection-by.html


2

Спробуйте бібліотеку пророків

Prophet - це процедура прогнозування даних часових рядів на основі адитивної моделі, де нелінійні тенденції відповідають річній, тижневій та щоденній сезонності, а також ефектам відпусток. Найкраще це працює з часовими рядами, які мають сильний сезонний ефект та кілька сезонів історичних даних. Пророк надійний до відсутніх даних і зрушень у тренді, і, як правило, добре поводиться з іншими людьми.

Детальніше про: Виявлення аномалій у часових рядах з бібліотекою Prophet

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.