Saya tahu bahwa untuk mengakses kinerja classifier saya harus membagi data menjadi set pelatihan / tes. Tetapi membaca ini :
Ketika mengevaluasi pengaturan yang berbeda ("hyperparameters") untuk estimator, seperti pengaturan C yang harus ditetapkan secara manual untuk SVM, masih ada risiko overfitting pada set tes karena parameter dapat di-tweak sampai estimator berkinerja optimal. Dengan cara ini, pengetahuan tentang set uji dapat "bocor" ke dalam model dan metrik evaluasi tidak lagi melaporkan kinerja generalisasi. Untuk mengatasi masalah ini, bagian lain dari dataset dapat diadakan sebagai apa yang disebut "set validasi": pelatihan berlangsung pada set pelatihan, setelah itu evaluasi dilakukan pada set validasi, dan ketika percobaan tampaknya berhasil , evaluasi akhir dapat dilakukan pada set tes.
Saya melihat bahwa set validasi (ketiga) lainnya diperkenalkan yang dibenarkan dengan overfitting set tes selama penyetelan hyperparameters.
Masalahnya adalah bahwa saya tidak bisa mengerti bagaimana overfitting ini dapat muncul dan karena itu tidak dapat memahami pembenaran set ketiga.
sumber
Jawaban:
Meskipun Anda adalah model pelatihan khusus pada data pelatihan, Anda mengoptimalkan hiperparameter (misalnya untuk SVM) berdasarkan pada set tes. Karenanya, perkiraan kinerja Anda dapat menjadi optimis, karena pada dasarnya Anda melaporkan hasil terbaik. Seperti yang beberapa orang sebutkan di situs ini, optimasi adalah akar dari semua kejahatan dalam statistik .C
Perkiraan kinerja harus selalu dilakukan pada data yang sepenuhnya independen. Jika Anda mengoptimalkan beberapa aspek berdasarkan pada data uji, maka data uji Anda tidak lagi independen dan Anda akan memerlukan set validasi.
Cara lain untuk mengatasi ini adalah melalui validasi silang bersarang , yang terdiri dari dua prosedur validasi silang yang dililit satu sama lain. Validasi silang dalam digunakan dalam penyetelan (untuk memperkirakan kinerja set hiperparameter yang diberikan, yang dioptimalkan) dan validasi silang luar memperkirakan kinerja generalisasi dari keseluruhan pipa pembelajaran mesin (yaitu, mengoptimalkan hiperparameter + melatih model akhir ).
sumber
Saya pikir paling mudah untuk memikirkan hal-hal seperti ini. Ada dua hal yang digunakan untuk validasi silang, menyetel parameter hiper model / algoritma, dan mengevaluasi kinerja model / algoritma.
Pertimbangkan penggunaan pertama sebagai bagian dari pelatihan algoritma yang sebenarnya. Misalnya memvalidasi silang untuk menentukan kekuatan regularisasi untuk GLM adalah bagian dari menetapkan hasil akhir dari GLM. Penggunaan ini biasanya disebut validasi lintas internal . Karena parameter (hiper) masih disetel, tuning set loss bukan ukuran yang baik untuk kinerja algoritma yang sebenarnya.
Penggunaan kedua validasi silang adalah menggunakan data yang dikeluarkan dari seluruh proses yang menghasilkan model, untuk menguji kekuatan prediktifnya. Proses ini disebut validasi lintas eksternal .
Perhatikan bahwa validasi internal mungkin telah menjadi bagian dari proses yang menghasilkan model sehingga dalam banyak kasus baik validasi lintas internal dan eksternal diperlukan.
sumber
Selama membangun model, Anda melatih model Anda pada sampel pelatihan . Perhatikan bahwa Anda dapat melatih model yang berbeda (yaitu teknik yang berbeda seperti SVM, LDA, Random Forest, ... atau teknik yang sama dengan nilai parameter tuning yang berbeda, atau campuran).
Di antara semua model yang Anda latih, Anda harus memilih satu dan oleh karena itu Anda menggunakan sampel validasi untuk menemukan yang memiliki kesalahan terkecil pada sampel uji.
Untuk model 'final' ini kami masih harus memperkirakan kesalahan dan oleh karena itu kami menggunakan sampel uji .
sumber
Validasi silang tidak sepenuhnya mengatasi masalah over-fitting dalam pemilihan model, itu hanya mengurangi itu. Kesalahan validasi silang tergantung pada set data yang Anda gunakan. Semakin kecil kumpulan data, semakin tinggi kesalahan validasi silang.
Selain itu, jika Anda memiliki derajat kebebasan yang tinggi dalam pemilihan model, maka ada bahaya model tersebut berperforma buruk, karena kriteria validasi silang mendapat overfitted.
Jadi, ketika data dibagi menjadi 2 set, alias set pelatihan dan pengujian, pemisahan dilakukan secara statis. Jadi, ada kemungkinan overfitting set pelatihan. Namun, set validasi silang dibuat melalui metode yang berbeda , seperti validasi k-fold cross, Leave-out-one-cross-validation (LOOCV), dll. dan dengan demikian peluang over fit berkurang.
Ini adalah beberapa sumber yang akan membantu Anda memahami lebih baik.
Jadi, validasi silang akan membantu Anda ketika Anda memiliki kumpulan data yang lebih besar, bukan yang lebih kecil.
sumber