Mengapa membagi data ke dalam set pelatihan dan pengujian tidak cukup

18

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.

Salvador Dali
sumber
2
Saya pikir banyak kebingungan di sini berasal dari 2 atau 3 arti yang agak berbeda dari istilah "validasi". Validasi dalam validasi silang sebagian besar hanya nama untuk prosedur pemisahan tanpa penggantian. "Validasi" yang diatur dalam teks yang dikutip akan lebih dipahami sebagai "penyetelan" atau "set optimasi". Sedangkan "validasi" misalnya dalam rekayasa atau juga kimia analitik berarti membuktikan bahwa metode final yang diberikan sesuai dengan tujuannya - yang dilakukan (disimulasikan, diperkirakan) oleh set "tes". (Bagi saya, pengujian terdengar jauh lebih final daripada validasi ...)
cbeleites mendukung Monica

Jawaban:

17

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 ).

Marc Claesen
sumber
Saya bisa saja salah tetapi set tes tidak hanya untuk menyetel hyperparameters tetapi juga untuk membandingkan berbagai jenis teknik seperti misalnya kinerja SVM dibandingkan dengan LDA atau hutan acak seperti yang saya sebutkan dalam jawaban saya.
@ fcoppens Ya, tentu saja. Saya tidak secara eksplisit menyebutkan ini, tapi itu tentu juga cocok dengan langkah itu.
Marc Claesen
1
lebih umum, penyetelan atau pengoptimalan di sini adalah segala jenis proses yang didorong oleh data (oleh validasi silang dalam).
cbeleites mendukung Monica
@MarcClaesen Saya punya pertanyaan. Jika saya memiliki 2 nilai hiperparameter yang berbeda, dan saya memasangkan kedua model ini pada set pelatihan, kemudian menerapkannya pada set tes, maka seandainya tingkat kesalahan yang saya peroleh pada set tes adalah penduga yang tidak bias dari tingkat kesalahan prediksi yang sebenarnya. 2 model ini? Karena jika Anda sekarang memberi saya set data tes independen lain, maka set data uji baru ini pada dasarnya sama dengan set tes sebelumnya. Jadi, jika model memiliki skor tes yang lebih baik, itu juga harus mengungguli model lain pada set data tes baru. Mengapa kita perlu set validasi?
KevinKim
"Jika Anda mengoptimalkan beberapa aspek berdasarkan pada data pengujian, maka data pengujian Anda tidak lagi independen dan Anda akan memerlukan set validasi." itu berwawasan luas
Sudip Bhandari
11

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.

jlimahaverford
sumber
Secara pribadi, saya tidak akan menggunakan frasa "validasi lintas eksternal", karena saya akan melihat validasi silang sebagai pemisahan berulang dari set validasi yang berbeda dari set pelatihan untuk pemilihan model dan tujuan penyetelan. Anda tidak dapat melakukan hal ini berulang kali secara bermakna dengan set tes, karena itu adalah sebagai proksi satu kali untuk data yang belum diketahui di masa mendatang yang digunakan untuk menilai kinerja model akhir.
Henry
3
Henry, saya tidak berpikir Anda memahami validasi lintas eksternal. Anda dapat "melakukan ini berulang kali dengan set tes," berulang kali memegang beberapa bagian dari data lengkap Anda untuk tujuan pengujian saat menjalankan prosedur pelatihan lengkap Anda pada yang lainnya (yang mungkin termasuk validasi lintas internal). Validasi silang eksternal masih biasanya dilakukan dalam lipatan, dan memungkinkan untuk semua data asli hingga pada titik tertentu berada di set uji.
jlimahaverford
αα
2

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
1
Saya akan membalikkan kata-kata dalam paragraf kedua dan ketiga Anda: Saya akan menggunakan set validasi untuk menemukan model terbaik dan menyetel hyperparameter-nya (melakukan ini dengan beberapa set validasi yang partisi set pelatihan membuat validasi silang ini ) dan, begitu model memiliki telah difinalisasi, kemudian menerapkannya pada set uji untuk melihat contoh kinerja out-of-sample model.
Henry
@ Henry: OK Henry, saya pikir label fase lebih penting daripada urutan mereka / isi, tetapi komentar Anda masuk akal bagi saya, saya akan mengedit teks, terima kasih (+1),
1

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.

Dawny33
sumber