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.
machine-learning
classification
svm
kernel-trick
pengguna3269
sumber
sumber
Jawaban:
Jika Anda melihat masalah pengoptimalan yang dipecahkan SVM:
st untuk semuai = 1 , … nyi(w⋅xi−b)≥1−ξi, ξi≥0, 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=0 j
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.
sumber