Deteksi Anomali dengan Fitur Dummy (dan Fitur Diskrit / Kategorikal lainnya)

18

tl; dr

  • Apa cara yang disarankan untuk menangani discretedata saat melakukan deteksi anomali?
  • Apa cara yang disarankan untuk menangani categoricaldata saat melakukan deteksi anomali?
  • Jawaban ini menyarankan menggunakan data diskrit untuk menyaring hasil saja.
  • Mungkin mengganti nilai kategori dengan peluang pengamatan perctage?

Intro

Ini adalah pertama kalinya saya memposting di sini, jadi tolong, jika ada sesuatu yang tampaknya tidak benar secara teknis, baik dalam format, atau penggunaan definisi yang benar, saya tertarik untuk mengetahui apa yang seharusnya digunakan.

Dan seterusnya.

Baru-baru ini saya mengikuti kelas Pembelajaran Mesin oleh Andrew Ng

Untuk deteksi anomali kita telah diajarkan untuk menentukan apa parameter distribusi Normal / Gaussian untuk fitur / variabel tertentu, xi dalam set data, dan kemudian menentukan probabilitas set contoh pelatihan / nilai pengamatan yang dipilih dengan nilai tertentu Distribusi Gaussian, dan kemudian mengambil produk dari probabilitas fitur.

metode

Pilih dilengkapi / variabel yang menurut kami menjelaskan kegiatan tersebut: { x 1 , x 2 , ... , x i }xi

{x1,x2,,xi}

Sesuaikan parameter Gaussian untuk setiap fitur: σ2=1

μj=1mi=1mxj(i)
σ2=1mi=1m(xj(i)μj)2

Untuk setiap contoh pelatihan, , hitung: p ( x ) = n j = 1 p ( x j ; μ j , σ 2 j )x

p(x)=j=1n p(xj;μj,σj2)

