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?
Jawaban:
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.
sumber
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
sumber