SVM, Overfitting, kutukan dimensi

37

Dataset saya kecil (120 sampel), namun jumlah fitur besar bervariasi dari (1000-200.000). Meskipun saya sedang melakukan pemilihan fitur untuk memilih subset fitur, itu mungkin masih sesuai.

Pertanyaan pertama saya adalah, bagaimana SVM menangani overfitting, jika sama sekali.

Kedua, ketika saya mempelajari lebih banyak tentang overfitting jika terjadi klasifikasi, saya sampai pada kesimpulan bahwa bahkan set data dengan sejumlah kecil fitur dapat disesuaikan. Jika kita tidak memiliki fitur yang berhubungan dengan label kelas, overfitting terjadi. Jadi saya sekarang bertanya-tanya apa gunanya klasifikasi otomatis jika kita tidak dapat menemukan fitur yang tepat untuk label kelas. Dalam hal klasifikasi dokumen, ini berarti secara manual membuat tesaurus kata-kata yang berhubungan dengan label, yang sangat memakan waktu. Saya kira yang ingin saya katakan adalah, tanpa memilih sendiri fitur yang tepat, sangat sulit untuk membangun model umum?

Juga, jika hasil eksperimen tidak menunjukkan bahwa hasilnya rendah / tidak berlebihan, itu menjadi tidak berarti. Apakah ada cara untuk mengukurnya?

pengguna13420
sumber

Jawaban:

41

Dalam praktiknya, alasan SVM cenderung tahan terhadap pemasangan berlebihan, bahkan dalam kasus di mana jumlah atribut lebih besar dari jumlah pengamatan, adalah bahwa SVM menggunakan regularisasi. Kunci untuk menghindari over-fitting terletak pada penyetelan hati-hati dari parameter regularisasi, , dan dalam kasus SVM non-linear, pemilihan kernel dan penyetelan parameter kernel secara cermat.C

SVM adalah implementasi perkiraan dari terikat pada kesalahan generalisasi, yang tergantung pada margin (pada dasarnya jarak dari batas keputusan ke pola terdekat dari masing-masing kelas), tetapi tidak tergantung pada dimensi ruang fitur (itulah sebabnya menggunakan trik kernel untuk memetakan data ke dalam ruang dimensi yang sangat tinggi bukanlah ide yang buruk sepertinya). Jadi pada prinsipnya SVM harus sangat tahan terhadap pemasangan berlebihan, tetapi dalam praktiknya ini tergantung pada pilihan yang cermatC

GC Cawley dan NLC Talbot, Mencegah over-fitting dalam pemilihan model melalui regularisasi Bayesian dari hyper-parameter, Journal of Machine Learning Research, volume 8, halaman 841-861, April 2007. ( www )

dan

GC Cawley dan NLC Talbot, Over-fitting dalam pemilihan model dan bias seleksi selanjutnya dalam evaluasi kinerja, Journal of Machine Learning Research, 2010. Penelitian, vol. 11, hlm. 2079-2107, Juli 2010. ( www )

Kedua makalah tersebut menggunakan regresi ridge kernel, bukan SVM, tetapi masalah yang sama muncul dengan mudah dengan SVM (juga batas yang sama berlaku untuk KRR, jadi tidak ada banyak untuk memilih di antara mereka dalam praktek). Jadi sedikit banyak, SVM tidak benar-benar menyelesaikan masalah over-fitting, mereka hanya mengalihkan masalah dari pemasangan model ke pemilihan model.

Seringkali merupakan godaan untuk membuat hidup sedikit lebih mudah bagi SVM dengan melakukan semacam pemilihan fitur terlebih dahulu. Ini umumnya membuat masalah menjadi lebih buruk, karena tidak seperti SVM, algoritme pemilihan fitur cenderung menunjukkan lebih pas ketika jumlah atribut meningkat. Kecuali Anda ingin tahu mana atribut informatif, biasanya lebih baik untuk melewatkan langkah pemilihan fitur dan hanya menggunakan regularisasi untuk menghindari data yang terlalu pas.

Singkatnya, tidak ada masalah inheren dengan menggunakan SVM (atau model yang diatur lainnya seperti regresi ridge, LARS, Lasso, jaring elastis dll) pada masalah dengan 120 pengamatan dan ribuan atribut, asalkan parameter regularisasi disetel dengan benar .

Dikran Marsupial
sumber
Apakah ada makalah yang menunjukkan metode pemilihan fitur seperti pemeringkatan berdasarkan Information Gain lebih cenderung overfit?
user13420
1
Bukan yang saya tahu, intinya adalah bahwa SVM memiliki beberapa hasil teoritis yang menunjukkan bahwa mereka tahan terhadap pemasangan berlebihan karena jumlah atribut, tetapi metode pemilihan fitur bahkan tidak memilikinya. FWIW, monograf oleh Miller pada "subset selection in regression" menyarankan untuk menggunakan metode regularisasi jika hanya kinerja prediktif yang diperlukan. Ada beberapa tantangan terbuka pada pemilihan fitur, yang menunjukkan bahwa regularisasi cenderung mengungguli pemilihan fitur (lihat nipsfsc.ecs.soton.ac.uk dan causality.inf.ethz.ch/challenge.php ).
Dikran Marsupial
Seperti yang dinyatakan dalam paragraf pertama, SVM cenderung tahan terhadap over-fitting, apakah ia menggunakan regularisasi (parameter C) , jadi secara default, svmapakah parameter regularisasi ini C ? Dan saya tidak yakin variabel apa yang dikendalikan oleh C ini , maksud Anda variabel-variabel kendur itu ?
alpukat
10

