Hubungan antara jumlah vektor dukungan dan jumlah fitur


12

Saya menjalankan SVM terhadap kumpulan data yang diberikan, dan melakukan pengamatan berikut: Jika saya mengubah jumlah fitur untuk membangun classifier, jumlah vektor dukungan yang dihasilkan juga akan berubah.

Saya ingin tahu bagaimana menjelaskan skenario semacam ini.


Apa jenis dan gaya fitur-fitur tambahan itu? Di mana mereka terlihat seperti varian dari fitur yang ada, atau beberapa fitur baru yang Anda pikir mungkin memiliki kekuatan penyelesaian ekstra?
Philip Oakley

Ini adalah masalah klasifikasi dokumen, dan fitur tambahan hanyalah kata-kata. Saya menggunakan unigram untuk membangun ruang fitur.
user3269

Diberikan jawaban @ marc, yang melakukan perubahan, apakah jumlah vektor naik dengan jumlah fitur, atau sebaliknya.
Philip Oakley

@Phillip, tanggapan asli saya salah. Saya pikir jawaban yang diedit akurat sekarang.
Marc Shivers

Jawaban:


13

Jika Anda melihat masalah pengoptimalan yang dipecahkan SVM:

minw,ξ,b{12w2+Ci=1nξi}

st untuk semuai = 1 , nyi(wxib)1ξi,    ξi0,i=1,n

vektor dukungan adalah mereka mana yang sesuai . Dengan kata lain, mereka adalah titik data yang salah diklasifikasikan, atau dekat dengan batas.ξ i > 0xiξi>0

Sekarang mari kita bandingkan solusi untuk masalah ini ketika Anda memiliki set lengkap fitur, dengan kasus di mana Anda membuang beberapa fitur. Membuang fitur secara fungsional setara dengan menjaga fitur, tetapi menambahkan contraint untuk fitur yang ingin kita buang. jwj=0j

Ketika Anda membandingkan dua masalah pengoptimalan ini, dan mengerjakan matematika, ternyata tidak ada hubungan yang keras antara jumlah fitur dan jumlah vektor dukungan. Itu bisa jalan baik.

Sangat berguna untuk memikirkan kasus sederhana. Bayangkan case 2-dim di mana fitur negatif dan positif Anda berkerumun di sekitar (-1, -1) dan (1,1), masing-masing, dan dapat dipisahkan dengan hyperplane pemisah diagonal dengan 3 vektor dukungan. Sekarang bayangkan menjatuhkan fitur sumbu y, sehingga data Anda sekarang diproyeksikan pada sumbu x. Jika data masih dapat dipisahkan, katakan pada x = 0, Anda mungkin akan dibiarkan dengan hanya 2 vektor dukungan, satu di setiap sisi, jadi menambahkan fitur-y akan meningkatkan jumlah vektor dukungan. Namun, jika data tidak lagi dapat dipisahkan, Anda akan mendapatkan setidaknya satu vektor dukungan untuk setiap titik yang berada di sisi yang salah dari x = 0, dalam hal ini menambahkan fitur y akan mengurangi jumlah vektor dukungan.

Jadi, jika intuisi ini benar, jika Anda bekerja di ruang fitur berdimensi sangat tinggi, atau menggunakan kernel yang memetakan ke ruang fitur berdimensi tinggi, maka data Anda cenderung terpisah, sehingga menambahkan fitur akan cenderung untuk hanya menambahkan vektor dukungan lain. Sedangkan jika data Anda saat ini tidak dapat dipisahkan, dan Anda menambahkan fitur yang secara signifikan meningkatkan keterpisahan, maka Anda cenderung melihat penurunan jumlah vektor dukungan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.