Pendahuluan: Mengapa Perlu Split Data?
Train-Test Split adalah teknik fundamental dalam machine learning untuk membagi dataset menjadi dua bagian: data untuk melatih model (training set) dan data untuk menguji performa model (test set).
Mengapa ini penting?
- Model perlu diuji pada data yang belum pernah dilihat sebelumnya
- Mencegah overfitting dan memastikan model dapat generalisasi
- Memberikan estimasi performa yang realistis
- Mendeteksi data leakage dan masalah dalam proses training
Konsep Dasar Split Data
Dataset dibagi menjadi dua bagian utama yang memiliki peran berbeda dalam proses machine learning:
Training Set (70-80%)
Data yang digunakan untuk melatih model. Model akan "belajar" pola dari data ini.
Test Set (20-30%)
Data yang digunakan untuk menguji performa model. Model tidak pernah "melihat" data ini selama training.
Analogi Sederhana: Bayangkan Anda belajar matematika menggunakan buku latihan (training set), lalu mengikuti ujian dengan soal baru yang belum pernah dikerjakan (test set). Jika ujian menggunakan soal yang sama dengan latihan, nilai tinggi tidak menjamin Anda benar-benar paham matematika.
Peringatan: Jika model "melihat" test data saat training (data leakage), evaluasi performa akan menyesatkan dan model akan gagal di dunia nyata.
Simulasi Interaktif
Pilih strategi split di bawah dan lihat bagaimana performa model berbeda pada training vs test set. Perhatikan performance gap untuk setiap strategi.
Pilih Strategi Split:
Sequential Split
Data berurutan (berbahaya!)
Random Split
Data diacak dulu
Cross Validation
Multiple splits
Best Practices
Berikut adalah panduan praktis untuk melakukan train-test split dengan benar:
- Selalu shuffle data sebelum split (kecuali time series)
- Gunakan random seed yang tetap untuk reproducibility
- Split ratio umum: 70-30 atau 80-20 (train-test)
- Untuk dataset kecil, gunakan cross validation
- Untuk dataset besar, simple random split sudah cukup
- Validasi data leakage: pastikan tidak ada informasi test set di training
- Stratified split untuk imbalanced classification
- Time series: gunakan time-based split atau time series CV
Checklist Sebelum Training
- Data sudah di-shuffle?
- Random seed sudah di-set?
- Training dan test set tidak overlap?
- Distribusi kedua set mirip?
- Tidak ada data leakage?