Dalam pertanyaan yang baru-baru ini diterima dengan baik, Tim bertanya kapan data yang tidak seimbang benar-benar menjadi masalah dalam Pembelajaran Mesin ? Premis dari pertanyaan ini adalah bahwa ada banyak literatur pembelajaran mesin yang membahas keseimbangan kelas dan masalah kelas yang tidak seimbang . Idenya adalah bahwa dataset dengan ketidakseimbangan antara kelas positif dan negatif menyebabkan masalah untuk beberapa klasifikasi pembelajaran mesin (saya termasuk model probabilistik di sini) algoritma, dan metode harus dicari untuk "menyeimbangkan" dataset, mengembalikan 50/50 sempurna terbagi antara kelas positif dan negatif.
Arti umum dari jawaban yang dipilih adalah "tidak, setidaknya jika Anda bijaksana dalam pemodelan". M. Henry L., dalam komentar yang dipilih untuk jawaban yang diterima, menyatakan
[...] tidak ada masalah tingkat rendah dengan menggunakan data yang tidak seimbang. Dalam pengalaman saya, saran untuk "menghindari data yang tidak seimbang" adalah algoritma khusus, atau kebijaksanaan yang diturunkan. Saya setuju dengan AdamO bahwa secara umum, data yang tidak seimbang tidak menimbulkan masalah konseptual untuk model yang ditentukan dengan baik.
AdamO berpendapat bahwa "masalah" dengan keseimbangan kelas benar-benar salah satu kelangkaan kelas
Oleh karena itu, setidaknya dalam regresi (tapi saya curiga dalam semua keadaan), satu-satunya masalah dengan data yang tidak seimbang adalah bahwa Anda secara efektif memiliki ukuran sampel yang kecil. Jika ada metode yang cocok untuk jumlah orang di kelas yang lebih jarang, seharusnya tidak ada masalah jika proporsi keanggotaan mereka tidak seimbang.
Jika ini adalah masalah sebenarnya yang ada, ia meninggalkan pertanyaan terbuka: apa tujuan dari semua metode resampling yang dimaksudkan untuk menyeimbangkan dataset: oversampling, undersampling, SMOTE, dll? Jelas mereka tidak mengatasi masalah secara implisit memiliki ukuran sampel yang kecil, Anda tidak dapat membuat informasi dari ketiadaan!
sumber
Jawaban:
Beberapa teknik pengambilan sampel disesuaikan untuk bias (jika tingkat populasi diketahui dan berbeda), tetapi saya setuju dengan anggapan bahwa kelas yang tidak seimbang bukanlah masalahnya sendiri. Salah satu alasan utama adalah kinerja pemrosesan. Jika kelas target kami, misalnya, adalah kasus langka yang ekstrim pada 1: 100000, dataset pemodelan kami akan sangat besar dan komputasi akan sulit. Pengambilan sampel, apa pun strateginya, selalu membuang beberapa data untuk mengurangi ukuran dataset total. Saya kira perbedaan di antara semua strategi pengambilan sampel yang berbeda, hanya kepintaran di mana data yang kita buang tanpa mengorbankan kehilangan dalam kemungkinan prediksi.
sumber
Masalah yang coba dipecahkan oleh metode ini adalah meningkatkan dampak kelas minoritas pada fungsi biaya. Ini karena algos berusaha menyesuaikan seluruh dataset dan kemudian beradaptasi dengan mayoritas. Pendekatan lain adalah dengan menggunakan bobot kelas, dan pendekatan ini dalam banyak kasus memberikan hasil yang lebih baik, karena tidak ada kehilangan informasi dengan undersampling atau kehilangan kinerja dan pengenalan kebisingan dengan oversampling.
sumber
Saya akan memberi Anda contoh yang lebih ekstrem. Pertimbangkan kasus di mana Anda memiliki dataset dengan 99 titik data berlabel positif dan hanya satu berlabel negatif. Selama pelatihan, model Anda akan menyadari bahwa jika ia mengklasifikasikan segala sesuatu sebagai positif, itu akan berakhir dengan itu. Salah satu cara untuk memperbaikinya adalah dengan melakukan oversample kelas yang kurang terwakili dan yang lain adalah dengan melakukan undersample kelas yang terlalu terwakili. Misalnya, dalam kumpulan data 70 label positif dan 30 label negatif, saya dapat mengambil sampel label negatif dengan penggantian dan label positif tanpa penggantian yang akan mengakibatkan model saya menemukan lebih banyak label negatif selama pelatihan. Dengan cara ini, jika model saya mencoba untuk mengklasifikasikan segala sesuatu sebagai positif, itu akan menimbulkan kerugian lebih besar daripada seharusnya.
Satu lagi pendekatan yang tidak berkaitan dengan pengambilan sampel adalah untuk menyesuaikan fungsi biaya untuk memberikan bobot lebih tinggi ke titik data dengan label minoritas. Misalnya, jika Anda menggunakan kehilangan NLL dalam dataset di mana 1's terlalu banyak diwakili dibandingkan dengan 0 di antara label, Anda bisa menyesuaikan fungsi kerugian Anda menjadi:
sumber
Saya akan tidak setuju dengan premis bahwa data yang tidak seimbang bukanlah masalah dalam pembelajaran mesin. Mungkin kurang begitu dalam regresi, tetapi pasti dalam klasifikasi.
Data yang tidak seimbang relevan dalam aplikasi Machine Learning karena penurunan kinerja algoritma (penelitian yang saya pikirkan secara khusus tentang pengklasifikasi) dalam pengaturan ketidakseimbangan kelas.
Ambil masalah klasifikasi biner sederhana dengan perbandingan contoh pelatihan 25: 1 dari kelas A 'vs' kelas B '. Penelitian telah menunjukkan bahwa keakuratan yang berkaitan dengan klasifikasi kelas B terpukul hanya karena penurunan rasio data pelatihan. Masuk akal, karena semakin sedikit # contoh pelatihan yang Anda miliki, semakin buruk pengklasifikasi Anda akan melatih data itu. Seperti yang dikatakan salah satu komentator, Anda tidak dapat membuat sesuatu dari ketiadaan. Dari makalah yang saya lihat, dalam masalah klasifikasi multi-kelas, tampaknya Anda perlu mendapatkan rasio 10: 1 untuk mulai memiliki dampak signifikan pada keakuratan kelas minoritas. Mungkin orang yang membaca literatur berbeda dari yang pernah saya lihat memiliki pendapat berbeda.
Jadi, solusi yang diusulkan adalah: Mengatasi kelas minoritas, Mengurangi kelas mayoritas, atau menggunakan SMOTE pada kelas minoritas. Ya, Anda tidak dapat benar-benar membuat data entah dari mana (SMOTE sort-of tidak, tetapi tidak persis) kecuali Anda masuk ke pembuatan data sintetis untuk kelas minoritas (tidak ada metode sederhana). Teknik-teknik lain seperti MixUp dan sejenisnya berpotensi jatuh ke dalam konsep ini, tapi saya pikir mereka lebih regulator daripada solusi ketidakseimbangan kelas. Di koran-koran yang saya baca, Oversampling> SMOTE> Undersampling.
Terlepas dari teknik Anda, Anda mengubah hubungan antara kelas mayoritas dan minoritas yang dapat mempengaruhi kejadian. Dengan kata lain, jika Anda membuat classifier untuk mendeteksi penyakit otak super langka X yang memiliki insiden 1 dalam 100.000 dan classifier Anda adalah 1: 1, Anda mungkin lebih sensitif dan kurang spesifik dengan jumlah positif palsu yang lebih besar. . Jika penting bahwa Anda mendeteksi kasus dan wasit nanti, Anda baik-baik saja. Jika tidak, Anda membuang banyak waktu dan uang orang lain. Masalah ini pada akhirnya perlu ditangani.
Jadi untuk menjawab pertanyaan:
tl / dr: Operasi penyeimbangan kelas seperti Over / Undersampling dan SMOTE (dan data sintetik) ada untuk meningkatkan kinerja algoritma pembelajaran mesin (classifier) dengan menyelesaikan hit kinerja bawaan pada suatu algoritma yang disebabkan oleh ketidakseimbangan itu sendiri .
sumber