Secara umum, jika kita memiliki dataset besar, kita dapat membaginya menjadi (1) pelatihan, (2) validasi, dan (3) tes. Kami menggunakan validasi untuk mengidentifikasi hyperparameter terbaik dalam validasi silang (misalnya, C dalam SVM) dan kemudian kami melatih model menggunakan hyperparameter terbaik dengan set pelatihan dan menerapkan model yang terlatih untuk menguji untuk mendapatkan kinerja.
Jika kami memiliki dataset kecil, kami tidak dapat membuat set pelatihan dan tes (tidak cukup sampel). Oleh karena itu, kami akan melakukan validasi silang (k-fold, leave-one-out, dll) untuk mengevaluasi kinerja model.
Saya telah melihat validasi silang bersarang (apakah berulang atau bertingkat) telah digunakan dalam pengaturan dataset kecil, yaitu, untuk menghasilkan kinerja model umum sambil mengoptimalkan pemilihan parameter. Pertanyaan saya adalah, bagaimana saya bisa mendapatkan hiperparameter terbaik dalam validasi silang bersarang (berulang / tidak diulang)? Saya tertarik melakukan ini di scikit-belajar, jika memungkinkan. Saya agak bingung bagaimana melakukannya.
Saya telah membaca beberapa sumber tetapi tidak ada yang memberi saya jawaban pasti untuk pertanyaan ini:
Validasi silang bersarang untuk pemilihan model
Validasi silang bersarang dan pemilihan fitur: kapan harus melakukan pemilihan fitur?
Jawaban:
Gambaran
Ketika @RockTheStar menyimpulkan dengan benar dalam komentar, validasi silang bersarang hanya digunakan untuk mengakses estimasi kinerja model. Terpisah dari itu, untuk menemukan hyperparameters terbaik kita perlu melakukan penyetelan sederhana dengan validasi silang pada seluruh data.
Secara detail:
Tuning dan validasi (loop resampling dalam dan luar)
Di loop dalam Anda melakukan penyetelan hyperparameter, model dilatih dalam data pelatihan dan divalidasi pada data validasi. Anda menemukan parameter optimal dan melatih model Anda pada seluruh data loop dalam . Meskipun dilatih untuk mengoptimalkan kinerja pada data validasi, evaluasi ini bias.
Jadi model ini diuji dengan data uji sehingga mudah-mudahan tidak ada bias, memberikan Anda perkiraan kinerja.
Model terakhir
Sekarang setelah Anda mengetahui kinerja yang diharapkan dari model Anda, Anda harus melatihnya dengan semua data Anda. Tapi model kami bukan hanya algoritme, tetapi seluruh proses pembangunan model!
Jadi lakukan penyetelan hyperparameter dengan semua data Anda dan spesifikasi yang sama dari loop dalam. Dengan hyperparameter terbaik, latih model akhir Anda dengan seluruh data. Kinerja yang diharapkan dari model akhir ini adalah apa yang Anda evaluasi dengan validasi bersarang sebelumnya.
Untuk mengulangi, hyperparmeters dari model akhir adalah apa yang Anda harapkan akan memberi Anda kinerja yang Anda temukan pada langkah Tuning dan validasi .
sumber