Bagikan melalui


Deteksi Anomali Rangkaian Waktu

Penting

Dukungan untuk Studio Azure Machine Learning (klasik) akan berakhir pada 31 Agustus 2024. Sebaiknya Anda transisi ke Azure Machine Learning sebelum tanggal tersebut.

Mulai 1 Desember 2021, Anda tidak akan dapat membuat sumber daya Studio Azure Machine Learning (klasik) baru. Hingga 31 Agustus 2024, Anda dapat terus menggunakan sumber daya Pembelajaran Mesin Studio (klasik) yang ada.

ML Dokumentasi Studio (klasik) sedang berhenti dan mungkin tidak diperbarui di masa mendatang.

Mendeteksi anomali dalam data rangkaian waktu input.

Kategori: Time Series

Catatan

Berlaku untuk: hanya Pembelajaran Mesin Studio (klasik)

Modul seret dan letakkan serupa tersedia di perancang Azure Machine Learning.

Ringkasan Modul

Artikel ini menjelaskan cara menggunakan modul Deteksi Anomali Time Series di Pembelajaran Mesin Studio (klasik), untuk mendeteksi anomali dalam data rangkaian waktu. Modul mempelajari karakteristik operasi normal dari rangkaian waktu yang Anda berikan sebagai input, dan menggunakan informasi tersebut untuk mendeteksi penyimpangan dari pola normal. Modul dapat mendeteksi kedua perubahan dalam tren keseluruhan, dan perubahan besaran atau rentang nilai.

Mendeteksi perubahan dalam data rangkaian waktu memiliki aplikasi yang luas. Misalnya, Anda dapat menggunakannya untuk pemantauan sensor, jaringan, atau penggunaan sumber daya yang hampir real-time. Dengan melacak kesalahan layanan, penggunaan layanan, dan KPI lainnya, Anda dapat merespons anomali penting dengan cepat. Aplikasi lain termasuk perawatan kesehatan dan keuangan.

Metode deteksi anomali

Deteksi anomali adalah masalah menemukan pola dalam data yang tidak sesuai dengan model perilaku "normal". Pendekatan umum untuk mendeteksi perubahan tersebut baik menggunakan ambang komputasi manusia sederhana, atau rata-rata dan simpangan baku untuk menentukan kapan data menyimpang secara signifikan dari rata-rata.

Namun, pendekatan sederhana seperti itu tidak mudah disesuaikan dengan data rangkaian waktu:

  • Sejumlah besar anomali palsu dihasilkan

  • Metode ini tidak berlaku untuk mengubah nilai data

  • Tidak dapat dengan mudah menskalakan ke rangkaian waktu besar

Modul ini menyediakan dua metode tambahan untuk menilai varians dari tren rangkaian waktu:

  • Mengukur besarnya perubahan ke atas dan ke bawah

    Misalnya, jumlah permintaan pada layanan web mungkin paling baik untuk beberapa waktu dan kemudian meningkat secara dramatis.

  • Mengukur arah dan durasi tren: perubahan positif vs negatif

    Misalnya, tren ke atas persisten dalam panjang antrean layanan mungkin menunjukkan masalah yang mendasar. Meskipun tren keseluruhan meningkat secara konsisten dan oleh karena itu mungkin dianggap stabil, perubahan kelopak dapat ditandai sebagai anomali. Sebaliknya, jika Anda memantau penggunaan memori server, penurunan ukuran memori bebas yang konstan mungkin menunjukkan masalah.

Contoh pola anomali dalam rangkaian waktu

Perubahan tingkat ke atas dan ke bawah

Misalnya, asumsikan Anda telah memantau jumlah permintaan per hari ke layanan web selama periode waktu tertentu, dan jumlah permintaan tampaknya tetap dalam rentang tertentu. Namun, setelah pembaruan ke layanan web, jumlah permintaan ke layanan web tersebut berubah. Tren baru mungkin lebih tinggi atau lebih rendah dari tren asli; baik lonjakan ke atas maupun ke bawah dapat dideteksi.

