K-fold cross-validation adalah teknik yang digunakan untuk menilai performa model. Hal ini sangat berguna untuk memperkirakan seberapa baik suatu model akan melakukan generalisasi terhadap data baru yang tidak terlihat. Prosesnya melibatkan pembagian kumpulan data menjadi subset 'k' atau lipatan dengan ukuran yang kira-kira sama. Berikut rincian langkah-langkahnya:
1. Pemisahan Kumpulan Data:
Himpunan data dibagi menjadi himpunan bagian atau lipatan 'k' yang berukuran sama. Misalnya, jika Anda memiliki 1.000 sampel dan memilih 'k' sebagai 5, setiap lipatan akan berisi 200 sampel.
2. Pelatihan dan Evaluasi Berulang:
Model dilatih 'k' kali. Dalam setiap iterasi, lipatan berbeda digunakan sebagai set validasi, dan lipatan sisanya digunakan untuk pelatihan. Misalnya:
-
Iterasi 1: Lipat 1 sebagai validasi, Lipat 2 hingga k untuk pelatihan
-
Iterasi 2: Lipat 2 sebagai validasi, Lipat 1 dan 3 hingga k untuk pelatihan
-
Iterasi 3: Lipat 3 sebagai validasi, Lipat 1 dan 2, dan 4 hingga k untuk pelatihan
-
...dan seterusnya hingga semua lipatan telah digunakan sebagai set validasi.
3. Evaluasi Kinerja:
Setelah setiap iterasi, performa model dievaluasi menggunakan metrik yang dipilih (misalnya akurasi, presisi, perolehan, dll.) pada set validasi. Metrik performa dari setiap iterasi dirata-ratakan atau digabungkan untuk memberikan estimasi keseluruhan performa model.
4. Agregasi Metrik:
Metrik performa (misalnya skor akurasi) dari setiap iterasi dirata-ratakan atau digabungkan untuk memberikan penilaian performa model secara keseluruhan. Metrik gabungan ini mewakili performa model yang diharapkan pada data yang tidak terlihat.
Keuntungan validasi silang K-fold dibandingkan pemisahan pelatihan/pengujian sederhana
-
Penggunaan Data yang Lebih Baik: Validasi silang K-fold memanfaatkan data yang tersedia dengan lebih baik karena setiap sampel digunakan untuk pelatihan dan validasi.
-
Pengurangan Varians dalam Estimasi Performa: Memberikan estimasi performa model yang lebih andal dengan mengurangi varians yang terkait dengan pemisahan pelatihan/pengujian.
-
Generalisasi: Membantu dalam memahami performa model pada subkumpulan data yang berbeda, sehingga dapat menilai kemampuan generalisasinya.
Memilih nilai 'k'
-
Nilai 'k' yang lebih tinggi: Menggunakan nilai 'k' yang lebih tinggi (misalnya 10 atau lebih) menghasilkan kumpulan validasi yang lebih kecil, yang dapat menyebabkan bias lebih rendah dalam estimasi kinerja tetapi biaya komputasi lebih tinggi.
-
Nilai 'k' yang lebih rendah: Menggunakan nilai 'k' yang lebih rendah (misalnya 3 atau 5) mengurangi biaya komputasi namun dapat menyebabkan bias yang lebih tinggi dalam estimasi kinerja karena validasi yang lebih kecil set.
Dalam skenario praktis
-
Untuk kumpulan data yang besar, nilai 'k' yang lebih tinggi dapat memakan biaya komputasi yang mahal.
-
Jika kumpulan datanya kecil, 'k' yang lebih tinggi mungkin tidak menyediakan cukup data di setiap lipatan untuk pelatihan model yang kuat.
-
Umumnya, nilai seperti 5 atau 10 biasanya digunakan karena nilai tersebut menyeimbangkan antara efisiensi komputasi dan estimasi kinerja yang andal.