Apa sebenarnya Cross-Validation itu?
Berdasarkan pemahaman saya dari google dan postingan lain, seperti ini Untuk apa validasi silang? dan Apa itu validasi silang? . Saya memahami bahwa (k- fold) cross validation berarti membagi data menjadi ($k-1$) pelatihan dan 1 set pengujian. Dengan kata lain, digunakan untuk mencari akurasi model.
Jadi, apakah itu berarti jika saya melakukan validasi silang, maka saya tidak perlu membagi data saya menjadi set data pelatihan dan pengujian? Juga, katakan jika saya melakukan (di r):
model = train(target~., data = data, method = "glmnet",
trControl = trainControl("cv", number = 10),
tuneLength = 10
)
kode ini akan menemukan saya model terbaik dalam 10 percobaan itu, dan kemudian ketika saya melakukan prediksi, saya menggunakan model terbaik?
Jawaban
Validasi silang adalah bentuk khusus yang memisahkan data menjadi data pelatihan dan pengujian, di mana pemisahan ini tidak hanya terjadi satu kali tetapi sejumlah $n$ kali.
Juga, katakan jika saya lakukan (di r)
Ada paket yang sangat kuat yang bisa dimuat ke R, bernama caret. caretmemberikan fungsi trainyang sangat kuat yang digunakan dalam kode sampel Anda. caretmemang menyita banyak upaya untuk menemukan kumpulan parameter terbaik (dari kisi kemungkinan kombinasi) untuk pembelajaran mesin; termasuk melalui validasi silang. Anda tidak perlu membagi data dengan tangan tetapi pemisahan akan terjadi.
kode ini akan menemukan saya model terbaik
itu akan menemukan kombinasi parameter terbaik dari kisi kombinasi parameter tertentu dengan mencoba. Sebelum menggunakan alat yang ampuh seperti trainAnda harus memahami opsinya dengan baik, juga memahami, bagaimana memengaruhi kisi parameter mana yang sedang dicoba.
Untungnya caretdilengkapi dengan penjelasan yang bagus. Mulai di sini:https://topepo.github.io/caret/model-training-and-tuning.html atau lebih baik mulai dari awal buku itu.