Komponen Deteksi Anomali Berbasis PCA

Artikel ini menjelaskan cara menggunakan komponen Deteksi Anomali Berbasis PCA di perancang Azure Machine Learning, untuk membuat model deteksi anomali berdasarkan analisis komponen prinsipal (PCA).

Komponen ini membantu Anda membangun model dalam skenario di mana mudah untuk mendapatkan data pelatihan dari satu kelas, seperti transaksi yang valid, tetapi sulit untuk mendapatkan sampel yang memadai dari anomali yang ditargetkan.

Misalnya, untuk mendeteksi transaksi penipuan, Anda sering tidak memiliki cukup contoh penipuan untuk dilatih. Tetapi Anda mungkin memiliki banyak contoh transaksi yang baik. Komponen Deteksi Anomali Berbasis PCA memecahkan masalah dengan menganalisis fitur yang tersedia untuk menentukan apa yang merupakan kelas "normal". Komponen kemudian menerapkan metrik jarak untuk mengidentifikasi kasus yang mewakili anomali. Pendekatan ini memungkinkan Anda melatih model dengan menggunakan data yang tidak seimbang yang ada.

Selengkapnya tentang analisis komponen utama

PCA adalah teknik yang andal dalam pembelajaran mesin. Teknik ini sering digunakan dalam analisis data eksplorasi karena mengungkapkan struktur dalam data dan menjelaskan varian dalam data.

PCA bekerja dengan menganalisis data yang berisi beberapa variabel. PCA mencari korelasi di antara variabel dan menentukan kombinasi nilai yang paling baik menangkap perbedaan dalam hasil. Nilai fitur gabungan ini digunakan untuk membuat ruang fitur yang lebih ringkas yang disebut komponen utama.

Untuk deteksi anomali, setiap input baru akan dianalisis. Algoritma deteksi anomali menghitung proyeksinya pada eigenvectors, bersama dengan kesalahan rekonstruksi yang dinormalisasi. Kesalahan yang dinormalisasi digunakan sebagai skor anomali. Semakin tinggi kesalahan, semakin anomali instansnya.

Untuk mengetahui informasi selengkapnya tentang cara kerja PCA, dan tentang implementasi untuk deteksi anomali, lihat makalah berikut:

Cara mengonfigurasi Deteksi Anomali Berbasis PCA

  1. Tambahkan komponen Deteksi Anomali Berbasis PCA ke alur Anda di perancang. Anda dapat menemukan komponen ini dalam kategori Deteksi Anomali.

  2. Di panel kanan komponen, pilih opsi Mode pelatihan. Tunjukkan apakah Anda ingin melatih model dengan menggunakan set parameter tertentu, atau menggunakan sapuan parameter untuk menemukan parameter terbaik.

    Jika Anda tahu cara mengonfigurasi model, pilih opsi Parameter Tunggal, dan berikan set nilai tertentu sebagai argumen.

  3. Untuk Jumlah komponen yang digunakan dalam PCA, tentukan jumlah fitur output atau komponen yang Anda inginkan.

    Keputusan mengenai jumlah komponen yang akan disertakan adalah bagian penting dari desain eksperimen yang menggunakan PCA. Panduan umumnya adalah Anda tidak boleh memasukkan jumlah komponen PCA yang sama karena ada variabel. Sebagai gantinya, Anda harus mulai dengan jumlah komponen yang lebih kecil dan meningkatkannya sampai beberapa kriteria terpenuhi.

    Hasil terbaik diperoleh ketika jumlah komponen output kurang dari jumlah kolom fitur yang tersedia dalam himpunan data.

  4. Tentukan jumlah pengambilan sampel yang berlebihan yang akan dilakukan selama pelatihan PCA acak. Dalam masalah deteksi anomali, data yang tidak sempurna menyulitkan penerapan teknik PCA standar. Dengan menentukan beberapa jumlah pengambilan sampel yang berlebihan, Anda dapat meningkatkan jumlah instans target.

    Jika Anda menentukan 1, tidak ada pengambilan sampel yang berlebihan yang dilakukan. Jika Anda menentukan nilai apa pun yang lebih tinggi dari 1, sampel tambahan dihasilkan untuk digunakan dalam melatih model.

    Ada dua opsi, tergantung pada apakah Anda menggunakan sapuan parameter atau tidak:

    • Parameter pengambilan sampel yang berlebihan untuk PCA acak: Ketik satu bilangan bulat yang mewakili rasio pengambilan sampel yang berlebihan kelas minoritas di atas kelas normal. (Opsi ini tersedia saat Anda menggunakan metode pelatihan Parameter tunggal.)

    Catatan

    Anda tidak dapat melihat himpunan data yang diambil sampelnya secara berlebihan. Untuk informasi lebih lanjut tentang bagaimana pengambilan sampel yang berlebihan digunakan dengan PCA, lihat Catatan teknis.

  5. Pilih opsi Aktifkan normalisasi rata-rata fitur input untuk menormalkan semua fitur input ke rata-rata nol. Normalisasi atau penskalaan ke nol umumnya direkomendasikan untuk PCA, karena tujuan PCA adalah untuk memaksimalkan varians di antara variabel.

    Opsi ini dipilih untuk Anda secara default. Hapus pilihan jika nilai telah dinormalisasi melalui metode atau skala yang berbeda.

  6. Hubungkan himpunan data pelatihan yang diberi tag dan salah satu komponen pelatihan.

    Jika Anda mengatur opsi Buat mode pelatih ke Parameter Tunggal, gunakan komponen Latih Model Deteksi Anomali.

  7. Kirimkan alur.

