Sekarang saya memiliki R
kerangka data (pelatihan), adakah yang bisa memberi tahu saya cara membagi set data ini secara acak untuk melakukan validasi silang 10 kali lipat?
cross-validation
pengguna22062
sumber
sumber
Jawaban:
caret
memiliki fungsi untuk ini:Kemudian setiap elemen
flds
adalah daftar indeks untuk setiap dataset. Jika dataset Anda dipanggildat
, makadat[flds$train,]
Anda mendapat set pelatihan,dat[ flds[[2]], ]
membuat Anda set lipatan kedua, dll.sumber
Berikut adalah cara sederhana untuk melakukan 10 kali lipat tanpa menggunakan paket:
sumber
Mungkin bukan cara terbaik, tapi di sini ada satu cara untuk melakukannya. Saya cukup yakin ketika saya menulis kode ini saya telah meminjam trik dari jawaban lain di sini, tetapi saya tidak dapat menemukannya untuk ditautkan.
sumber
tolong temukan di bawah ini beberapa kode lain yang saya gunakan (dipinjam dan diadaptasi dari sumber lain). Menyalinnya langsung dari skrip yang baru saja saya gunakan sendiri, tersisa di rutinitas rpart. Bagian yang mungkin paling menarik adalah garis-garis pada penciptaan lipatan. Atau - Anda dapat menggunakan fungsi crossval dari paket bootstrap.
sumber
Semuanya dilakukan untuk Anda dalam satu baris kode!
sumber
Karena saya tidak melakukan pendekatan dalam daftar ini, saya pikir saya dapat membagikan opsi lain untuk orang-orang yang tidak ingin menginstal paket untuk validasi silang cepat
Perhatikan bahwa kode di atas mengasumsikan bahwa data sudah dikocok. Jika ini tidak terjadi, Anda dapat mempertimbangkan untuk menambahkan sesuatu seperti
sumber