upward and downward level changes

Perubahan tren positif atau negatif

Misalnya, asumsikan Anda memantau panjang antrean di situs dukungan layanan. Tren ke atas persisten mungkin menunjukkan masalah layanan yang mendasar.

Dalam kasus lain, tren negatif persisten mungkin merupakan anomali. Misalnya, jika Anda memantau penggunaan memori di server, ketika ukuran memori bebas menyusut, itu dapat menunjukkan potensi kebocoran memori.

positive or negative trend change

Sumber

Untuk informasi selengkapnya tentang penelitian yang mendasar pendekatan ini, lihat artikel berikut:

Cara mengonfigurasi Deteksi Anomali Time Series

  1. Tambahkan modul Deteksi Anomali Time Series ke eksperimen Anda dan sambungkan himpunan data yang berisi rangkaian waktu.

    Himpunan data yang digunakan sebagai input harus berisi setidaknya satu kolom yang berisi nilai tanggalwaktu dalam format string, dan kolom lain yang berisi nilai tren, dalam format numerik. Kolom lain diabaikan.

    Karena setiap baris sesuai dengan titik data dalam rangkaian waktu yang mewakili nilai pada saat itu, nilai waktu harus unik.

  2. Kolom Data: Pilih satu kolom di himpunan data Anda yang berisi nilai data numerik. Nilai-nilai ini adalah titik data dalam tren yang ingin Anda model, seperti total populasi dari waktu ke waktu, biaya per bulan, atau suhu selama beberapa periode.

  3. Kolom Waktu: Pilih satu kolom dalam himpunan data Anda yang berisi nilai rangkaian waktu terkait.

    Kolom harus berisi nilai tanggalwaktu yang valid, yang berarti bahwa semua tanggal harus berada dalam rentang tanggal yang didukung oleh .NET Framework.

    Kolom Waktu harus menggunakan jenis data DateTime. Jika tanggal Anda dalam format string, Anda dapat mentransmisikannya menggunakan modul Terapkan SQL Transformasi, atau mengonversinya menggunakan modul Jalankan Skrip R. Jika tanggal Anda direpresentasikan sebagai bilangan bulat, Anda juga harus menggunakan fungsi konversi tanggalwaktu yang sesuai untuk mewakili nilai menggunakan format tanggalwaktu yang valid.

    Misalnya, pernyataan SQL berikut mengubah nilai tanggal seri Excel menjadi format tanggalwaktu:

     SELECT CAST([SerialDate]  AS SmallDateTime) as [NewValidDate] from t1;  
    

    Setelah nilai tanggal dalam format yang benar, gunakan modul Edit Metadata untuk mengatur jenis kolom ke DateTime.

  4. Martingale Jenis: Pilih fungsi martingale untuk digunakan.

    • PowerAvg. Opsi ini adalah implementasi marginal dari martingale daya.

      Nilai defaultnya adalah PowerAvg tanpa parameter tambahan. Opsi ini memberikan detektor anomali yang lebih stabil dan harus cocok untuk sebagian besar kebutuhan.

    • Kekuatan. Implementasi non-marginal dari martingale daya.

      Opsi Daya memberi pengguna opsi untuk memberikan nilai antara 0 dan 1 untuk parameter Epsilon untuk mengontrol sensitivitas detektor. Umumnya, nilai epsilon yang lebih tinggi berarti sensitivitas yang lebih tinggi terhadap anomali tetapi kurang pasti.

    Untuk definisi martingales dan metode yang digunakan dalam modul ini, lihat: Deteksi anomali menggunakan pembelajaran mesin untuk mendeteksi kelainan dalam data rangkaian waktu

  5. Jenis Fungsi Keanehan: Opsi ini digunakan untuk jenis anomali tertentu yang berbeda. Tiga opsi didukung, yang tidak memerlukan parameter lebih lanjut:

    • RangePercentile.

      Ini adalah default, dan sebagian besar digunakan untuk mendeteksi perubahan tingkat.

    • SlowPosTrend. Pilih opsi ini untuk mendeteksi perubahan tren positif.

    • SlowNegTrend. Pilih opsi ini untuk mendeteksi perubahan tren negatif.

  6. Panjang Nilai Martingale dan Keanehan: Tentukan ukuran jendela sejarah, yang digunakan untuk menghitung nilai martingale atas sejarah look-back.

    Nilai defaultnya adalah 500, tetapi Anda dapat menentukan bilangan bulat antara 0 dan 5000. Untuk rangkaian waktu yang besar, nilai default harus berfungsi dengan baik. Untuk rangkaian waktu yang lebih kecil, Anda dapat mencoba memperkirakan nilai untuk panjang perilaku abnormal yang diharapkan.

    Kami menyarankan agar Anda umumnya mengatur kedua parameter ini ke nilai yang sama.

  7. Panjang Nilai Keanehan: Tentukan panjang jendela riwayat yang digunakan untuk menghitung keanehan di setiap titik data.

    Nilai defaultnya adalah 500, tetapi Anda dapat menentukan bilangan bulat antara 0 dan 5000.

    Parameter ini memiliki batasan yang sama dengan Length of Martingale. Artinya, Anda harus menetapkan nilai ke perkiraan jumlah titik data yang diperlukan untuk mempelajari perilaku "normal".

    Default 500 berfungsi dengan baik untuk sebagian besar kasus, tetapi jika skala di mana "normalcy" diukur bervariasi, mungkin bermanfaat untuk membuat Panjang Nilai Keanehan menjadi nilai yang lebih besar daripada Panjang Martingale.

    Misalnya, jika Anda memantau kesalahan, dan mengasumsikan bahwa titik data diambil pada interval 15 menit, waktu yang diperlukan untuk mempelajari tren normal mungkin sangat bervariasi dari bulan ke bulan.

    Secara umum, menggunakan ukuran jendela yang lebih besar menyebabkan performa yang lebih lambat, karena modul harus mempelajari himpunan data yang lebih besar.

    Kami menyarankan agar Anda umumnya mengatur kedua parameter ini ke nilai yang sama.

  8. Ambang Pemberitahuan: Tentukan nilai di atas yang skor anomalinya menghasilkan pemberitahuan.

    Nilai defaultnya adalah 3,25, yang berarti bahwa pemberitahuan dihasilkan untuk setiap baris yang berisi skor 3,25 atau lebih. Y

    Anda dapat menentukan angka titik mengambang antara 0 dan 100. Namun, ada tradeoff antara sensitivitas dan keyakinan dalam pilihan ambang batas:

    • Ambang yang lebih rendah akan membuat detektor lebih sensitif terhadap anomali dan menghasilkan lebih banyak pemberitahuan.

    • Ambang batas bawah dapat mengakibatkan perubahan normal salah diklasifikasikan sebagai anomali.

  9. Jalankan eksperimen.

    Perhatikan bahwa Anda tidak perlu melatih model ini secara terpisah; algoritma mempelajari pola dari data yang Anda berikan sebagai input ke modul ini.

