Berapa kali kita harus mengulang CV K-fold?

18

Saya menemukan utas ini melihat perbedaan antara bootstrap dan validasi silang - jawaban yang bagus dan referensi. Apa yang saya bertanya-tanya sekarang adalah, jika saya adalah untuk melakukan diulang 10 kali lipat CV katakanlah untuk menghitung akurasi classifier ini, berapa kali n harus saya mengulanginya?

Apakah n tergantung pada jumlah lipatan? Pada ukuran sampel? Apakah ada aturan untuk ini?

(Dalam kasus saya, saya memiliki sampel sebesar 5000, dan jika saya memilih sesuatu yang lebih besar dari n = 20 komputer saya terlalu lama untuk melakukan perhitungan.)

Neodim
sumber

Jawaban:

10

Faktor yang memengaruhi adalah seberapa stabil model Anda - atau, lebih tepatnya: prediksi para pengganti.

Jika model benar-benar stabil, semua model pengganti akan menghasilkan prediksi yang sama untuk test case yang sama. Dalam hal itu, pengulangan / pengulangan tidak diperlukan, dan mereka tidak menghasilkan perbaikan apa pun.

Karena Anda dapat mengukur stabilitas prediksi, inilah yang akan saya lakukan:

  • Atur seluruh prosedur dengan cara yang menyimpan hasil dari setiap pengulangan / iterasi validasi silang misalnya ke hard disk
  • Mulai dengan sejumlah besar iterasi
  • Setelah beberapa iterasi selesai, ambil hasil awal dan lihat stabilitas / variasi hasil untuk setiap run.
  • Kemudian putuskan berapa banyak iterasi lebih lanjut yang ingin Anda saring hasilnya.

  • Tentu saja Anda dapat memutuskan untuk menjalankan, katakanlah, 5 iterasi dan kemudian putuskan jumlah iterasi yang ingin Anda lakukan.

(Catatan: Saya biasanya menggunakan> sekitar 1000 model pengganti, jadi tidak ada pengulangan / iterasi sekitar 100 - 125).

Cbeleites mendukung Monica
sumber
13

Ajukan pertanyaan kepada ahli statistik dan jawaban mereka akan berupa "itu tergantung".

Itu tergantung . Terlepas dari jenis model (point good cbeleites!), Jumlah set point pelatihan dan jumlah prediktor? Jika model ini untuk klasifikasi, ketidakseimbangan kelas yang besar akan menyebabkan saya meningkatkan jumlah pengulangan. Juga, jika saya melakukan resampling prosedur pemilihan fitur, saya akan bias sendiri terhadap lebih banyak sampel.

Untuk setiap metode resampling yang digunakan dalam konteks ini, ingatlah bahwa (tidak seperti bootstrap klasik), Anda hanya perlu cukup iterasi untuk mendapatkan perkiraan "cukup tepat" dari rata-rata distribusi. Itu subjektif tapi jawaban apa pun akan.

Tetap dengan klasifikasi dengan dua kelas selama satu detik, misalkan Anda mengharapkan / berharap keakuratan model menjadi sekitar 0,80. Karena proses resampling mengambil sampel estimasi akurasi (katakanlah p), kesalahan standar adalah di sqrt[p*(1-p)]/sqrt(B)mana Bjumlah sampel . Sebab B = 10, kesalahan standar akurasi sekitar 0,13 dan dengan B = 100itu sekitar 0,04. Anda dapat menggunakan formula itu sebagai panduan kasar untuk kasus khusus ini.

Juga pertimbangkan bahwa, dalam contoh ini, varians dari akurasi dimaksimalkan semakin dekat Anda sampai 0,50 sehingga model yang akurat harus membutuhkan replikasi lebih sedikit karena kesalahan standar harus lebih rendah daripada model yang pembelajar lemah.

HTH,

Maks

topepo
sumber
2
Saya akan sangat waspada di sini untuk menerapkan segala jenis perhitungan kesalahan standar dalam konteks ini, karena ada 2 sumber varians di sini (ketidakstabilan model + himpunan kasus uji terbatas), dan saya pikir resampling validasi tidak akan menyiasati tes hingga. set variance: pertimbangkan validasi silang. Dalam setiap percobaan, semua test case diuji tepat sekali. Jadi varians antara jalan iterated CV harus karena ketidakstabilan. Anda tidak akan mengamati (atau mengurangi!) Varians karena tes yang terbatas ditetapkan dengan cara ini, tetapi tentu saja hasilnya masih tunduk padanya.
cbeleites mendukung Monica