Kami kemudian menandai sebagai anomali ( ), diberikan: y = { 1y=1

y={1p(x)<ϵ0p(x)ϵ

Ini memberi kita metode yang dapat digunakan untuk menentukan apakah suatu contoh membutuhkan pemeriksaan lebih lanjut.

Pertanyaan saya)

Ini tampaknya baik untuk variabel / fitur kontinu, tetapi data diskrit tidak ditangani.

[IsMale]0,1p(x)

red1,blue2red1lHaig()

Pertanyaan: (diperbarui: 2015-11-24)

  • p(x)
  • p(x)
  • Apakah ada metode lain yang mempertimbangkan apa yang saya tanyakan di sini yang dapat saya teliti lebih lanjut?
  • Apa cara yang disarankan untuk menangani discretedata saat melakukan deteksi anomali?
  • Apa cara yang disarankan untuk menangani categoricaldata saat melakukan deteksi anomali?

Edit: 2017-05-03

  • Jawaban ini menyarankan menggunakan data diskrit untuk menyaring hasil saja.
  • Mungkin mengganti nilai kategori dengan peluang pengamatan perctage?
Adrian Torrie
sumber
[Penafian] Saya seseorang dengan latar belakang statistik yang cukup untuk menjadi berbahaya. </disclaimer> Jadi mari kita menjadi berbahaya .... Intuisi saya setuju dengan Anda bahwa Gaussian bukan cara untuk menangani data yang tidak berkelanjutan. Untuk data kontinu satu nilai pada garis bilangan memiliki jenis hubungan yang berbeda dengan semua nilai lain daripada angka pada garis bilangan bulat, atau variabel biner. Distribusi binomial menggambarkan variabel biner. Distribusi multinomial menggambarkan variabel multinomial. Bukankah ini semua anggota keluarga eksponensial?
EngrStudent
Lain yang dapat menambah diskusi: Topik: outlier kategoris?
Adrian Torrie
pp(x;μ,σ2)=1σ2πe(xμ)22σ2
@uvts_cvs ya fungsi kepadatan probabilitas gaussaian adalah apa yang digunakan.
Adrian Torrie

Jawaban:

4

Secara umum, untuk kedua fitur diskrit * & kategorikal, metode ini tidak terlalu cocok untuk analisis outlier. Karena tidak ada besaran yang terkait dengan prediktor kategori, kami bekerja dengan:

  • Frekuensi kategori yang diamati dalam data global
  • Frekuensi kategori yang diamati dalam subruang data

Perhatikan bahwa tidak satu pun dari kualitas ini yang dapat dianalisis secara terpisah, sebagaimana metode Gaussian Anda mengharuskan. Sebaliknya, kita membutuhkan metode yang mengontekstualisasikan fitur kategorikal & mempertimbangkan sifat korelasional data.

Berikut adalah beberapa teknik untuk data atribut kategorikal & campuran, berdasarkan Analisis Outlier oleh Aggarwal:

  • SS=Qkλk2QkTQkE=QkλkE
  • Jika Anda memiliki fitur murni kategori, paskan model campuran dengan data kategori mentah. Poin anomali memiliki probabilitas generatif terendah.
  • Gunakan pengodean satu-panas untuk prediktor kategorikal dan analisis variabel laten opsional ** untuk variabel ordinal dengan pemetaan kontinu yang tidak jelas
    • Standarisasi fitur non-satu-panas (fitur satu-panas sudah terstandarisasi secara tersirat) dan melakukan Analisis Komponen Utama . Lakukan pengurangan dimensionalitas menggunakan komponen utama utama (atau pendekatan PCA lunak di mana vektor eigen diberi bobot berdasarkan nilai eigen) dan jalankan metode analisis pencilan terus menerus yang khas (misalnya model campuran atau metode Gaussian Anda)
    • Lakukan analisis berbasis sudut. Untuk setiap pengamatan, hitung persamaan cosinus antara semua pasangan titik. Pengamatan dengan varian terkecil dari kesamaan ini (dikenal sebagai "Angle-Based Outlier Factor") kemungkinan besar adalah pencilan. Mungkin memerlukan analisis akhir dari distribusi empiris ABOF untuk menentukan apa yang anomali.
    • Jika Anda telah memberi label pencilan: Sesuaikan model prediksi dengan data yang direkayasa (regresi logistik, SVM, dll.).

* Fitur diskrit mungkin dapat ditangani kira-kira dalam metode Gaussian Anda. Di bawah kondisi yang tepat, suatu fitur mungkin didekati dengan baik oleh distribusi normal (misalnya variabel acak binomial dengan npq> 3). Jika tidak, tangani sebagai tata cara yang dijelaskan di atas.

** Ini mirip dengan ide Anda "ganti nilai kategori dengan persentase peluang pengamatan"

khol
sumber
K=1
@Akababa Anda dapat, misalnya, menghitung MLE pada parameter multinomial menggunakan algoritma EM. Dengan asumsi independensi RV multinomial, pendekatan ini digeneralisasikan ke set prediktor kategori sewenang-wenang. Contoh di sini
khol
0

Andrew Ng kelas matematika menangani data "diskrit" cukup seperti itu menangani data "non-diskrit". Yang harus kita lakukan adalah memperkirakan secara empiris parameter distribusi normal, dan itu bisa dilakukan dengan sempurna untuk data diskrit.

Jika Anda memikirkannya, pembelajaran mesin selalu berurusan dengan data diskrit: jumlah titik data tidak terbatas dan jumlah bit yang ditangani oleh komputer tidak terbatas.

Jika titik data diskrit dapat dibandingkan antara satu sama lain maka tidak ada perbedaan mendasar untuk metode pembelajaran mesin ketika berhadapan dengan, katakanlah, panjang: 1,15 kaki 1,34 kaki 3,4 kaki

atau berapa banyak cabang di pohon: 1 2 3 5

Anda dapat menjumlahkan dan rata-rata floating point atau bilangan bulat sama saja.

Sekarang, untuk data kategorikal. Poin data kategorikal tidak dapat dibandingkan {mobil vs motor vs kapal). Bagaimana kita menangani ini?

Jumlah kategori harus setidaknya dua masuk akal, kalau tidak apa gunanya fitur konstan? Dalam hal 2 kategori, kita dapat merepresentasikan fitur kategori sebagai fitur biner {0, 1}. 0 dan 1 dapat digunakan untuk matematika, jadi lihat di atas.

Jika jumlah kategori (K) adalah [3 .. inf], kami memetakan fitur tunggal kami ke K binary fitur yang saling eksklusif. Misalnya, kategori "sepeda motor" menjadi kombinasi fitur biner {IsCar: 0, IsMotorcycle: 1, IsBoat: 0}, titik perahu menjadi {IsCar: 0, IsMotorcycle: 0, IsBoat: 1} dan seterusnya.

Kami dapat memperkirakan parameter distribusi empiris dari fitur-fitur baru ini. Kami hanya akan memiliki lebih banyak dimensi, itu saja.

Oscar92
sumber
1
Ini menjelaskan penyandian boneka tetapi itu bukan jawaban untuk pertanyaan
Pieter