Bagaimana cara seseorang menerapkan validasi silang dalam konteks pemilihan parameter pembelajaran untuk mesin vektor pendukung?


9

Paket libsvm yang luar biasa menyediakan antarmuka python dan file "easy.py" yang secara otomatis mencari parameter pembelajaran (biaya & gamma) yang memaksimalkan akurasi classifier. Dalam satu set parameter pembelajaran kandidat tertentu, keakuratan dioperasionalkan dengan validasi silang, tetapi saya merasa seperti ini merusak tujuan validasi silang. Yaitu, sejauh parameter pembelajaran itu sendiri dapat dipilih dengan cara yang dapat menyebabkan data tidak sesuai, saya merasa pendekatan yang lebih tepat adalah dengan menerapkan validasi silang pada tingkat pencarian itu sendiri: melakukan pencarian pada set data pelatihan dan kemudian mengevaluasi akurasi tertinggi SVM yang dihasilkan dari parameter pembelajaran yang akhirnya dipilih oleh evaluasi dalam set data pengujian terpisah. Atau saya kehilangan sesuatu di sini?

Jawaban:


10

Jika Anda mempelajari parameter-hiper dalam data pelatihan lengkap dan kemudian melakukan validasi silang, Anda akan mendapatkan estimasi kinerja yang bias secara optimis, karena data uji di setiap lipatan akan telah digunakan dalam pengaturan parameter-hiper, sehingga hiper-parameter parameter yang dipilih dipilih sebagian karena sesuai dengan data dalam set tes. Bias optimis yang diperkenalkan dengan cara ini bisa sangat besar. Lihat Cawley dan Talbot, "Pada Over-fitting dalam Pemilihan Model dan Bias Seleksi Selanjutnya dalam Evaluasi Kinerja", JMLR 11 (Jul): 2079−2107, 2010.(Khususnya bagian 5.3). Hal terbaik untuk dilakukan adalah validasi silang bersarang. Ide dasarnya adalah bahwa Anda memvalidasi silang seluruh metode yang digunakan untuk menghasilkan model, jadi perlakukan pemilihan model (memilih parameter-hiper) hanya sebagai bagian dari prosedur pemasangan model (di mana parameter ditentukan) dan Anda tidak dapat pergi salah terlalu jauh.

Jika Anda menggunakan validasi silang pada set pelatihan untuk menentukan hiper-parameter dan kemudian mengevaluasi kinerja model yang dilatih menggunakan parameter-parameter pada set pelatihan keseluruhan, menggunakan set tes terpisah, itu juga baik-baik saja (asalkan Anda memiliki cukup data untuk pemasangan model yang andal dan memperkirakan kinerja menggunakan partisi disjoint).


Referensi yang bagus!
Andrew

Di paragraf kedua, bagaimana Anda memasukkan melakukan pemilihan fitur juga? Apakah boleh untuk: i) melakukan optimasi parameter hiper seperti yang Anda katakan di atas (mendapatkan parameter hiper optimal) ii) menjalankan pemilihan fitur di putaran lain validasi silang untuk mendapatkan satu set prediktor teratas (pemilihan fitur dijalankan pada data pelatihan yang dipartisi menjadi satu set sublatih dan validasi menggunakan metode resampling apa pun yang digunakan dalam optimasi parameter hiper). iii) melatih model dengan parameter hiper atas dan prediktor teratas yang ditetapkan pada data pelatihan lengkap. Tes pada set tes terpisah.
sma

untuk menjadi sedikit lebih jelas tentang ii) menjalankan pemilihan fitur di putaran lain validasi silang untuk mendapatkan satu set prediktor teratas (data pelatihan dibagi menjadi sublatih dan validasi ditetapkan melalui metode resampling yang digunakan dalam optimasi parameter hiper. kemudian pemilihan fitur dijalankan pada subtraining data).
sma

Atau, dapatkah seseorang melakukan pemilihan fitur pertama melalui validasi silang untuk mendapatkan set fitur teratas, kemudian melakukan penyetelan parameter hiper model apa pun yang menarik menggunakan set fitur top (seperti di atas dalam cross validation)? Kemudian latih model dengan parameter hiper optimalnya pada data pelatihan lengkap dengan hanya set fitur top yang telah ditentukan, dan uji pada set tes terpisah?
sma

0

Saya tidak berpikir validasi silang disalahgunakan dalam kasus LIBSVM karena dilakukan pada tingkat data pengujian. Yang dilakukannya hanyalah validasi silang k-fold dan cari parameter terbaik untuk kernel RBF. Biarkan saya tahu Anda tidak setuju.


Pemilihan parameter-hiper tidak boleh melibatkan data uji dengan cara apa pun, karena ini akan mengarah pada perkiraan kinerja yang bias secara optimis. Pada dasarnya memilih parameter-hiper harus diperlakukan sebagai bagian integral dari pemasangan SVM, sehingga prosedur pengujian perlu juga menguji kesalahan karena pemilihan parameter-hiper, lihat makalah saya yang saya rujuk dalam jawaban saya atas pertanyaan. (ini adalah akses terbuka).
Dikran Marsupial
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.