Saya akan mulai dengan pertanyaan kedua dan terakhir.

Masalah generalisasi jelas penting, karena jika hasil pembelajaran mesin tidak dapat digeneralisasi, maka mereka sama sekali tidak berguna.

Metode untuk memastikan generalisasi berasal dari statistik. Kami biasanya berasumsi, bahwa data dihasilkan dari beberapa distribusi probabilitas yang berasal dari kenyataan. Misalnya jika Anda seorang pria yang lahir pada tahun 2000, maka ada kemungkinan distribusi berapa berat / tinggi / warna mata Anda ketika Anda mencapai 10, yang dihasilkan dari kumpulan gen yang tersedia pada tahun 2000, kemungkinan faktor lingkungan dll. Jika kami memiliki banyak data, kami dapat mengatakan sesuatu tentang distribusi yang mendasarinya, misalnya bahwa dengan probabilitas tinggi mereka bersifat gaussian atau multinomial. Jika kita memiliki gambaran distribusi yang akurat, maka diberikan tinggi, berat, dan warna mata anak berusia 10 tahun pada tahun 2010, kita bisa mendapatkan perkiraan yang baik tentang kemungkinan anak itu menjadi laki-laki. Dan jika probabilitasnya mendekati 0 atau 1 kita bisa mendapatkan gambaran yang baik tentang apa sebenarnya seks anak-anak.

kδk+ϵk+ϵ

Sekarang kembali ke SVM. Jika Anda tidak menggunakan kernel, atau menggunakan kernel yang memetakan ke dalam ruang dimensi terbatas, yang disebut dimensi Vapnik-Chervonenkis yang merupakan ukuran kompleksitas ruang hipotesis, terbatas, dan dengan itu dan contoh pelatihan yang cukup Anda bisa mendapatkannya dengan tinggi probabilitas kesalahan pada set tes tidak akan jauh lebih besar dari kesalahan pada set pelatihan. Jika Anda menggunakan kernel yang memetakan ke dalam ruang fitur dimensi tak terbatas, maka dimensi Vapnik-Chervonenkis juga tak terbatas, dan yang lebih buruk sampel pelatihan saja tidak dapat menjamin generalisasi yang baik, tidak peduli jumlahnya. Untungnya, ukuran margin SVM ternyata menjadi parameter yang bagus untuk memastikan generalisasi. Dengan margin besar dan set latihan, Anda dapat menjamin bahwa kesalahan tes tidak akan jauh lebih besar dari kesalahan pelatihan juga.

sjm.majewski
sumber
7

Setidaknya ada dua sumber utama overfitting yang mungkin ingin Anda pertimbangkan.

  1. Overfitting dari suatu algoritma yang telah disimpulkan terlalu banyak dari sampel pelatihan yang tersedia. Ini paling baik dijaga secara empiris dengan menggunakan ukuran kemampuan generalisasi model. Validasi silang adalah salah satu metode yang populer.

  2. Overfitting karena distribusi yang mendasarinya adalah undersampled. Biasanya ada sedikit yang bisa dilakukan tentang hal ini kecuali Anda dapat mengumpulkan lebih banyak data atau menambah pengetahuan domain tentang masalah ke model Anda.

Dengan 120 sampel dan sejumlah besar fitur, Anda cenderung jatuh 2 dan juga cenderung 1.

Anda dapat melakukan sesuatu tentang 1 dengan pengamatan yang cermat tentang efek kompleksitas model pada kesalahan tes dan pelatihan.

image_doctor
sumber
Tapi, bagaimana kita mendeteksi jika kita kelebihan berat badan? Jika model melakukan cukup baik dalam validasi silang, apakah mereka melakukannya karena sebenarnya bagus atau karena overfitting karena 1 atau 2? Juga dengan ribuan fitur, menganalisis setiap fitur dengan tangan akan merepotkan. Jika tidak mungkin mengidentifikasi overfitting, bagaimana kita bisa mempercayai hasil validasi silang apa pun?
user13420
1
Tanpa data tambahan, sangat sulit untuk mengetahui apakah Anda overfitting terhadap populasi yang kurang terlayani. Anda dapat membagi data menjadi tiga set menggunakan set validasi untuk menyetel model dan kemudian set tes terpisah untuk mengujinya. Pendekatan lain adalah memodifikasi kompleksitas model dan melihat bagaimana akurasi pelatihan dan set tes bervariasi. Peningkatan pada kesalahan set pengujian akan menunjukkan beberapa derajat model overfitting dari data.
image_doctor
Menerapkan uji coba holdout 50/50 yang diulang akan memberi Anda sedikit perasaan jika pelatihan dan set tes seimbang. Mungkin tidak. Beberapa model, seperti KNN, akan mencapai akurasi sempurna pada set pelatihan sehingga secara inheren dilengkapi dalam beberapa hal. Tetapi mereka masih dapat mencapai kinerja yang dapat diterima pada set tes. Jadi seperti banyak dalam pembelajaran mesin, pada akhirnya itu semua tergantung pada spesifikasi data yang tepat.
image_doctor
@image_doctor Bisakah Anda menguraikan "modifikasi kompleksitas model"?
Keith Hughitt