Validasi Silang dalam bahasa Inggris biasa?

Jawaban:

54

Pertimbangkan situasi berikut:

Saya ingin naik kereta bawah tanah untuk pergi ke kantor saya. Rencana saya adalah mengambil mobil saya, parkir di kereta bawah tanah dan kemudian naik kereta untuk pergi ke kantor saya. Tujuan saya adalah naik kereta pukul 8.15 setiap hari sehingga saya dapat mencapai kantor saya tepat waktu. Saya perlu memutuskan yang berikut ini: (a) waktu di mana saya harus pergi dari rumah saya dan (b) rute yang akan saya ambil untuk pergi ke stasiun.

Dalam contoh di atas, saya memiliki dua parameter (yaitu, waktu keberangkatan dari rumah dan rute untuk mengambil ke stasiun) dan saya harus memilih parameter ini sehingga saya mencapai stasiun pada jam 8.15 pagi.

Untuk mengatasi masalah di atas, saya dapat mencoba set 'parameter' yang berbeda (yaitu, kombinasi waktu keberangkatan dan rute yang berbeda) pada hari Senin, Rabu, dan Jumat, untuk melihat kombinasi mana yang merupakan yang terbaik. Idenya adalah sekali saya telah mengidentifikasi kombinasi terbaik saya dapat menggunakannya setiap hari sehingga saya mencapai tujuan saya.

Masalah Overfitting

Masalah dengan pendekatan di atas adalah bahwa saya dapat mengenakan pakaian yang pada dasarnya berarti bahwa kombinasi terbaik yang saya identifikasi mungkin dalam beberapa hal mungkin unik untuk Senin, Rabu, dan Jumat dan kombinasi itu mungkin tidak bekerja untuk Sel dan Kamis. Overfitting dapat terjadi jika dalam pencarian saya untuk kombinasi waktu dan rute terbaik saya mengeksploitasi beberapa aspek dari situasi lalu lintas pada Senin / Rabu / Jumat yang tidak terjadi pada hari Selasa dan Kamis.

Satu Solusi untuk Overfitting: Validasi Silang

Validasi silang adalah salah satu solusi untuk overfitting. Idenya adalah bahwa begitu kami telah mengidentifikasi kombinasi terbaik dari parameter (dalam waktu dan rute kasus kami), kami menguji kinerja set parameter dalam konteks yang berbeda. Oleh karena itu, kami mungkin ingin menguji Tue dan Thu juga untuk memastikan bahwa pilihan kami bekerja untuk hari-hari itu juga.

Memperluas analogi ke statistik

Dalam statistik, kami memiliki masalah serupa. Kami sering menggunakan kumpulan data terbatas untuk memperkirakan parameter yang tidak diketahui yang tidak kami ketahui. Jika kami memakai terlalu banyak, maka estimasi parameter kami akan bekerja dengan sangat baik untuk data yang ada tetapi tidak juga untuk saat kami menggunakannya dalam konteks lain. Dengan demikian, validasi silang membantu dalam menghindari masalah overfitting di atas dengan membuktikan kepada kami beberapa jaminan bahwa estimasi parameter tidak unik untuk data yang kami gunakan untuk memperkirakannya.

Tentu saja, validasi silang tidak sempurna. Kembali ke contoh kereta bawah tanah kami, dapat terjadi bahwa bahkan setelah validasi silang, pilihan parameter terbaik kami mungkin tidak berfungsi satu bulan ke depan karena berbagai masalah (misalnya, konstruksi, perubahan volume lalu lintas dari waktu ke waktu, dll).

jbaums
sumber
2
Secara teknis, ini adalah validasi ketidaksepakatan tetapi orang dapat membayangkan memperluas contoh subway ke konteks cross-validasi. Jika ini membantu, saya akan menulis kembali contoh dan teks lainnya untuk spesifik pada validasi silang.
@ srikant .. kata overfitting sebagai kata menyarankan saya bahwa ada sesuatu yang "terlalu" berarti dilakukan .. lebih dari yang diperlukan .. jadi apa yang terlalu dilakukan? Apakah tidak ada variabel? Saya menyesal telah mendengar istilah overfitting berkali-kali dan akan mengambil kesempatan ini untuk menjelaskan hal ini kepada Anda.
ayush biyani
1
Saya pikir jawaban ini akan ditingkatkan dengan menambahkan konsep lipatan, yang merupakan kunci untuk bagaimana CV berbeda dari pengujian ujian. Dalam contoh (menggunakan singkatan M untuk hari Senin, T untuk hari Selasa, ..., R untuk hari Kamis, ...): Jadi Anda melihat TWRF untuk kombinasi terbaik dan melihat cara kerjanya pada M, lalu MWRF dan lihat caranya bekerja pada T, dll. Jadi setiap hari digunakan sebagai bagian dari masalah empat kali dan sebagai cek untuk masalah sekali, tetapi tidak pernah sebagai masalah dan cek di babak yang sama.
Wayne
43

