Train, Validation, Test: Mencegah Data Leakage
Skor tinggi belum tentu menunjukkan kemampuan pada data baru. Pemisahan data perlu mengikuti cara model digunakan, termasuk urutan waktu dan kelompok identitas yang terdapat dalam dataset.
Tetapkan peran data
Data train digunakan untuk belajar parameter, validation membantu memilih konfigurasi, dan test dipakai untuk pemeriksaan akhir. Jika hasil test terus dipakai memilih fitur, bagian itu telah menjadi bagian pengembangan. Simpan catatan eksperimen dan jelaskan proses pemilihan model agar skor akhir tidak tampil seolah berasal dari evaluasi yang sepenuhnya terpisah.
Ikuti waktu dan kelompok
Prediksi masa depan perlu diuji pada periode setelah data train. Banyak kunjungan pasien atau foto objek yang sama dapat memerlukan pemisahan berdasarkan kelompok. Random split per baris bisa membuat model mengenali identitas atau kondisi yang hampir sama. Tentukan struktur split dari skenario penggunaan, bukan dari pilihan yang menghasilkan skor tertinggi.
Audit waktu ketersediaan fitur
Status penutupan akun tidak boleh dipakai memprediksi churn jika baru diketahui setelah churn terjadi. Tulis kapan setiap fitur tersedia. Kolom yang sangat kuat perlu diperiksa asalnya; performa yang tidak masuk akal dapat menunjukkan informasi masa depan atau salinan target yang tersamar.
Masukkan preprocessing ke pipeline
Imputer, scaler, dan pemilihan fitur memiliki parameter yang dipelajari. Pastikan proses itu belajar pada train setiap fold. Jangan menghitung parameter dari seluruh dataset sebelum split. Laporkan pula batas generalisasi, misalnya model belum diuji pada lokasi, musim, atau kelompok pengguna yang berbeda.
Tugas Praktik
Tulis tiga kemungkinan kebocoran pada data transaksi latihan. Bandingkan split acak dan split waktu, lalu jelaskan perbedaannya.
Periksa Hasilmu
- Test tidak dipakai memilih model
- Identitas kelompok diperiksa
- Fitur tersedia saat prediksi
- Preprocessing mengikuti split
Bacaan lanjutan: Scikit-learn: common pitfalls.