Ada banyak utas di CrossValidated pada topik pemilihan model dan validasi silang. Berikut ini beberapa di antaranya:
- Validasi silang internal vs eksternal dan pemilihan model
- @ DikranMarsupial ini jawaban atas untuk seleksi Fitur dan cross-validasi
Namun, jawaban atas utas tersebut cukup umum dan sebagian besar menyoroti masalah dengan pendekatan khusus untuk lintas validasi dan pemilihan model.
Untuk membuat hal-hal sekonkret mungkin , katakan misalnya kita bekerja dengan SVM dengan kernel RBF: , dan itu Saya memiliki dataset fitur X dan label y , dan yang saya inginkan
- Temukan nilai terbaik dari model saya ( dan )
- Latih SVM dengan dataset saya (untuk penerapan akhir)
- Perkirakan kesalahan generalisasi dan ketidakpastian (varians) di sekitar kesalahan ini
Untuk melakukannya, saya pribadi akan melakukan pencarian kotak, misalnya saya mencoba setiap kombinasi yang mungkin dari dan . Untuk mempermudah, kita dapat mengasumsikan rentang berikut:
Lebih khusus lagi, menggunakan dataset lengkap saya, saya melakukan hal berikut:
- Untuk setiap pasangan ( , ), saya melakukan iterasi berulang (mis. 100 pengulangan acak) dari validasi silang lipat (misalnya ), pada dataset saya, yaitu saya melatih SVM saya pada lipatan dan mengevaluasi kesalahan di flip kiri, iterasi semua lipatanSecara keseluruhan, saya mengumpulkan 100 x 10 = 1000 kesalahan tes.
- Untuk setiap pasangan ( , ) tersebut, saya menghitung nilai mean dan varians dari 1000 kesalahan pengujian .
Sekarang saya ingin memilih model terbaik (parameter kernel terbaik) yang akan saya gunakan untuk melatih SVM akhir saya pada dataset lengkap. Pemahaman saya adalah bahwa memilih model yang memiliki mean kesalahan terendah dan varians dan σ M akan menjadi pilihan yang tepat, dan bahwa model ini μ M adalah σ M adalah perkiraan terbaik saya tentang bias kesalahan generalisasi dan varians model ketika pelatihan dengan dataset lengkap.
TETAPI, setelah membaca jawaban di utas-utas di atas, saya mendapat kesan bahwa metode ini untuk memilih SVM terbaik untuk penyebaran dan / atau untuk memperkirakan kesalahannya (kinerja generalisasi), cacat, dan bahwa ada cara yang lebih baik untuk memilih SVM terbaik dan melaporkan kesalahannya. Jika demikian, apakah mereka? Saya mencari jawaban yang konkret.
Berpegang teguh pada masalah ini, seberapa spesifik saya bisa memilih model terbaik dan memperkirakan kesalahan generalisasi dengan tepat ?