Hasil

Ketika pelatihan selesai, Anda dapat menyimpan model terlatih. Atau Anda dapat menghubungkannya ke komponen Model Skor untuk memprediksi skor anomali.

Untuk mengevaluasi hasil model deteksi anomali:

  1. Pastikan bahwa kolom skor tersedia di kedua himpunan data.

    Jika Anda mencoba mengevaluasi model deteksi anomali dan mendapatkan kesalahan "Tidak ada kolom skor dalam himpunan data skor untuk dibandingkan", Anda menggunakan himpunan data evaluasi tipikal yang berisi kolom label tetapi tidak ada skor peluang. Pilih himpunan data yang cocok dengan output skema untuk model deteksi anomali, yang mencakup kolom Label Skor dan Probabilitas Skor.

  2. Pastikan kolom label ditandai.

    Terkadang metadata yang terkait dengan kolom label dihapus dalam grafik alur. Jika ini terjadi, saat Anda menggunakan komponen Model Evaluasi untuk membandingkan hasil dari dua model deteksi anomali, Anda mungkin mendapatkan kesalahan "Tidak ada kolom label dalam himpunan data yang dicetak." Atau Anda mungkin mendapatkan kesalahan "Tidak ada kolom label dalam himpunan data yang diberi skor untuk dibandingkan."

    Anda dapat menghindari kesalahan ini dengan menambahkan komponen Edit Metadata sebelum komponen Model Evaluasi. Gunakan pemilih kolom untuk memilih kolom kelas, dan di daftar Bidang, pilih Label.

  3. Gunakan komponen Execute Python Script untuk menyesuaikan kategori kolom label sebagai 1(positif, normal) dan 0(negatif, abnormal) .

    label_column_name = 'XXX'
    anomaly_label_category = YY
    dataframe1[label_column_name] = dataframe1[label_column_name].apply(lambda x: 0 if x == anomaly_label_category else 1)
    

Catatan teknis

Algoritma ini menggunakan PCA untuk memperkirakan subruang yang berisi kelas normal. Subruang direntang oleh eigenvectors yang terkait dengan eigenvalues teratas dari matriks kovarian data.

Untuk setiap input baru, detektor anomali terlebih dahulu menghitung proyeksinya pada eigenvectors, dan kemudian mengomputasi kesalahan rekonstruksi yang dinormalisasi. Kesalahan ini adalah skor anomali. Semakin tinggi kesalahan, semakin anomali instansnya. Untuk mengetahui detail tentang bagaimana ruang normal dihitung, lihat Wikipedia: Analisis komponen utama.

Langkah berikutnya

Lihat set komponen yang tersedia untuk Azure Machine Learning.

Lihat Pengecualian dan kode galat untuk perancang untuk daftar kesalahan khusus bagi komponen perancang.