Set Pelatihan dan Pengujian: Memisahkan Data

Modul sebelumnya memperkenalkan ide tentang membagi kumpulan data menjadi dua subset:

  • set pelatihan—subset untuk melatih model.
  • set pengujian—subset untuk menguji model yang sudah dilatih.

Anda bisa membayangkan membagi satu kumpulan data sebagai berikut:

Garis horizontal dibagi menjadi dua bagian: 80% di antaranya adalah set pelatihan dan 20% adalah set pengujian.

Gambar 1. Membagi satu kumpulan data menjadi set pelatihan dan pengujian.

Pastikan set pengujian Anda memenuhi dua ketentuan berikut:

  • Cukup besar untuk membuahkan hasil yang bermakna secara statistik.
  • Mewakili kumpulan data secara keseluruhan. Dengan kata lain, jangan memilih set pengujian dengan karakteristik yang berbeda dari set pelatihan.

Dengan asumsi bahwa set pengujian Anda telah memenuhi dua ketentuan tersebut, tujuan Anda adalah untuk membuat model yang menggeneralisasi data baru dengan baik. Set pengujian kita berfungsi sebagai proxy untuk data baru. Misalnya, perhatikan gambar berikut. Perhatikan bahwa model yang dipelajari untuk data pelatihan sangat sederhana. Model ini tidak berfungsi dengan sempurna—beberapa prediksinya salah. Akan tetapi, performa model ini pada data pengujian dan data pelatihan hampir sama. Dengan kata lain, model sederhana ini tidak melakukan overfitting terhadap data pelatihan.

Dua model: satu model dijalankan pada data pelatihan dan model lainnya dijalankan pada data pengujian. Modelnya sangat sederhana, hanya berupa garis yang membagi titik oranye dari titik biru. Kerugian pada data pelatihan serupa dengan kerugian pada data pengujian.

Gambar 2. Melakukan validasi model yang sudah dilatih terhadap data pengujian.

Jangan pernah melatih data pengujian. Jika Anda melihat hasil yang sangat baik pada metrik evaluasi Anda, hasil tersebut mungkin adalah tanda bahwa Anda tidak sengaja melatih set pengujian. Misalnya, akurasi tinggi mungkin menunjukkan bahwa data pengujian telah bocor ke dalam set pelatihan.

Misalnya, pertimbangkan model yang memprediksi apakah email adalah spam, menggunakan baris subjek, isi email, dan alamat email pengirim sebagai fitur. Kita membagi data menjadi set pelatihan dan pengujian, dengan rasio pembagian 80-20. Setelah pelatihan, tingkat presisi model mencapai 99% pada kedua set pelatihan dan pengujian. Kita mengharapkan presisi yang lebih rendah pada set pengujian, sehingga kita melihat data kembali dan menemukan bahwa banyak contoh dalam set pengujian adalah duplikat dari contoh dalam set pelatihan (kita lupa untuk menghapus entri duplikat untuk email spam yang sama dari database masukan kita sebelum membagi data). Kita secara tidak sengaja telah melatih beberapa data pengujian, dan akibatnya, kita tidak lagi mengukur seberapa baik model kita melakukan generalisasi ke data baru secara akurat.