Validasi silang internal vs eksternal dan pemilihan model

26

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?

Amelio Vazquez-Reina
sumber
1
Saya telah mengubah judul Anda sehingga lebih spesifik untuk apa yang saya kumpulkan yang ingin Anda ketahui. Saya pikir Anda lebih mungkin mendapatkan info yang Anda butuhkan dengan cara ini. Jangan ragu untuk mengubahnya kembali jika Anda tidak setuju. Perhatikan juga bahwa utas ini secara otomatis menjadi CW karena banyaknya suntingan. Jika Anda tidak menginginkannya CW, beri tanda untuk perhatian moderator; harus dimungkinkan untuk membalikkan itu (saya pikir).
gung - Reinstate Monica
1
Terima kasih @ung. Satu-satunya kekhawatiran saya adalah bahwa beberapa orang dapat membingungkan hold-out dengan CV 2 kali lipat , dengan ini, saya pikir CV internal vs eksternal seperti di Steyerberg03 lebih jelas
Amelio Vazquez-Reina

Jawaban:

20

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.

  • Seperti yang sudah Anda ketahui , nested bagus jika Anda ingin menggunakan inner cv untuk pemilihan model.
  • diulang: IMHO Anda harus selalu mengulangi k-fold cv [lihat di bawah].

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(1p)pp^np=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 melakukan resampling sendirian (tentu saja) memberi Anda perkiraan varians yang baik,
  • OTOH, jika Anda dapat berargumentasi tentang varian hingga-uji-sampel-ukuran estimasi validasi silang, itu juga memungkinkan untuk bertahan.

Estimator kami untuk pengukuran tunggal ini akan dilatih pada perangkat (misalnya 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.

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

Tampak bagi saya bahwa pelaporan pada set tes tahan adalah praktik buruk karena analisis sampel CV lebih informatif.

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

tetapi bagi saya terlihat bahwa untuk jumlah yang sama dari total model yang dilatih (total # lipatan) yang diulang K-fold akan menghasilkan estimator yang kurang bias dan lebih akurat daripada K-fold bersarang. 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)

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.k1kn
k

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)

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

Cbeleites mendukung Monica
sumber
6

Referensi utama yang menjelaskan hal ini adalah:

@ARTICLE{pic90,
  author = {Picard, R. R. and Berk, K. N.},
  year = 1990,
  title = {Data splitting},
  journal = The American Statistician,
  volume = 44,
  pages = {140-147}
}

Lihat juga:

@Article{mic05pre,
  author =       {Michiels, Stefan and Koscielny, Serge and Hill, Catherine},
  title =        {Prediction of cancer outcome with microarrays: a
multiple random validation strategy},
  journal =      {Lancet},
  year =         2005,
  volume =       365,
  pages =        {488-492},
  annote =       {comment on
p. 454; validation;microarray;bioinformatics;machine learning;nearest
centroid;severe problems with data splitting;high variability of list
of genes;problems with published studies;nice results for effect of
training sample size on misclassification error;nice use of confidence
intervals on accuracy estimates;unstable molecular signatures;high
instability due to dependence on selection of training sample}
}

Dalam pekerjaan saya sendiri saya telah menemukan bahwa pemisahan data membutuhkan pelatihan dan menguji ukuran sampel mendekati 10.000 untuk bekerja dengan memuaskan.

Frank Harrell
sumber
Frank - Ini adalah sumber yang bagus. Saya ingin tahu bagaimana informasi ini berhubungan dengan apa yang telah diberikan oleh @Dan dalam jawabannya. Mungkin saya salah membaca ini, tetapi sepertinya komunitas terpecah dalam masalah ini.
Amelio Vazquez-Reina
Saya tidak punya waktu untuk membaca yang pertama, tetapi untuk yang kedua, saya melirik sekilas dan sepertinya menggemakan apa yang dikatakan oleh makalah saya. Perhatikan bagian "Analisis statistik", dan Anda akan melihat bahwa mereka menggambarkan proses pemilihan fitur yang sama seperti yang dijelaskan oleh Dikran di pos yang saya tautkan di atas. Saya menduga orang yang mereka pelajari tidak melakukannya dengan cara itu, dan itulah sebabnya mereka menemukan bahwa "Karena validasi yang tidak memadai, studi yang kami pilih menerbitkan hasil yang terlalu optimistis dibandingkan dengan orang-orang dari analisis kami sendiri". Saya tidak berpikir ada perselisihan.
Dan L
4

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

Dan L
sumber
Terima kasih Dan. Ini semua menarik. Untuk kesederhanaan kita dapat mengasumsikan bahwa kami mencoba memperkirakan parameter kernel dari SVM (misalnya kernel RBF) untuk klasifikasi biner (<~ 10 parameter) dan bahwa kami bekerja dengan 100 sampel (mis. 20 positif) dari populasi yang besar.
Amelio Vazquez-Reina
Beberapa pertanyaan cepat. 1) Ketika Anda membangun SVM Anda, apakah Anda membiarkan diri Anda memilih subset dari 10 parameter, atau apakah Anda selalu menggunakan semua yang Anda berikan? 2) Apakah Anda pernah mempertimbangkan kernel atau model yang berbeda (logistik, hutan acak, dll.)? 3) Perangkat lunak / paket apa yang Anda gunakan? Implementasi lintas validasi yang dibangun bervariasi, dan saya ingin tahu mana yang akan Anda gunakan.
Dan L
Terima kasih @Dan - Saya melakukan pencarian kisi-kisi antar model dan parameter (mis. Kernel dan parameter berbeda melalui pencarian kisi). Untuk setiap percobaan dalam pencarian kotak saya lakukan CV (validasi K-lipat berulang). Saya menggunakan scikit-learn.
Amelio Vazquez-Reina
1
Terima kasih @Dan. Saya kira satu-satunya pertanyaan saya yang tersisa tentang validasi lintas bersarang adalah bagaimana memilih model (karena saya mendapatkan model yang berbeda di setiap lipatan lingkaran luar). Tidak masuk akal bagi saya untuk memilih model yang memiliki skor tertinggi di lingkaran luar ini, karena model yang menang di setiap lipatan diukur terhadap bagian yang berbeda dari dataset.
Amelio Vazquez-Reina
1
Katakanlah Anda memiliki 3 lipatan luar. Ini berarti Anda menjalankan seluruh proses pembuatan model sebanyak 3 kali, memberi Anda tiga model berbeda. Anda tidak menggunakan salah satu dari model itu pada akhirnya - untuk mendapatkan model akhir Anda, Anda menjalankan seluruh proses pembuatan model pada semua data Anda (kecuali untuk kemungkinan set evaluasi independen). Sepertinya ini akan menyebabkan overfitting, tetapi jika model building building Anda overfits, itu juga harus overfit dalam validasi lintas luar, yang mengarah ke perkiraan kesalahan yang lebih tinggi.
Dan L
2

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.

Max S.
sumber
Terima kasih. Saya telah menambahkan bagian latar belakang ke OP untuk mengklarifikasi pertanyaan saya lebih lanjut.
Amelio Vazquez-Reina