Saya memiliki dataset 120 sampel dalam pengaturan validasi silang 10 kali lipat. Saat ini, saya memilih data pelatihan dari ketidaksepakatan pertama dan melakukan validasi silang 5 kali lipat untuk memilih nilai-nilai gamma dan C dengan pencarian kotak. Saya menggunakan SVM dengan kernel RBF. Karena saya sedang melakukan 10 10 validasi silang untuk melaporkan ketepatan, ingat, apakah saya melakukan pencarian kisi-kisi ini dalam data pelatihan setiap ketidaksepakatan (ada 10 penundaan, masing-masing memiliki 10% tes dan 90% data pelatihan)? Bukankah itu terlalu memakan waktu?
Jika saya menggunakan gamma dan C dari holdout pertama dan menggunakannya untuk sisa 9 holdouts dari validasi silang k-fold, apakah itu pelanggaran karena saya akan menggunakan data kereta untuk mendapatkan gamma dan C dan lagi menggunakan bagian dari data kereta sebagai ujian dalam ketidaksepakatan kedua?
sumber
Jawaban:
Ya, ini akan menjadi pelanggaran karena data uji untuk lipatan 2-10 dari validasi silang luar akan menjadi bagian dari data pelatihan untuk lipatan 1 yang digunakan untuk menentukan nilai-nilai kernel dan parameter regularisasi. Ini berarti bahwa beberapa informasi tentang data uji berpotensi bocor ke dalam desain model, yang berpotensi memberikan bias optimis terhadap evaluasi kinerja, yang paling optimis untuk model yang sangat sensitif terhadap pengaturan parameter-hiper (yaitu itu paling tegas mendukung model dengan fitur yang tidak diinginkan).
Bias ini cenderung paling kuat untuk dataset kecil, seperti yang ini, karena varian dari kriteria pemilihan model adalah terbesar untuk dataset kecil, yang mendorong over-fitting kriteria pemilihan model, yang berarti lebih banyak informasi tentang data uji dapat bocor melalui.
Saya menulis makalah tentang ini satu atau dua tahun yang lalu karena saya agak terkejut dengan besarnya bias penyimpangan dari validasi silang bersarang penuh yang dapat diperkenalkan, yang dapat dengan mudah membanjiri perbedaan kinerja antara sistem pengklasifikasi. Makalah ini "Pada Over-fitting dalam Pemilihan Model dan Seleksi selanjutnya Bias dalam Evaluasi Kinerja" Gavin C. Cawley, Nicola LC Talbot; JMLR 11 (Jul): 2079−2107, 2010.
Pada dasarnya menyetel parameter-hiper harus dianggap sebagai bagian integral dari pemasangan model, jadi setiap kali Anda melatih SVM pada sampel data baru, pisahkan parameter-hiper untuk sampel tersebut secara independen. Jika Anda mengikuti aturan itu, Anda mungkin tidak bisa salah. Sebaiknya biaya komputasi untuk mendapatkan estimasi kinerja yang tidak memihak, karena jika tidak, Anda berisiko mengambil kesimpulan yang salah dari eksperimen Anda.
sumber
Setelah melakukan pencarian kisi-kisi untuk setiap model pengganti, Anda dapat dan harus memeriksa beberapa hal:
Jika validasi silang bagian dalam (yaitu penyetelan) terlihat jauh lebih baik daripada bagian luar (validasi model akhir), maka Anda juga berada dalam masalah: Anda overfitting. Ada risiko besar, bahwa parameter yang disetel tidak optimal sama sekali. Namun, jika validasi silang luar dilakukan dengan benar (semua set tes benar-benar independen dari masing-masing model pengganti), maka setidaknya Anda masih memiliki perkiraan kinerja model yang tidak bias (!). Tetapi Anda tidak dapat memastikan bahwa itu optimal.
Ada banyak hal untuk dikatakan tentang overfitting dengan pemilihan model. Namun, perlu diingat bahwa varians dan bias optimis dapat benar-benar menyakitkan
Jika Anda tertarik pada sebuah contoh dan Anda dapat membaca bahasa Jerman, saya dapat membuat tesis Diplom saya online.
Dalam pengalaman saya, menyetel hyperparameters adalah ide yang sangat efektif untuk overfitting ...
Sekarang, jika Anda menyadari bahwa Anda overfitting, Anda memiliki dua pilihan:
Sebagai alternatif untuk menyetel hiper-parameter untuk setiap set pelatihan, Anda bisa menentukan sebelumnya (hiper) parameter (yaitu memperbaikinya sebelumnya). Saya melakukan itu sebanyak mungkin untuk model saya karena saya biasanya memiliki kasus lebih sedikit daripada yang Anda miliki, lihat di bawah.
Namun, perbaikan ini harus benar-benar dan jujur dilakukan sebelumnya: misalnya saya bertanya kepada rekan kerja untuk parameter yang dioptimalkan pada kumpulan data yang serupa (percobaan independen) atau melakukan pra-percobaan, termasuk pencarian grid pada parameter. Eksperimen pertama itu kemudian digunakan untuk memperbaiki beberapa parameter eksperimental serta parameter model untuk eksperimen nyata dan analisis data. Lihat di bawah untuk penjelasan lebih lanjut.
Tentu saja dimungkinkan untuk melakukan pengujian yang tepat pada model yang dioptimalkan secara otomatis (validasi ganda atau bertumpuk), tetapi ukuran sampel Anda mungkin tidak memungkinkan pemisahan data dua kali .
Dalam situasi itu, IMHO jauh lebih baik untuk melaporkan perkiraan jujur untuk model yang dibangun menggunakan pengalaman profesional tentang cara memilih parameter pemodelan daripada melaporkan perkiraan terlalu optimistik pada beberapa jenis model yang dioptimalkan secara otomatis.
Pandangan lain tentang situasi ini adalah Anda harus menukar
Beberapa pemikiran serupa tentang pertanyaan serupa: /stats//a/27761/4598
Tentang memperbaiki parameter dan komentar Dikran Marsupial
Saya menggunakan istilah hyper-parameter seperti Dikran Marsupial menggunakannya dalam makalahnya (tautan dalam jawabannya)
Saya bekerja dengan data spektroskopi. Ini adalah semacam pengukuran di mana analisis dan pemodelan data sering kali mencakup sedikit pra-pemrosesan. Ini dapat dilihat sebagai parameter-hiper (misalnya urutan polinomial apa yang harus digunakan untuk garis dasar? Saluran pengukuran apa yang harus dimasukkan?). Ada keputusan lain yang lebih dekat dengan parameter svm Anda, misalnya berapa banyak komponen utama yang akan digunakan jika PCA dilakukan untuk pengurangan dimensi sebelum model "nyata" dilatih? Dan terkadang saya juga menggunakan klasifikasi SVM, jadi saya harus memutuskan parameter SVM.
Sekarang, IMHO cara terbaik untuk memperbaiki hiper-parameter adalah jika Anda memiliki alasan yang berasal dari aplikasi. Misalnya saya biasanya memutuskan jenis baseline apa yang akan digunakan oleh alasan fisik / kimia / biologis (yaitu pengetahuan tentang spesimen dan perilaku spektroskopi yang mengikuti dari itu). Namun, saya tidak mengetahui argumentasi seperti itu yang membantu dengan parameter SVM ...
Kasus pra-percobaan yang saya sebutkan di atas terlihat sebagai berikut:
Spektrum dianalisis, iterasi ulang lintas ganda validasi SVM dijalankan (menghabiskan satu atau dua malam di server komputasi).
Kesimpulan saya adalah: sementara saya tidak dapat memastikan bahwa parameter hiper optimal, validasi lintas luar memberi saya perkiraan yang tepat dari kinerja model pengganti.
Selama bagian eksperimental, kami memutuskan beberapa perubahan dalam set-up eksperimental (hal-hal yang tidak mempengaruhi sinyal ke kebisingan data, tetapi itu selangkah lebih maju dalam otomatisasi instrumen)
Kami meningkatkan pengaturan eksperimental dan memperoleh spektrum baru. Seperti sel, mereka harus tumbuh segar. Yaitu set data baru bahkan batch budaya independen.
Sekarang saya menghadapi keputusan: Haruskah saya "melewatkan" validasi salib batin dan hanya pergi dengan parameter-hyper yang saya tentukan dengan data lama?
Jadi dalam hal itu, saya memutuskan untuk menggunakan parameter tetap (dengan pengalaman pada data yang sama dan mengetahui bahwa di masa depan kita harus melakukan "pekerjaan rumah" kita termasuk antara lain memeriksa ulang keputusan ini dengan data besar).
Perhatikan bahwa yang penting adalah bahwa saya melewatkan bagian dalam ( validasi tala lintas), bukan bagian luar. Dengan parameter-tetap hiper saya mendapatkan estimasi yang tidak bias dari kinerja model yang mungkin suboptimal. Memang benar bahwa perkiraan ini tunduk pada varians tinggi, tetapi varians ini pada dasarnya sama apakah saya melakukan penyetelan dalam atau tidak.
Melewati vaidasi lintas luar Saya akan mendapatkan estimasi bias yang optimis dari model yang dicari - yang tergantung pada aplikasi dan data dapat menjadi tidak berharga (jika sangat optimis) dan bias optimis mungkin tidak dapat diterima.
sumber
Kuncinya saya pikir adalah mencari beberapa kehalusan di permukaan sekitar minimum lokal (atau setiap proyeksi 1-redup) dan tidak hanya mengambil minimum global.
sumber