K-lipat vs. Validasi silang Monte Carlo

29

Saya mencoba mempelajari berbagai metode validasi silang, terutama dengan maksud untuk diterapkan pada teknik analisis multivariat yang diawasi. Dua yang saya temui adalah teknik validasi silang K-fold dan Monte Carlo. Saya telah membaca bahwa K-fold adalah variasi pada Monte Carlo tetapi saya tidak yakin saya sepenuhnya mengerti apa yang membentuk definisi dari Monte Carlo. Bisakah seseorang menjelaskan perbedaan antara kedua metode ini?

Liam
sumber
Jadi apakah saya benar mengatakan bahwa Monte Carlo adalah ukuran acak dari pelatihan dan set tes sementara k-fold adalah ukuran set yang ditentukan? Saya telah melihat halaman di atas tetapi tidak begitu mengerti apa bedanya.
Liam
Saya akrab dengan berbagai jenis validasi silang dan validasi out-of-bootstrap, tetapi belum menemukan istilah validasi silang Monte Carlo (saya mungkin tahu itu dengan nama lain). Bisakah Anda menautkan atau mengutip deskripsi bagaimana validasi Monte Carlo lintas berfungsi?
cbeleites mendukung Monica
Deskripsi akses Monte Carlo yang paling sederhana dan terbuka ada di wiki . Saya sepertinya tidak melihat perbedaan antara metode k-fold dan Monte Carlo.
Liam

Jawaban:

36

Validasi Lintas Lipatk

Misalkan Anda memiliki 100 poin data. Untuk validasi silang -fold, 100 poin ini dibagi menjadi k 'lipatan' berukuran sama dan eksklusif satu sama lain. Untuk k = 10, Anda dapat menetapkan poin 1-10 untuk melipat # 1, 11-20 untuk melipat # 2, dan seterusnya, menyelesaikannya dengan menetapkan poin 91-100 untuk melipat # 10. Selanjutnya, kami memilih satu lipatan untuk bertindak sebagai set uji, dan menggunakan lipatan k - 1 yang tersisa untuk membentuk data pelatihan. Untuk putaran pertama, Anda dapat menggunakan poin 1-10 sebagai set tes dan 11-100 sebagai set pelatihan. Run selanjutnya akan menggunakan poin 11-20 sebagai set tes dan berlatih pada poin 1-10 ditambah 21-100, dan seterusnya, hingga setiap lipatan digunakan satu kali sebagai set tes.kkkk1

Validasi Palang Monte-Carlo

Monte Carlo bekerja agak berbeda. Anda secara acak memilih (tanpa penggantian) sebagian kecil dari data Anda untuk membentuk set pelatihan, dan kemudian menetapkan sisa poin ke set tes. Proses ini kemudian diulang beberapa kali, menghasilkan pelatihan (secara acak) baru dan menguji partisi setiap waktu. Misalnya, anggap Anda memilih untuk menggunakan 10% data Anda sebagai data uji. Kemudian set tes Anda pada rep # 1 mungkin poin 64, 90 , 63, 42 , 65, 49, 10, 64, 96, dan 48. Pada putaran berikutnya, set tes Anda mungkin 90 , 60, 23, 67, 16, 78, 42 , 17, 73, dan 26. Karena partisi dilakukan secara independen untuk setiap proses, titik yang sama dapat muncul dalam set pengujian beberapa kali,yang merupakan perbedaan utama antara Monte Carlo dan validasi silang .

Perbandingan

Setiap metode memiliki kelebihan dan kekurangannya sendiri. Di bawah validasi silang, setiap titik diuji secara tepat satu kali, yang tampaknya adil. Namun, validasi silang hanya mengeksplorasi beberapa kemungkinan cara data Anda dapat dipartisi. Monte Carlo memungkinkan Anda menjelajahi lebih banyak partisi yang mungkin, meskipun Anda tidak mungkin mendapatkan semuanya - ada cara yang memungkinkan untuk 50/50 membagi 100 titik data yang ditetapkan (!).(10050)1028

Jika Anda mencoba melakukan inferensi (yaitu, membandingkan dua algoritma secara statistik), rata-rata hasil dari validasi lintas silang k memberi Anda (hampir) estimasi kinerja algoritma yang tidak bias, tetapi dengan varian tinggi (seperti yang Anda inginkan). harapkan dari hanya memiliki 5 atau 10 poin data). Karena Anda dapat, pada prinsipnya, menjalankannya selama yang Anda inginkan / mampu, validasi silang Monte Carlo dapat memberi Anda estimasi yang kurang variabel, tetapi lebih bias.k

Beberapa pendekatan menggabungkan keduanya, seperti pada validasi silang 5x2 (lihat Dietterich (1998) untuk ide tersebut, meskipun saya pikir ada beberapa perbaikan lebih lanjut sejak itu), atau dengan mengoreksi bias (misalnya, Nadeau dan Bengio, 2003 ) .

Matt Krause
sumber
2
Seseorang bertanya, melalui antrian suntingan yang disarankan, apakah Monte Carlo dilakukan dengan atau tanpa penggantian. Untuk setiap perjalanan Monte Carlo, pelatihan dan set tes diambil tanpa penggantian (yaitu, setiap titik diberikan, tepat satu kali, ke set kereta atau set tes). Namun, prosesnya dilakukan secara independen, sehingga contoh yang diberikan dapat muncul di set yang sama beberapa kali; ini adalah perbedaan utama antara Monte Carlo dan validasi silang k-fold!
Matt Krause
13

NkkntnvN=k×nvkN=nt+nv

kNkkkkkN2k=Nk=510

Nntnvntntnv(Nnt)N2(Nnt)

kntkntknt


[1] Burman, P. (1989). Sebuah studi perbandingan validasi silang biasa,v

[2] Hastie, T., Tibshirani, R. dan Friedman, J. (2011). Elemen Pembelajaran Statistik: Penambangan Data, Inferensi, dan Prediksi. Ed kedua. New York: Springer.

[3] Zhang, P. (1993). Pemilihan Model Melalui Validasi Palang Muiltfold. Ann. Stat. 21 299–313

seorang Kepala Data
sumber
7

Dua jawaban lainnya sangat bagus, saya hanya akan menambahkan dua gambar serta satu sinonim.


K-fold cross-validation (kFCV):

masukkan deskripsi gambar di sini

Validasi silang Monte Carlo (MCCV) = Validasi pengambilan sampel acak berulang (RRSSV):

masukkan deskripsi gambar di sini


Referensi:

Gambar berasal dari (1) ( halaman 64 dan 65 ), dan sinonim disebutkan dalam (1) dan (2).

Franck Dernoncourt
sumber