Deteksi anomali pada deret waktu

8

Saya seorang pemula yang menggunakan pembelajaran mesin (saya menyelesaikan kursus Ng), saya menggunakan scikit-learn in python. Saya ingin menemukan cara terbaik untuk mendeteksi anomali di sistem kami.

Kami memiliki peristiwa yang sedang berlangsung yang terjadi sesuai jadwal (setiap beberapa menit / jam), dan saya ingin mendeteksi ketika sesuatu yang abnormal terjadi. Contoh data:

ID | epoch-time | duration (Sec) | status | is_manual

0400 | 1488801454  | 500 | completed | 1

0401 | 1488805055  | 500 | completed | 1

0402 |  1488812254  | 40000 | failed | 1

6831 | 1488805050  | 200 | failed | 0

.

... (Millions of examples)

.

0014 |  1488805055 | 1200 | completed | 0

jadi misalnya event ID 0400 terjadi sekali setiap jam. Saya ingin tahu kapan itu tidak berjalan.

Apa yang saya rencanakan adalah memberi makan algoritma semua peristiwa dari 10 menit terakhir.

Pertanyaan utama: Bagaimana cara memperlakukan kolom ID? Apa pendekatan terbaik yang harus saya ambil?

XOmri
sumber
Apakah anomali sama dengan pencilan? Dalam statistik kami menggunakan istilah pencilan sementara dalam ilmu antariksa mereka menyebutnya anomali.
Michael R. Chernick
Perbedaan antara outliner dan anomali: stats.stackexchange.com/questions/189664/…
XOmri
Bisakah Anda menguraikan sedikit lebih banyak tentang apa acara dalam kasus ini? Berapa banyak kejadian unik dalam data Anda? Juga, Anda memberi contoh di mana perilaku 'abnormal' adalah peristiwa gagal. Apakah ada kasus lain yang Anda lihat tidak normal?
deemel
@ Rickyfox Peristiwa yang saya maksud adalah baris, atau input. Itu salah menggunakan ID yang sama untuk acara yang berbeda, dan saya memperbaikinya dalam pertanyaan. Abnormal akan menjadi kasus di mana suatu peristiwa tidak konsisten dengan peristiwa sebelumnya yang berkorelasi berdasarkan waktu. Misalnya: Jika setiap 30 detik, suatu peristiwa terjadi dengan parameter yang sama (durasi: 500, selesai, 1), maka jika tidak ada peristiwa setelah 30 detik, itu tidak normal. Atau jika gagal dan tidak selesai: Ini juga merupakan anomali.
XOmri
Saya tidak melihat bagaimana Anda membutuhkan ML di sini. Sepertinya permintaan bersyarat sederhana seharusnya berfungsi dengan baik
Aksakal

Jawaban:

1

Saya menemukan artikel ini sangat membantu dalam kasus saya:

https://mapr.com/blog/deep-learning-tensorflow/

Dengan menggunakan struktur RNN dasar ini, saya dapat memprediksi hasil timestep berikutnya. Dengan memusatkan semua peristiwa ke menit terdekat, jaringan dapat mengenali pola yang berkorelasi dalam timeline.

XOmri
sumber
-5

Ada beberapa cara untuk mengatasi hal ini. Sebelum mulai mendesain model apa pun, standarisasi data Anda. Data Anda tampaknya tidak berlabel, jadi awalnya, yang dapat Anda lakukan adalah melakukan visualisasi t-SNE di atasnya yang akan memberi Anda banyak wawasan tentang data Anda. Berdasarkan hasilnya Anda dapat mengembangkan model yang lebih masuk akal yang dapat mengelompokkan sampel menjadi yang normal dan anomali. Lebih lanjut tentang t-SNE di sini

S. P
sumber
2
Selamat datang di stats.SE! Pusat bantuan memiliki beberapa informasi bagus tentang mengajukan / menjawab pertanyaan. Jawaban terinci cenderung menjadi yang terbaik. Bisakah Anda menguraikan lebih banyak? Sebagai contoh, bagaimana t-SNE akan digunakan dengan data deret waktu dan input 'id' terpisah, dan bagaimana ia akan digunakan untuk membantu merancang sistem deteksi anomali?
user20160
Saya mencari memvisualisasikan data dengan t-SNE sesuai saran Anda, tapi saya tidak yakin seberapa jauh saya bisa mendapatkannya. Kami memiliki beberapa fitur tambahan untuk ditambahkan yang tidak saya sebutkan, saya akan mengedit dan menambahkan ke posting. Saya masih tidak tahu apa yang harus dilakukan begitu visualisasi saya berfungsi
XOmri
Selain itu, t-SNE sangat tergantung pada hyperparameters dan tidak mempertahankan jarak, jadi bagaimana tepatnya Anda akan menemukan outlier berdasarkan itu ..? Ya itu akan membiarkan Anda menemukan poin aneh, tetapi ini akan memetik ceri.
Tim