Hasil

Ketika pelatihan selesai, modul menghasilkan rangkaian waktu yang panjangnya sama dengan rangkaian waktu input; namun, dua kolom ditambahkan untuk menunjukkan nilai yang berpotensi anomali.

  • Skor Anomali: Kolom pertama berisi skor yang menunjukkan kemungkinan nilai rangkaian waktu anomali.

  • Pemberitahuan: Kolom ini berisi bendera dengan nilai 0 atau 1, di mana 1 berarti anomali terdeteksi. Anda dapat mengatur ambang batas untuk menghasilkan pemberitahuan berdasarkan kolom skor, tetapi mengatur parameter Ambang Pemberitahuan .

Contoh

Contoh berikut menunjukkan cara mengatur fungsi martingale untuk mendeteksi anomali dan cara menafsirkan hasilnya.

Mendeteksi perubahan tingkat

Untuk mengilustrasikan dampak pengaturan yang berbeda, contoh himpunan data yang digunakan dalam contoh ini terdiri dari 8870 titik data, dengan tiga perubahan tingkat. Berdasarkan data ini, kami membuat dua model, menggunakan parameter berikut.

  • Martingale Type: PowerAvg

  • Jenis fungsi keanehan: RangePercentile

  • Panjang Martingale = 50

  • Panjang Nilai Keanehan = 50

