Pemahaman saya adalah bahwa dengan validasi silang dan pemilihan model kami mencoba mengatasi dua hal:
P1 . Perkirakan perkiraan kerugian pada populasi saat pelatihan dengan sampel kami
P2 . Ukur dan laporkan ketidakpastian estimasi kami ini (varians, interval kepercayaan, bias, dll.)
Praktik standar tampaknya melakukan validasi silang berulang, karena ini mengurangi varian penaksir kami.
Namun, ketika menyangkut pelaporan dan analisis, pemahaman saya adalah bahwa validasi internal lebih baik daripada validasi eksternal karena:
Lebih baik melaporkan:
- Statistik estimator kami, misalnya interval kepercayaannya, varian, rata-rata, dll. Pada sampel lengkap (dalam hal ini sampel CV).
dari pelaporan:
Hilangnya penaksir kami pada subset hold-out dari sampel asli, karena:
(i) Ini akan menjadi pengukuran tunggal ( bahkan jika kami memilih estimator kami dengan CV )
(ii) Estimator kami untuk pengukuran tunggal ini akan dilatih pada perangkat (mis. perangkat CV) yang lebih kecil dari sampel awal kami karena kami harus menyediakan ruang untuk perangkat hold-out. Ini menghasilkan estimasi yang lebih bias (pesimistis) dalam P1 .
Apakah ini benar? Jika tidak mengapa?
Latar Belakang:
Sangat mudah untuk menemukan buku teks yang merekomendasikan membagi sampel Anda menjadi dua set:
- Set CV , yang selanjutnya dan berulang kali dibagi menjadi set kereta dan validasi .
- Set tahan (uji) ditetapkan, hanya digunakan di akhir untuk melaporkan kinerja estimator
Pertanyaan saya adalah upaya untuk memahami kelebihan dan kelebihan dari pendekatan buku teks ini, mengingat bahwa tujuan kami adalah untuk benar-benar mengatasi masalah P1 dan P2 pada awal posting ini. Tampak bagi saya bahwa pelaporan pada set tes tahan adalah praktik buruk karena analisis sampel CV lebih informatif.
K-fold bersarang vs K-lipat berulang:
Pada prinsipnya seseorang dapat menggabungkan hold-out dengan K-fold reguler untuk mendapatkan K-fold yang bersarang . Ini akan memungkinkan kami untuk mengukur variabilitas estimator kami, tetapi terlihat bagi saya bahwa untuk jumlah yang sama dari total model yang dilatih (total # lipatan) yang diulang K-lipat akan menghasilkan penduga yang kurang bias dan lebih akurat daripada K bersarang. melipat. Untuk melihat ini:
- K-fold berulang menggunakan fraksi yang lebih besar dari total sampel kami daripada K-fold bersarang untuk K yang sama (yaitu mengarah ke bias yang lebih rendah)
- 100 iterasi hanya akan memberikan 10 pengukuran estimator kami dalam K-fold bersarang (K = 10), tetapi 100 pengukuran dalam K-fold (lebih banyak pengukuran mengarah ke varian yang lebih rendah pada P2 )
Apa yang salah dengan alasan ini?
sumber
Jawaban:
Biarkan saya menambahkan beberapa poin ke jawaban bagus yang sudah ada di sini:
K-fold bersarang vs K-lipat berulang: k-fold bersarang dan berulang adalah hal yang sama sekali berbeda, digunakan untuk tujuan yang berbeda.
Karena itu saya merekomendasikan untuk mengulangi validasi k-fold cross bersarang .
Laporan yang lebih baik "Statistik estimator kami, misalnya interval kepercayaan, varians, rata-rata, dll. Pada sampel lengkap (dalam hal ini sampel CV)." :
Yakin. Namun, Anda harus menyadari fakta bahwa Anda tidak akan (dengan mudah) dapat memperkirakan interval kepercayaan hanya dengan hasil validasi silang. Alasannya adalah, sebanyak apa pun Anda melakukan resample, jumlah kasus aktual yang Anda lihat terbatas (dan biasanya agak kecil - jika tidak, Anda tidak akan peduli dengan perbedaan ini).
Lihat misalnya Bengio, Y. dan Grandvalet, Y .: Tidak Ada Penaksir Tidak Bervariasi dari Varians K-Fold Cross-Validation Journal of Machine Learning Research, 2004, 5, 1089-1105 .
Namun, dalam beberapa situasi Anda tetap dapat membuat estimasi varians: Dengan validasi k-fold berulang, Anda bisa mendapatkan ide apakah ketidakstabilan model berperan. Dan varians terkait ketidakstabilan ini sebenarnya adalah bagian dari varians yang dapat Anda kurangi dengan validasi silang berulang. (Jika model Anda sangat stabil, setiap pengulangan / iterasi validasi silang akan memiliki prediksi yang persis sama untuk setiap kasus. Namun, Anda masih memiliki varian karena pilihan / komposisi aktual dari kumpulan data Anda). Jadi ada batasan untuk varian yang lebih rendah dari validasi k-fold cross berulang. Melakukan lebih banyak pengulangan / iterasi tidak masuk akal, karena varians yang disebabkan oleh fakta bahwa pada akhirnya hanya kasus nyata yang diuji tidak terpengaruh.n
Varians yang disebabkan oleh fakta bahwa pada akhirnya hanya kasus nyata yang diuji yang dapat diestimasi untuk beberapa kasus khusus, misalnya kinerja pengklasifikasi yang diukur dengan proporsi seperti hit rate, tingkat kesalahan, sensitivitas, spesifisitas, nilai prediksi dan sebagainya. : mereka mengikuti distribusi binomial Sayangnya, ini berarti bahwa mereka memiliki varian yang sangat besar dengan nilai kinerja sebenarnya dari model, yang diamati, dan ukuran sampel dalam penyebut fraksi. Ini memiliki maksimum untukn σ2(p^)=1np(1−p) p p^ n p=0.5 . Anda juga dapat menghitung interval kepercayaan mulai dari pengamatan. (@Frank Harrell akan berkomentar bahwa ini bukan aturan penilaian yang tepat, jadi Anda tidak boleh menggunakannya - yang terkait dengan varian yang sangat besar). Namun, IMHO mereka berguna untuk mendapatkan batas konservatif (ada aturan penilaian yang lebih baik, dan perilaku buruk fraksi ini adalah batas kasus terburuk untuk aturan yang lebih baik),
lihat misalnya C. Beleites, R. Salzer dan V. Sergo: Validasi Model Klasifikasi Lunak menggunakan Keanggotaan Kelas Parsial: Konsep Diperpanjang Kepekaan & Co diterapkan untuk Grading Jaringan Astrocytoma, Chemom. Intell. Laboratorium. Syst., 122 (2013), 12 - 22.
Jadi ini memungkinkan saya membalikkan argumentasi Anda terhadap penolakan :
Tidak harus (jika dibandingkan dengan k-fold) - tetapi Anda harus menukar: set hold-out kecil (mis. dari sampel => bias rendah (≈ sama dengan k-fold cv), varian tinggi (> k-lipat cv, kira-kira dengan faktor k).1k
Biasanya ya. Namun, perlu juga diingat bahwa ada jenis kesalahan penting (seperti drift) yang tidak dapat diukur / dideteksi dengan melakukan resampling validasi.
Lihat misalnya Esbensen, KH dan Geladi, P. Prinsip Validasi yang Tepat: penggunaan dan penyalahgunaan pengambilan sampel ulang untuk validasi, Journal of Chemometrics, 2010, 24, 168-187
Saya akan mengatakan tidak untuk ini: tidak masalah bagaimana model pelatihan menggunakan sampel pelatihannya, selama model pengganti dan "nyata" model menggunakannya dalam sama cara. (Saya melihat validasi / estimasi silang-dalam hiper-parameter sebagai bagian dari pengaturan model). Hal-hal terlihat berbeda jika Anda membandingkan model pengganti yang dilatih termasuk optimasi parameter-hip dengan model "yang" dilatih pada parameter hiper-tetap. Tapi IMHO yang menggeneralisasi dari apel ke 1 oranye.k−1kn
k
Apakah ini membuat perbedaan tergantung pada ketidakstabilan model (pengganti), lihat di atas. Untuk model stabil itu tidak relevan. Jadi mungkin apakah Anda melakukan 1000 atau 100 pengulangan / iterasi luar.
Dan makalah ini secara definitif menjadi bagian dari daftar bacaan tentang topik ini: Cawley, GC dan Talbot, NLC Over-fitting dalam Pemilihan Model dan Bias Seleksi Selanjutnya dalam Evaluasi Kinerja, Journal of Machine Learning Research, 2010, 11, 2079-2107
sumber
Referensi utama yang menjelaskan hal ini adalah:
Lihat juga:
Dalam pekerjaan saya sendiri saya telah menemukan bahwa pemisahan data membutuhkan pelatihan dan menguji ukuran sampel mendekati 10.000 untuk bekerja dengan memuaskan.
sumber
Ini benar-benar tergantung pada proses pembuatan model Anda, tetapi saya menemukan makalah ini bermanfaat
http://www.biomedcentral.com/content/pdf/1471-2105-7-91.pdf
Inti dari apa yang dibahas di sini adalah bias liberal yang signifikan (memperkirakan kinerja model menjadi lebih baik daripada yang sebenarnya) yang akan terjadi jika Anda memilih model Anda berdasarkan hal yang sama yang Anda gunakan untuk memperkirakan kinerjanya. Jadi, jika Anda memilih model Anda dari serangkaian model yang mungkin dengan melihat kesalahan validasi silangnya, Anda tidak boleh menggunakan kesalahan validasi silang (atau metode estimasi internal lainnya) untuk memperkirakan kinerja model.
Sumber daya lain yang bermanfaat adalah
/stats//a/27751/26589
Posting ini memaparkan contoh yang jelas tentang bagaimana memilih fitur Anda ketika semua data "terlihat" akan mengarah ke bias liberal dalam kinerja model (mengatakan model Anda akan berkinerja lebih baik daripada yang sebenarnya).
Jika Anda ingin saya memberikan contoh yang lebih spesifik untuk apa yang Anda lakukan, mungkin Anda bisa memberikan gambaran umum tentang jenis model yang Anda buat (berapa banyak data yang Anda miliki, berapa banyak fitur yang Anda pilih, model aktual, dll.).
sumber
Saya pikir pemahaman Anda benar, penaksir kerugian yang diperoleh dengan menggunakan satu set uji hold-out biasanya memiliki varian yang tinggi. Dengan melakukan sesuatu seperti validasi silang K-folds, Anda mendapatkan ide kerugian yang lebih akurat, serta rasa distribusi kerugian.
Biasanya ada tradeoff, semakin banyak CV melipatgandakan estimasi Anda, tetapi lebih banyak waktu komputasi diperlukan.
sumber