Saat menggunakan SVM, kita perlu memilih kernel.
Saya bertanya-tanya bagaimana cara memilih kernel. Adakah kriteria pemilihan kernel?
Saat menggunakan SVM, kita perlu memilih kernel.
Saya bertanya-tanya bagaimana cara memilih kernel. Adakah kriteria pemilihan kernel?
Jawaban:
Kernel secara efektif merupakan ukuran kesamaan, jadi memilih kernel menurut pengetahuan invarian sebelumnya seperti yang disarankan oleh Robin (+1) adalah ide yang bagus.
Dengan tidak adanya pengetahuan para ahli, kernel Radial Basis Function menjadi kernel default yang baik (setelah Anda memantapkannya, ini merupakan masalah yang membutuhkan model non-linear).
Pilihan parameter kernel dan kernel / regularisasi dapat diotomatisasi dengan mengoptimalkan pemilihan model berbasis lintas-valdiasi (atau menggunakan batas radius atau batas span). Hal paling sederhana yang harus dilakukan adalah meminimalkan kriteria pemilihan model kontinu menggunakan metode simpleks Nelder-Mead, yang tidak memerlukan perhitungan gradien dan bekerja dengan baik untuk sejumlah parameter hiper yang masuk akal. Jika Anda memiliki lebih dari beberapa hiper-parameter untuk disetel, pemilihan model otomatis cenderung mengakibatkan pemasangan berlebihan yang parah, karena varian kriteria pemilihan model. Dimungkinkan untuk menggunakan optimasi berbasis gradien, tetapi keuntungan kinerja biasanya tidak sepadan dengan upaya pengkodean itu).
Pemilihan kernel dan kernel / parameter regularisasi secara otomatis merupakan masalah yang rumit, karena sangat mudah untuk menyesuaikan kriteria pemilihan model (biasanya berdasarkan validasi silang), dan Anda dapat berakhir dengan model yang lebih buruk daripada yang Anda mulai. Pemilihan model otomatis juga dapat membuat bias penilaian kinerja, jadi pastikan evaluasi kinerja Anda mengevaluasi seluruh proses pemasangan model (pelatihan dan pemilihan model), untuk perincian, lihat
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. (pdf)
dan
GC Cawley dan NLC Talbot, Over-fitting dalam pemilihan model dan bias seleksi selanjutnya dalam evaluasi kinerja, Journal of Machine Learning Research, vol. 11, hlm. 2079-2107, Juli 2010. (pdf)
Jika Anda tidak yakin apa yang terbaik, Anda dapat menggunakan teknik seleksi otomatis (mis. Validasi silang, ...). Dalam hal ini Anda bahkan dapat menggunakan kombinasi dari pengklasifikasi (jika masalah Anda adalah klasifikasi) yang diperoleh dengan kernel yang berbeda.
Namun , "keuntungan" dari bekerja dengan kernel adalah Anda mengubah geometri "Euclidean" yang biasa sehingga cocok dengan masalah Anda sendiri. Anda juga harus benar-benar mencoba memahami apa yang menjadi minat kernel untuk masalah Anda, apa yang khusus untuk geometri masalah Anda . Ini dapat mencakup:
Jika Anda tahu bahwa pemisah linear akan menjadi yang baik, maka Anda dapat menggunakan Kernel yang memberikan fungsi affine (yaitu ). Jika Anda berpikir batas halus jauh dalam semangat KNN halus akan lebih baik, maka Anda dapat mengambil kernel gaussian ...
Saya selalu merasa bahwa setiap pemilihan parameter hiper untuk SVM dilakukan melalui validasi silang dalam kombinasi dengan pencarian grid.
Secara umum, kernel RBF adalah pilihan pertama yang masuk akal. Selanjutnya, kernel linier adalah kasus khusus dari RBF, Secara khusus, ketika jumlah fitur sangat besar, seseorang hanya dapat menggunakan kernel linear.