Model ini dilatih pada data masuk, tetapi nilai yang berbeda diterapkan untuk Ambang Pemberitahuan. Hasil prediksi diplot dalam gambar berikut untuk Model 1 dan Model 2. Dalam grafik ini, garis biru mewakili nilai data, dan garis merah mewakili pemberitahuan yang dimunculkan untuk anomali.

Ambang pemberitahuan 0,9

level change with alert of 0.9

Dalam model ini, nilai ambang batas lebih rendah, dan oleh karena itu pemberitahuan dinaikkan (anomali terdeteksi) bahkan ketika perubahannya sesaat.

Bergantung pada jenis rangkaian waktu yang Anda pantau, beberapa pemberitahuan ini mungkin dianggap sebagai pemberitahuan palsu. Namun, ambang batas bawah mungkin lebih disukai jika Anda tidak mampu mengabaikan anomali apa pun.

Ambang pemberitahuan 3,25

level change with alert of 3.25

Dalam model ini, ambang pemberitahuan jauh lebih tinggi, dan akibatnya, model hanya mendeteksi perubahan yang bertahan lebih lama. Ambang yang lebih tinggi untuk pemberitahuan mungkin lebih diinginkan dalam skenario di mana Anda hanya ingin menangkap perubahan yang lebih tahan lama.

Mendeteksi perubahan kelopak positif

Untuk mengilustrasikan opsi ini untuk deteksi anomali, kami menggunakan contoh himpunan data yang berisi 300 titik data. Semua titik membentuk tren positif secara keseluruhan, dengan dua anomali.

Sekali lagi, kami membuat dua model menggunakan parameter yang identik kecuali untuk nilai ambang pemberitahuan.

  • Martingale Type: PowerAvg

  • Jenis fungsi keanehan: SlowPosTrend

  • Panjang Martingale = 50

  • Panjang Nilai Keanehan = 50

Dalam grafik ini, garis biru mewakili nilai data dan garis merah mewakili pemberitahuan yang dinaikkan untuk anomali.

Ambang Pemberitahuan 4,25

positive trend with alert of 4.25

Ambang Pemberitahuan 6,0

positive trend with alert threshold of 6.0

Kami menyarankan agar Anda bereksperimen dengan nilai ambang pemberitahuan yang berbeda untuk menemukan tingkat sensitivitas yang sesuai untuk skenario deteksi anomali Anda.

Input yang diharapkan

Nama Jenis Deskripsi
Input data yang berisi tanda waktu dan nilai Tabel Data Input data yang berisi stempel dan nilai tanggal-waktu.

Parameter modul

Nama Jenis Rentang Opsional Default Deskripsi
Kolom Nilai ColumnSelection Diperlukan Pilih kolom yang berisi rangkaian waktu untuk dilacak
Ukuran jendela Bilangan bulat Diperlukan Tentukan nilai yang mengontrol ukuran jendela analisis
Ambang Float Opsional Tentukan nilai yang menentukan ambang pada skor untuk mengidentifikasi anomali

Output

Nama Jenis Deskripsi
Rangkaian waktu yang dianomasikan dengan skor anomali Tabel Data Himpunan data dengan interval anomali.

Lihat juga

Deteksi Anomali
Mesin Vektor Dukungan Satu Kelas
PCA-Based Deteksi Anomali