Pilihan fitur untuk Support Vector Machines

9

Pertanyaan saya tiga kali lipat

Dalam konteks mesin dukungan vektor "Kernel"

  1. Apakah pemilihan variabel / fitur diinginkan - terutama karena kita mengatur parameter C untuk mencegah overfitting dan motif utama di balik memperkenalkan kernel ke SVM adalah untuk meningkatkan dimensi masalah, dalam kasus seperti itu mengurangi dimensi dengan pengurangan parameter tampaknya kontra-intuitif
  2. Jika jawaban untuk pertanyaan pertama adalah "TIDAK", maka, pada kondisi apa jawaban akan berubah yang harus diingat?
  3. Apakah ada metode bagus yang telah dicoba untuk membawa pengurangan fitur untuk SVM di scikit-learn library python - Saya telah mencoba metode SelectFpr dan mencari orang-orang dengan pengalaman dengan metode yang berbeda.
Nitin Srivastava
sumber
1
Pemilihan fitur akan selalu membantu kecuali jika fitur awal Anda terjadi pada kualitas super tinggi untuk memulai. Sklearn menawarkan banyak pustaka pemilihan fitur yang berbeda ( scikit-learn.org/stable/modules/feature_selection.html ) Saya sebagian dari RFE sendiri.
David
1
Anda tidak menyebutkan konteks Anda - perhatikan bahwa jika itu dalam konteks bisnis, setiap fitur yang tersisa dalam model akan memerlukan pemeliharaan pada tingkat tertentu - ada biaya uang literal yang terlibat jika Anda memiliki lebih banyak variabel, dalam arti bahwa itu membutuhkan, misalnya, lebih banyak upaya pengumpulan data, waktu DBA dan waktu pemrograman. Pertimbangan ini jelas tidak berlaku jika itu untuk perusahaan Kaggle atau sejenisnya, dan jika menggunakan 200 tambahan fitur yang tersedia dalam dataset memberi Anda peningkatan 0,01% dalam kinerja yang Anda hasilkan.
Robert de Graaf

Jawaban:

3

Secara pribadi, saya suka membagi pemilihan fitur menjadi dua:

  • pemilihan fitur tanpa pengawasan
  • pemilihan fitur yang diawasi

Pemilihan fitur yang tidak diawasi adalah hal-hal seperti pengelompokan atau PCA di mana Anda memilih rentang fitur yang paling tidak berlebihan (atau membuat fitur dengan sedikit redundansi). Pemilihan fitur yang diawasi adalah hal-hal seperti Lasso di mana Anda memilih fitur dengan daya prediksi paling besar.

Saya pribadi biasanya lebih suka apa yang saya sebut pemilihan fitur yang dilindungi. Jadi, ketika menggunakan regresi linier, saya akan memilih fitur berdasarkan Lasso. Metode serupa ada untuk menginduksi sparseness dalam jaringan saraf.

Tapi memang, saya tidak melihat bagaimana saya akan melakukan itu dalam metode menggunakan kernel, jadi Anda mungkin lebih baik menggunakan apa yang saya sebut pemilihan fitur yang tidak diawasi.

EDIT: Anda juga bertanya tentang regularisasi. Saya melihat regularisasi sebagai membantu sebagian besar karena kami bekerja dengan sampel yang terbatas, sehingga pelatihan dan distribusi pengujian akan selalu agak berbeda, dan Anda ingin model Anda tidak sesuai. Saya tidak yakin itu menghilangkan keharusan untuk menghindari memilih fitur (jika Anda memang memiliki terlalu banyak). Saya pikir memilih fitur (atau membuat subset yang lebih kecil) membantu dengan membuat fitur yang Anda miliki lebih kuat dan menghindari model untuk belajar dari korelasi palsu. Jadi, regularisasi memang membantu, tetapi tidak yakin bahwa itu adalah alternatif yang lengkap. Tapi saya belum cukup memikirkan hal ini.

Ricardo Cruz
sumber