Mencari paket yang bagus untuk deteksi anomali dalam rangkaian waktu

17

Apakah ada paket open source yang komprehensif (lebih disukai dalam python atau R) yang dapat digunakan untuk deteksi anomali dalam deret waktu?

Ada paket SVM satu kelas di scikit-learn tetapi tidak untuk data deret waktu. Saya mencari paket yang lebih canggih yang, misalnya, menggunakan jaringan Bayesian untuk deteksi anomali.

pythinker
sumber
kita perlu menulis satu, bro !! : P
Arpit Sisodia

Jawaban:

19

Saya tahu saya agak terlambat di sini, tapi ya ada paket untuk deteksi anomali bersama dengan kerangka kombinasi-outlier.

Ini masih dalam tahap awal pengembangan di github dan akan segera diterbitkan di JMLR.

Paket dalam bahasa python dan nama paket adalah pyod ( https://github.com/yzhao062/Pyod ).

Ini memiliki beberapa algoritma untuk pendekatan individual berikut:

  1. Model Linier untuk Deteksi Outlier ( PCA, vMCD, vOne-Class, dan SVM )
  2. Model Deteksi Outlier Berbasis Kedekatan ( LOF, CBLOF, HBOS, KNN, AverageKNN, dan MedianKNN )
  3. Model Probabilistik untuk Deteksi Outlier ( ABOD dan FastABOD )
  4. Kerangka Ensembel dan Kombinasi Outlier ( IsolationForest dan FeatureBagging )
  5. Neural Networks dan Deep Learning Model ( Auto-encoder dengan Neural Network yang terhubung penuh )

Terakhir, jika Anda mencari rangkaian waktu khusus, maka tautan github ini akan berguna.

Ini memiliki paket daftar berikut untuk deteksi outlier timeseries:

datastream.io

kaki langit

banpei

AnomalyDetection

Shankar Chavan
sumber
cara apa pun untuk mengatasi kelainan berdasarkan konteks?
Arpit Sisodia
Anda berbicara tentang deteksi anomali atau deteksi outlier? Ada perbedaan.
Arpit Sisodia
6

Ada beberapa cara untuk menangani kelainan seri waktu-

1) Jika kelainan diketahui , bangun model klasifikasi. Gunakan model ini untuk mendeteksi jenis kelainan yang sama untuk data deret waktu.

2) Jika kelainan tidak diketahui , Apa yang telah kami lakukan di organisasi kami adalah kombinasi dari pengelompokan dan klasifikasi.

Pertama-tama gunakan jarak LOF / K-means / Cook untuk mengidentifikasi outlier. Konversi seluruh data menjadi masalah klasifikasi karena kami telah mendapatkan 2 kelas sekarang - Pencilan dan normals. Sekarang bangun model klasifikasi dan dapatkan aturan (model klasifikasi) untuk mengidentifikasi ketidaknormalan saat run time (data deret waktu).

3) Jika kelainan tidak diketahui , Selama penelitian saya, cara paling umum untuk mengidentifikasi kelainan adalah dengan membangun model normal dan penyimpangan dari model normal (kesalahan) tidak normal, jadi jika Anda memperkirakan seri waktu Anda untuk jam berikutnya dan kemudian membandingkan dengan nilai aktual. Jika kesalahan lebih dari yang diharapkan, sesuatu yang abnormal sedang terjadi.

Saya tidak dapat menemukan paket langsung dalam python atau R untuk melakukannya, karena tidak ada yang tahu apa yang benar-benar abnormal: P, dalam semua kasus itu telah dikaitkan dengan deteksi outlier.

beberapa tautan bermanfaat -

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

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

Arpit Sisodia
sumber
2

Coba Perpustakaan Nabi

Nabi adalah prosedur untuk meramalkan data deret waktu berdasarkan model aditif di mana tren non-linear cocok dengan musiman musiman, mingguan, dan harian, ditambah efek liburan. Ini bekerja paling baik dengan deret waktu yang memiliki efek musiman yang kuat dan beberapa musim data historis. Nabi kuat untuk kehilangan data dan pergeseran tren, dan biasanya menangani outlier dengan baik.

Lebih lanjut di: Deteksi anomali dalam seri waktu dengan perpustakaan Nabi

Krishna
sumber