Apa itu training set, validation set, dan test set?
Training set, validation set, dan test set adalah tiga bagian dataset yang tidak saling tumpang tindih, masing-masing dengan satu tugas. Training set mencocokkan parameter model, validation set memilih pengaturan seperti ukuran model atau learning rate, dan test set memberi satu estimasi akhir tentang performa pada data yang tidak pernah memengaruhi model. Pemisahan inilah yang membuat skor yang dilaporkan punya arti.
Semua proyek supervised learning memakai pembagian ini, dari regresi di scikit-learn sampai neural network besar. Kompetisi Kaggle menyembunyikan private test set dengan alasan yang sama, dan benchmark publik seperti ImageNet memisahkan label test-nya. Kalau pembagiannya buruk, entah karena leakage, duplikat, atau tuning berulang pada test set, model bisa terlihat sangat bagus di lab tetapi gagal di produksi.
Ide utama
- Skor training selalu membaik seiring kompleksitas, jadi tidak bisa dipakai untuk memilih model.
- Training set mencocokkan parameter, validation set memilih hyperparameter, dan test set melaporkan skor akhir.
- Ketiga bagian harus berasal dari distribusi yang sama, kecuali pada time series, ketika test set berasal dari masa depan.
- Validation loss berbentuk U menandai peralihan dari underfitting ke overfitting.
- Cross-validation memakai ulang data untuk validation ketika sampelnya sedikit.
- Keputusan apa pun yang didasarkan pada hasil test mengubah test set menjadi validation set kedua.
Pertanyaan umum
Berapa rasio pembagian train/validation/test yang baik?
70/15/15 dan 80/10/10 adalah pilihan umum untuk dataset berisi beberapa ribu sampai beberapa ratus ribu contoh. Yang menentukan adalah ukuran absolut test set: dengan 1.000 contoh test dan akurasi 90%, standard error-nya sekitar √(0.9 × 0.1 / 1000) ≈ 0,95 poin persentase. Dataset yang sangat besar bisa memberi 98% atau lebih untuk training dan tetap punya skor validation dan test yang presisi.
Apa bedanya validation set dan test set?
Keduanya dipisahkan dari training, tetapi validation set dipakai berkali-kali untuk membandingkan model dan pengaturan, sedangkan test set dipakai sekali di akhir. Karena validation set memengaruhi keputusan, skornya cenderung terlalu tinggi. Skor test set baru bebas bias kalau tidak ada pilihan yang dibuat berdasarkan skor itu.
Apa itu stratified split?
Stratified split menjaga porsi tiap kelas tetap sama di setiap bagian. Dengan 5% contoh positif, pembagian acak pada dataset kecil bisa membuat test set nyaris tanpa contoh positif, sedangkan stratifikasi menjamin sekitar 5% di tiap bagian. Library seperti scikit-learn mendukungnya lewat argumen stratify.
Bolehkah melatih model dengan validation set setelah tuning?
Boleh. Setelah hyperparameter ditetapkan, training ulang pada gabungan data training dan validation biasanya menghasilkan model yang sedikit lebih baik karena contohnya lebih banyak. Test set tetap dipisahkan, dan dipakai untuk menilai model akhir ini.
Penjelasan terkait
- Overfitting dan Underfitting · Bias-variance tradeoff dan generalisasi
- Cross-Validation · Evaluasi dengan k-fold, stratified, dan leave-one-out
- Evaluasi Model dan Metrik · Precision, recall, F1, kurva ROC, dan metrik regresi
- Hyperparameter · Pengaturan yang kamu pilih sebelum training dimulai
- Learning Curve · Mendiagnosis underfitting dan overfitting dari ukuran training set
- Bias-Variance Tradeoff · Kenapa model mengalami underfitting atau overfitting, lewat dekomposisi dasarnya
Referensi
- James, Witten, Hastie & Tibshirani, "An Introduction to Statistical Learning", ch. 5
- Kaufman, Rosset, Perlich & Stitelman (2012), "Leakage in Data Mining: Formulation, Detection, and Avoidance", ACM TKDD
- Recht, Roelofs, Schmidt & Shankar (2019), "Do ImageNet Classifiers Generalize to ImageNet?", ICML
- Goodfellow, Bengio & Courville, "Deep Learning", ch. 5
Terakhir diperbarui