Set Pelatihan dan Pengujian: Memisahkan Data

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

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

Anda bisa membayangkan membagi satu set data sebagai berikut:

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

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

Pastikan set pengujian Anda memenuhi dua kondisi 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 memenuhi dua kondisi sebelumnya, sasaran Anda adalah 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 melakukan pekerjaannya dengan sempurna—ada beberapa prediksi yang salah. Namun, performa model ini pada data pengujian dan data pelatihan juga baik. Dengan kata lain, model sederhana ini tidak melakukan overfit dengan data pelatihan.

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

Gambar 2. Memvalidasi model yang dilatih terhadap data pengujian.

Jangan pernah melatih data pengujian. Jika Anda melihat hasil yang sangat baik pada metrik evaluasi, itu mungkin 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. Kami membagi data menjadi set pelatihan dan pengujian, dengan pembagian 80-20. Setelah pelatihan, model mencapai presisi 99% pada set pelatihan dan set pengujian. Kita mengharapkan presisi yang lebih rendah pada set pengujian, jadi kita mengamati kembali data dan menemukan bahwa banyak contoh dalam set pengujian merupakan duplikat dari contoh dalam set pelatihan (kita lalai menghapus entri duplikat untuk email spam yang sama dari database input sebelum memisahkan data). Kita telah secara tidak sengaja melatih beberapa data pengujian, dan akibatnya, kita tidak lagi secara akurat mengukur seberapa baik model melakukan generalisasi ke data baru.