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.

pengguna3269
sumber
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.

Marc Shivers
sumber