Apakah Support Vector Machine menangani Dataset yang tidak seimbang?

14

Apakah SVM menangani dataset yang tidak seimbang? Apakah ada parameter (seperti C, atau biaya kesalahan klasifikasi) yang menangani dataset yang tidak seimbang?

RockTheStar
sumber
1
Apa yang membuat dataset "tidak seimbang"?
whuber
1
@whuber kumpulan data klasifikasi dengan prevalensi kelas yang sangat bervariasi sering disebut sebagai tidak seimbang.
Marc Claesen
1
@ Markc Itu mungkin benar secara umum tapi itu konsep yang kabur. Berapa "sangat bervariasi"? Mengapa itu bahkan penting kecuali dalam keadaan khusus tertentu? Saya percaya penting bagi kita untuk mempelajari apa yang dimaksud oleh pengusul pertanyaan ini dengan "tidak seimbang" daripada menerima tebakan cerdas siapa pun mengenai makna yang dimaksud.
whuber
@whuber dataset tidak seimbang adalah konsep umum dalam pembelajaran mesin. Dalam hal aplikasi karena misalnya deteksi spam dll. Mungkin karena banyaknya algoritma yang menargetkan kesalahan klasifikasi bukan probabilitas. Ini pada gilirannya membuat bobot kesalahan bermasalah.
seanv507
2
Terima kasih, @seanv, untuk klarifikasi. Masalah terminologis tampaknya adalah bahwa "pegangan" tidak mengacu pada "dapat diterapkan," tetapi lebih menyiratkan pengaturan di mana (1) ada kelas yang minoritas sehingga kinerja prediksi mungkin sangat dipengaruhi oleh kehadiran kelas lain, sementara (2) prediksi akurat untuk kelas minoritas menarik. Dalam arti "dataset tidak seimbang" adalah deskripsi yang agak tidak lengkap dari masalah, tetapi karena istilah tersebut tampaknya telah mengakuisisi beberapa mata uang, tampaknya tidak ada gunanya untuk mengeluh.
whuber

Jawaban:

18

Untuk set data yang tidak seimbang, kami biasanya mengubah penalti kesalahan klasifikasi per kelas. Ini disebut SVM kelas-tertimbang, yang meminimalkan hal berikut:

minw,b,ξsaya=1Nj=1Nαsayaαjysayayjκ(xsaya,xj)+ChalHaissayaPξsaya+CnegsayaNξsaya,s.t.ysaya(j=1Nαjyjκ(xsaya,xj)+b)1-ξsaya,saya=1...Nξsaya0,saya=1...N

di mana dan mewakili contoh pelatihan positif / negatif. Dalam SVM standar kita hanya memiliki nilai tunggal , sedangkan sekarang kita memiliki 2. Denda kesalahan klasifikasi untuk kelas minoritas dipilih untuk menjadi lebih besar daripada kelas mayoritas.PNC

Pendekatan ini diperkenalkan cukup awal, disebutkan misalnya dalam makalah 1997:

Edgar Osuna, Robert Freund, dan Federico Girosi. Dukungan Mesin Vektor: Pelatihan dan Aplikasi. Laporan Teknis AIM-1602, 1997. ( pdf )

Pada dasarnya ini setara dengan oversampling kelas minoritas: misalnya jika ini sepenuhnya setara dengan pelatihan SVM standar dengan setelah memasukkan setiap positif dua kali dalam set pelatihan.ChalHais=2CnegC=Cneg

Marc Claesen
sumber
Keren Terimakasih! Selain itu, apakah regresi logistik, navie bayes, pohon keputusan menangani masalah ketidakseimbangan tersebut?
RockTheStar
regresi logistik tentu saja, Anda hanya mempertimbangkan kemungkinan pola positif dan pola negatif berbeda.
Dikran Marsupial
Regresi logistik dan SVM menyediakan cara intrinsik. Saya tidak hafal untuk semua metode lain, tetapi terlalu banyak kelas minoritas bekerja untuk hampir semua metode (meskipun itu tidak benar-benar elegan secara matematis).
Marc Claesen
1
Keren, terima kasih @Dikran. Marc: ya, pekerjaan oversampling sederhana pada umumnya. Namun, ini tergantung situasi. Yang terjadi adalah Anda menambahkan "bobot" ke data minoritas saat Anda melakukan oversampling terhadap minoritas (mereplikasi titik minoritas berulang-ulang di lokasi yang sama). Ini pada dasarnya membantu meningkatkan "pertimbangan" contoh minoritas. Namun, batas keputusan klasifikasi kemudian akan menjadi cukup tegang (tidak cukup umum), yaitu terjadi over-fitting). Oleh karena itu, kami mungkin harus mempertimbangkan beberapa teknik pengambilan sampel probablistik, seperti SMOTE.
RockTheStar
10

SVM mampu menangani dataset dengan frekuensi kelas yang tidak seimbang. Banyak implementasi memungkinkan Anda untuk memiliki nilai yang berbeda untuk slack penalti (C) untuk kelas positif dan negatif (yang secara asimtotik setara dengan mengubah frekuensi kelas). Saya akan merekomendasikan pengaturan nilai-nilai parameter ini untuk memaksimalkan kinerja generalisasi pada set tes di mana frekuensi kelas adalah yang Anda harapkan untuk dilihat dalam penggunaan operasional.

Saya adalah salah satu dari banyak orang yang menulis makalah tentang ini, ini milik saya , saya akan melihat apakah saya dapat menemukan sesuatu yang lebih baru / lebih baik. Coba Veropoulos, Campbell dan Cristianini (1999).

Dikran Marsupial
sumber
Dikran mengapa hanya setara asimptotik ... pasti itu persis sama dengan membobot kesalahan kelas yang berbeda secara berbeda?
seanv507
Persis sama dengan pembobotan kesalahan kelas, tapi itu tidak sama dengan resampling data (untuk awal bobotnya terus menerus variabel, tetapi datanya terpisah). Ini adalah salah satu hasil ekspektasi asimptotik (yang tampaknya tidak terlalu berguna di sebagian besar keadaan).
Dikran Marsupial