Data Tidak Seimbang

Set data klasifikasi dengan proporsi class yang miring disebut tidak seimbang. Class yang membentuk sebagian besar set data disebut class mayoritas. Proporsi yang lebih kecil adalah kelas minoritas.

Apa yang dianggap tidak seimbang? Jawabannya dapat berkisar dari ringan hingga ekstrem, seperti yang ditunjukkan tabel di bawah ini.

Tingkat ketidakseimbangan Proporsi Kelas Minoritas
Ringan 20-40% set data
Sedang 1–20% dari set data
Ekstrem <1% dari set data

Mengapa harus mencari data yang tidak seimbang? Anda mungkin perlu menerapkan teknik pengambilan sampel tertentu jika memiliki tugas klasifikasi dengan set data yang tidak seimbang.

Perhatikan contoh model berikut yang mendeteksi penipuan. Instance penipuan terjadi sekali per 200 transaksi dalam set data ini, sehingga dalam distribusi yang sebenarnya, sekitar 0,5% data bernilai positif.

Grafik batang dengan dua batang. Satu batang menunjukkan sekitar 200 transaksi negatif, sedangkan
batang lain menunjukkan 1 transaksi
positif.

Mengapa hal ini akan menimbulkan masalah? Dengan sedikit positif yang relatif terhadap negatif, model pelatihan akan menghabiskan sebagian besar waktunya pada contoh negatif dan tidak belajar cukup dari contoh positif. Misalnya, jika ukuran tumpukan Anda adalah 128, banyak batch tidak akan memiliki contoh positif, sehingga gradien akan kurang informatif.

Jika Anda memiliki set data yang tidak seimbang, coba pelatihan distribusi yang sebenarnya terlebih dahulu. Jika model berfungsi dengan baik dan digeneralisasi, berarti Anda sudah selesai. Jika tidak, coba teknik downsampling dan upweight berikut.

Downsampling dan Upweighting

Cara yang efektif untuk menangani data yang tidak seimbang adalah dengan menurunkan sampel dan membebani class mayoritas. Mari kita mulai dengan menentukan dua istilah baru tersebut:

  • Downsampling (dalam konteks ini) berarti melatih subset yang tidak proporsional secara rendah dari contoh class mayoritas.
  • Pembobotan berarti menambahkan bobot contoh ke class dengan pengurangan sampel yang sama dengan faktor yang Anda gunakan untuk mengurangi sampel.

Langkah 1: Turunkan sampel kelas mayoritas. Pertimbangkan kembali contoh set data penipuan, dengan 1 positif hingga 200 negatif. Downsampling dengan faktor 10 akan meningkatkan keseimbangan menjadi 1 positif menjadi 20 negatif (5%). Meskipun set pelatihan yang dihasilkan masih cukup tidak seimbang, proporsi positif ke negatif jauh lebih baik daripada proporsi sangat tidak seimbang asli (0,5%).

Grafik batang dengan dua batang. Satu batang menunjukkan 20 transaksi negatif, sedangkan
batang lain menunjukkan 1 transaksi
positif.

Langkah 2: Beratkan class downsampled: Langkah terakhir adalah menambahkan bobot contoh ke class downsampled. Karena kita mengurangi sampel dengan faktor 10, bobot contoh harus 10.

Diagram konseptual downsampling dan upweight. Langkah 1, drop down,
mengambil contoh yang dipilih secara acak dari blok yang mewakili set data
class mayoritas. Langkah 2, penambahan berat, menambahkan bobot ke setiap contoh yang dipilih secara acak.

Anda mungkin terbiasa mendengar istilah bobot jika istilah tersebut mengacu pada parameter model, seperti koneksi dalam jaringan neural. Di sini kita berbicara tentang bobot contoh, yang berarti menghitung setiap contoh dengan lebih penting selama pelatihan. Bobot contoh 10 berarti model memperlakukan contoh tersebut sebagai 10 kali lebih penting (saat kehilangan komputasi) sebagaimana contoh 1.

Bobot harus sama dengan faktor yang Anda gunakan untuk menurunkan sampel:

\[\text{ \{example weight\} = \{original example weight\} × \{downsampling factor\} }\]

Mengapa Downsample dan Upweight?

Menambahkan sampel bobot setelah downsampling mungkin tampak aneh. Kami berusaha membuat model kami menjadi lebih baik di kelas minoritas -- mengapa kami menimbang berat sebagian besar? Berikut perubahan yang dihasilkan:

  • Konvergensi yang lebih cepat: Selama pelatihan, kita melihat class minoritas lebih sering, yang akan membantu model konvergen lebih cepat.
  • Ruang disk: Dengan menggabungkan class mayoritas ke dalam contoh yang lebih sedikit dengan bobot yang lebih besar, kita menghabiskan lebih sedikit ruang disk untuk menyimpannya. Penghematan ini memungkinkan lebih banyak ruang disk untuk class minoritas, sehingga kami dapat mengumpulkan jumlah yang lebih banyak dan contoh yang lebih luas dari class tersebut.
  • Kalibrasi: Pembobotan memastikan model kami masih dikalibrasi; output-nya tetap dapat ditafsirkan sebagai probabilitas.