Saya pikir ini paling baik dijelaskan dengan gambar berikut (dalam hal ini menunjukkan validasi silang k-fold):

teks alternatif

Validasi silang adalah teknik yang digunakan untuk melindungi dari overfitting dalam model prediksi, khususnya dalam kasus di mana jumlah data mungkin terbatas. Dalam validasi silang, Anda membuat jumlah lipatan (atau partisi) yang tetap dari data, menjalankan analisis pada setiap lipatan, lalu rata-rata estimasi kesalahan keseluruhan.

Shane
sumber
2
Tampaknya diberikan diskusi di tempat lain di situs ini bahwa validasi silang k-fold hanyalah salah satu jenis validasi silang dan menggambarkannya tidak melakukan pekerjaan umum menggambarkan apa itu validasi silang.
russellpierce
3
@drknexus: Itu adil, tetapi saya menyebutkan bahwa itu k-fold dan saya ingin memberikan visualisasi proses untuk membantu menjelaskannya.
Shane
Klarifikasi cepat: apakah demikian, nfold = 4 berarti 25% untuk set tes; nfold = 5 berarti 20% untuk set tes; nfold = 10 berarti 10% untuk set tes, dan sebagainya: nfold = n berarti 100 / n persen masuk ke set tes?
johnjps111
9

"Hindari mempelajari data pelatihan Anda dengan hati-hati dengan memastikan bahwa model yang terlatih berkinerja baik pada data independen."

Andre Holzner
sumber
3
Ini adalah motivasi untuk cv, daripada deskripsi cv itu sendiri.
jbaums
6

Katakanlah Anda menyelidiki beberapa proses; Anda telah mengumpulkan beberapa data yang menggambarkannya dan Anda telah membangun model (baik statistik atau ML, tidak masalah). Tapi sekarang, bagaimana cara menilai apakah itu boleh? Mungkin sangat cocok dengan data yang dibangunnya, jadi tidak ada yang akan percaya bahwa model Anda sangat bagus menurut Anda.
Gagasan pertama adalah memisahkan subset data Anda dan menggunakannya untuk menguji model build dengan metode Anda pada data lainnya. Sekarang hasilnya benar-benar bebas-overfitting, namun (terutama untuk set kecil) Anda bisa (tidak) beruntung dan menarik (kurang) kasus yang lebih sederhana untuk diuji, membuatnya (lebih sulit) lebih mudah diprediksi ... Juga keakuratan Anda / estimasi error / goodness tidak berguna untuk perbandingan / optimisasi model, karena Anda mungkin tidak tahu apa-apa tentang distribusinya.
Jika ragu, gunakan brute force, jadi cukup meniru proses di atas, kumpulkan beberapa perkiraan akurasi / kesalahan / kebaikan dan rata-rata - dan Anda mendapatkan validasi silang. Di antara perkiraan yang lebih baik, Anda juga akan mendapatkan histogram, sehingga Anda dapat memperkirakan distribusi atau melakukan beberapa tes non-parametrik.
Dan ini dia; detail pemisahan uji-kereta adalah alasan untuk berbagai jenis CV, masih kecuali kasus yang jarang dan perbedaan kekuatan kecil yang agak setara. Memang itu adalah keuntungan besar, karena menjadikannya metode yang adil-antipeluru; sangat sulit untuk menipu itu.


sumber
3

Karena Anda tidak memiliki akses ke data tes pada saat pelatihan, dan Anda ingin model Anda bekerja dengan baik pada data tes yang tidak terlihat, Anda "berpura-pura" bahwa Anda memiliki akses ke beberapa data uji dengan berulang kali mensampel sebagian kecil dari data pelatihan Anda, tahan set ini saat melatih model, dan kemudian memperlakukan set bertahan sebagai proxy untuk data uji (dan pilih parameter model yang memberikan kinerja terbaik pada data yang tertahan). Anda berharap bahwa dengan secara acak mengambil sampel berbagai himpunan bagian dari data pelatihan, Anda dapat membuatnya tampak seperti data uji (dalam arti perilaku rata-rata), dan oleh karena itu parameter model yang dipelajari akan baik untuk data uji juga (yaitu, model Anda digeneralisasikan dengan baik untuk data yang tidak terlihat).

ebony1
sumber