Mengapa penskalaan penting untuk klasifikasi linear SVM?

15

Ketika melakukan klasifikasi SVM linier, seringkali membantu untuk menormalkan data pelatihan, misalnya dengan mengurangi rata-rata dan membaginya dengan standar deviasi, dan kemudian skala data uji dengan rata-rata dan standar deviasi data pelatihan. Mengapa proses ini mengubah secara dramatis kinerja klasifikasi?

Qinghua
sumber
Terima kasih, juampa! Namun, saya masih belum begitu jelas mengapa set tes perlu ditingkatkan dengan mean dan std set pelatihan bukan sendiri? Dalam beberapa kasus, yang terakhir tampak berkinerja baik dengan baik atau bahkan lebih baik ketika dua kelas sampel seimbang dalam set tes.
Qinghua
1
karena dengan begitu kamu tidak konsisten. Anda menguji pada data yang berbeda. Bayangkan Anda mengambil sampel dari Gaussian N (mu, sigma). Anda dilatih dengan N (0,1) (setelah pemusatan dan penskalaan) tetapi diuji dengan N (mu, sigma)
jpmuc

Jawaban:

12

Saya pikir itu bisa dibuat lebih jelas melalui contoh. Katakanlah Anda memiliki dua vektor input: X1 dan X2. dan katakanlah X1 memiliki rentang (0,1 hingga 0,8) dan X2 memiliki kisaran (3000 hingga 50000). Sekarang classifier SVM Anda akan menjadi batas linear yang terletak di bidang X1-X2. Klaim saya adalah bahwa kemiringan batas keputusan linier tidak harus bergantung pada kisaran X1 dan X2, tetapi pada distribusi poin.

Sekarang mari kita membuat prediksi pada titik (0,1, 4000) dan (0,8, 4000). Hampir tidak ada perbedaan dalam nilai fungsi, sehingga membuat SVM kurang akurat karena akan memiliki sensitivitas yang lebih rendah terhadap titik-titik dalam arah X1.

Vineeth
sumber
7

SVM mencoba memaksimalkan jarak antara bidang pemisah dan vektor pendukung. Jika satu fitur (yaitu satu dimensi dalam ruang ini) memiliki nilai yang sangat besar, itu akan mendominasi fitur lain saat menghitung jarak. Jika Anda mengubah skala semua fitur (mis. Ke [0, 1]), semuanya memiliki pengaruh yang sama pada metrik jarak.

jrieke
sumber