Kapan saya harus menyeimbangkan kelas dalam set data pelatihan?

29

Saya memiliki kursus online, di mana saya belajar, bahwa kelas yang tidak seimbang dalam data pelatihan dapat menyebabkan masalah, karena algoritma klasifikasi berlaku untuk aturan mayoritas, karena memberikan hasil yang baik jika ketidakseimbangan itu terlalu banyak. Dalam suatu tugas seseorang harus menyeimbangkan data melalui undersampling kelas mayoritas.

Namun di blog ini, seseorang mengklaim bahwa data seimbang lebih buruk:

https://matloff.wordpress.com/2015/09/29/unbalanced-data-is-a-problem-no-balanced-data-is-worse/

Jadi yang mana? Haruskah saya menyeimbangkan data atau tidak? Apakah itu tergantung pada algoritma yang digunakan, karena beberapa mungkin dapat mahir dengan proporsi kelas yang tidak seimbang? Jika demikian, mana yang dapat diandalkan pada data yang tidak seimbang?

Zelphir Kaltstahl
sumber

Jawaban:

28

Alasan intuitif telah dijelaskan di blogpost:

Jika sasaran kami adalah Prediksi, ini akan menyebabkan bias yang pasti. Dan lebih buruk lagi, ini akan menjadi bias permanen, dalam arti bahwa kita tidak akan memiliki perkiraan yang konsisten ketika ukuran sampel bertambah.

Jadi, bisa dibilang masalah data seimbang (buatan) lebih buruk daripada kasus tidak seimbang.

Data yang seimbang baik untuk klasifikasi, tetapi Anda jelas kehilangan informasi tentang frekuensi penampilan, yang akan memengaruhi metrik akurasi sendiri, serta kinerja produksi.

Katakanlah Anda mengenali huruf tulisan tangan dari alfabet bahasa Inggris (26 huruf). Overbalancing setiap penampilan huruf akan memberikan setiap huruf kemungkinan diklasifikasikan (dengan benar atau tidak) kira-kira 1/26, sehingga classifier akan melupakan distribusi huruf yang sebenarnya dalam sampel asli. Dan tidak masalah ketika classifier dapat menggeneralisasi dan mengenali setiap huruf dengan akurasi tinggi .

Tetapi jika akurasi dan yang paling penting generalisasi tidak "terlalu tinggi" (saya tidak bisa memberikan definisi - Anda dapat menganggapnya hanya sebagai "kasus terburuk") - poin yang salah klasifikasi kemungkinan besar akan didistribusikan secara merata di antara semua huruf , sesuatu seperti:

"A" was misclassified 10 times
"B" was misclassified 10 times
"C" was misclassified 11 times
"D" was misclassified 10 times
...and so on

Berbeda dengan tanpa menyeimbangkan (dengan asumsi bahwa "A" dan "C" memiliki probabilitas penampilan yang jauh lebih tinggi dalam teks)

"A" was misclassified 3 times
"B" was misclassified 14 times
"C" was misclassified 3 times
"D" was misclassified 14 times
...and so on

Jadi sering kasus akan mendapatkan kesalahan klasifikasi yang lebih sedikit. Apakah itu baik atau tidak tergantung pada tugas Anda. Untuk pengenalan teks alami, orang dapat berargumen bahwa huruf dengan frekuensi yang lebih tinggi lebih layak, karena mereka akan mempertahankan semantik teks asli, membawa tugas pengenalan lebih dekat ke prediksi (di mana semantik mewakili kecenderungan ). Tetapi jika Anda mencoba mengenali sesuatu seperti tangkapan layar kunci ECDSA (lebih entropi -> kurang prediksi) - menjaga data tidak seimbang tidak akan membantu. Jadi, sekali lagi, itu tergantung.

Perbedaan yang paling penting adalah bahwa estimasi keakuratannya sendiri menjadi bias (seperti yang Anda lihat dalam contoh alfabet seimbang), jadi Anda tidak tahu bagaimana perilaku model dipengaruhi oleh poin paling langka atau paling sering.

PS Anda selalu dapat melacak kinerja klasifikasi tidak seimbang dengan metrik Precision / Recall terlebih dahulu dan memutuskan apakah Anda perlu menambahkan balancing atau tidak.


EDIT : Ada kebingungan tambahan yang terletak pada teori estimasi tepatnya pada perbedaan antara rata - rata sampel dan rata -rata populasi. Misalnya, Anda mungkin tahu (boleh dibilang) distribusi huruf bahasa Inggris yang sebenarnya dalam alfabet , tetapi sampel Anda (set pelatihan) tidak cukup besar untuk memperkirakannya dengan benar (dengan ). Jadi untuk mengkompensasi , kadang-kadang direkomendasikan untuk menyeimbangkan kembali kelas berdasarkan populasi itu sendiri atau parameter yang diketahui dari sampel yang lebih besarp(xi|θ)p(xi|θ^)θ^iθi(estimator jadi lebih baik). Namun, dalam praktiknya tidak ada jaminan bahwa "sampel yang lebih besar" didistribusikan secara identik karena risiko mendapatkan data yang bias pada setiap langkah (katakanlah huruf bahasa Inggris yang dikumpulkan dari literatur teknis vs fiksi vs seluruh perpustakaan) sehingga menyeimbangkan masih bisa berbahaya.

Jawaban ini juga harus menjelaskan kriteria penerapan untuk menyeimbangkan:

Masalah ketidakseimbangan kelas disebabkan oleh tidak adanya pola yang cukup dimiliki oleh kelas minoritas, bukan oleh rasio pola positif dan negatif itu sendiri. Umumnya jika Anda memiliki cukup data, "masalah ketidakseimbangan kelas" tidak muncul

Sebagai kesimpulan, balancing artifisial jarang berguna jika set pelatihan cukup besar. Tidak adanya data statistik dari sampel yang lebih besar yang terdistribusi secara identik juga menunjukkan tidak perlu penyeimbangan buatan (terutama untuk prediksi), jika tidak kualitas penaksir sama baiknya dengan "probabilitas untuk bertemu dinosaurus":

Berapa probabilitas untuk bertemu dinosaurus di jalan?

1/2 Anda bertemu dengan dinosaurus atau Anda tidak bertemu dinosaurus

dk14
sumber
5
Saya pikir selain penjelasan masalah ini, yang penting dibawa pulang dari jawaban ini adalah bahwa seseorang harus mencoba tidak seimbang terlebih dahulu dan memeriksa hasilnya dan hanya jika perlu lakukan penyeimbangan dan periksa hasilnya. +1
Zelphir Kaltstahl
Jadi, dengan kata lain, dengan kelas yang didistribusikan secara merata ke subset pelatihan, model tersebut akan kehilangan akurasinya dalam data yang tidak terlihat, bukan? Tetapi, dalam kasus yang berlawanan, di mana Anda mencoba untuk mengekstraksi entri dataset secara acak untuk subset pelatihan / pengujian Anda, akankah classifier Anda bekerja lebih baik?
Christos K.
@ChristosK. Seperti yang banyak dinyatakan, ketika Anda melihat masalah sebagai klasifikasi, sulit untuk berpikir tentang prediksi. Bagaimanapun, jika Anda menghapus bias (sampel "acak") - Anda perlu sampel yang lebih besar untuk meningkatkan kinerja. Itu hanya "biasanya" sampel cukup besar untuk melestarikan semantik, sehingga overbalancing hanya akan menyakiti dan bertindak seperti palu regularisasi yang "meratakan" segalanya tanpa pertimbangan yang tepat. Juga, seperti yang disarankan oleh metafora dinosaurus, "seimbang" tidak berarti "seimbang" - Anda melakukan penyeimbangan yang tepat hanya ketika Anda tahu bahwa beberapa probabilitas salah diartikan dalam sampel "acak".
dk14
1
@ChristosK. Terima kasih atas beberapa klarifikasi. Ini tidak sama dengan yang saya maksudkan tetapi pendekatannya sangat mirip. Rekomendasi biasa untuk penerapan k-fold adalah melakukannya ketika sampel awal Anda "agak kecil". Tidak yakin, tetapi melipat seharusnya tidak melukai apa pun - hanya saja butuh lebih banyak berjalan, dan semakin sedikit Anda peduli dengan prediksi, semakin sedikit Anda peduli tentang generalisasi / kinerja yang seautologis kedengarannya :). Tetapi secara keseluruhan - k-fold berarti lebih sedikit bias pada dasarnya.
dk14
1
@ChristosK. Oh, dan sebagai peringatan, rasio spam / bukan-spam mungkin merupakan variabel acak non-stasioner sendiri. Dengan semua "berita palsu", "troll Rusia" dan hal-hal lain saya akan berhati-hati dengan asumsi seperti itu - rasio bisa menjadi bias juga. Anda mungkin ingin memperkirakan PrecisionRecall pada pengklasifikasi Anda terlebih dahulu, jika ada sesuatu yang kurang sampel - Saya lebih suka mengumpulkan / menghasilkan (?) Lebih banyak data.
dk14
17

Konsisten dengan komentar @ kjetil-b-halvorsen, adopsi pembelajaran mesin yang cepat telah membingungkan para peneliti tentang prediksi dan klasifikasi. Seperti yang saya jelaskan lebih terinci di sini , klasifikasi hanya sesuai untuk sebagian kecil kasus. Ketika hasilnya jarang (atau terlalu umum), probabilitas adalah segalanya karena dalam kasus itu orang hanya dapat berbicara tentang kecenderungan , bukan tentang memprediksi kejadian individu.

Dalam statistik, kami mempelajari beberapa waktu lalu bahwa metode apa pun yang mengharuskan seseorang untuk mengecualikan beberapa data sangat mencurigakan. Jadi tujuan menyeimbangkan hasil adalah salah tempat. Prediksi kecenderungan (probabilitas) tidak memerlukannya. Dan begitu Anda memperkirakan probabilitas Anda dapat membuat keputusan yang optimal dengan menerapkan fungsi utilitas / biaya / kerugian untuk risiko yang diprediksi.

Frank Harrell
sumber
1

Tergantung pada apa yang ingin Anda capai dari klasifikasi?

Katakan itu kanker v / s bukan kanker, maka mendeteksi kanker itu vital. Namun karena non-kanker akan membentuk sebagian besar data Anda, pengklasifikasi dasarnya dapat mengirim semua kasus ke kelas non-kanker dan mendapatkan akurasi yang sangat tinggi. Tetapi kita tidak mampu membelinya, jadi pada dasarnya kita mengambil sampel kasus-kasus non-kanker, pada dasarnya memindahkan batas keputusan menjauh dari wilayah kanker ke wilayah non-kanker.

Bahkan dalam kasus penggunaan di mana akurasi adalah satu-satunya tujuan kami, menyeimbangkan dapat menjadi penting jika keseimbangan waktu pengujian diharapkan berbeda dari waktu kereta.

Misalnya, Anda ingin mengklasifikasikan mangga dan jeruk, Anda memiliki dataset pelatihan dengan 900 mangga dan 30 jeruk, tetapi Anda berharap untuk menyebarkannya di pasar dengan mangga dan jeruk yang sama, maka idealnya Anda harus sampel dalam rasio sampel yang diharapkan untuk memaksimalkan ketepatan.

Amitoz Dandiana
sumber
Itulah yang saya mengerti dari kuliah yang saya miliki. Namun, saya tidak mengerti kapan keseimbangan bisa buruk, seperti yang disarankan oleh posting blog ini. Mengapa keseimbangan menjadi buruk, jika titik data yang cukup tetap untuk masing-masing kelas?
Zelphir Kaltstahl
Maaf, tetapi dalam analogi Anda, apa hubungannya distribusi buah pasar dengan akurasi model? Anda bisa belajar memisahkan mangga dari jeruk, atau tidak. Dengan kata lain, Anda harus dapat menggunakan model yang sama di pasar khusus jeruk atau mangga saja.
Fernando
3
Tetapi masalah dengan contoh kanker adalah melihatnya sebagai klasifikasi , itu harus diperlakukan sebagai estimasi risiko . Kemudian masalah nyata dengan kelas tidak seimbang menghilang, lihat stats.stackexchange.com/questions/127042/...
kjetil b halvorsen
1

Saat data Anda seimbang, Anda dapat memilih untuk memeriksa akurasi metrik. Tetapi ketika situasi seperti itu data Anda tidak seimbang akurasi Anda tidak konsisten untuk iterasi yang berbeda. Anda perlu lebih berkonsentrasi metrik seperti Precision (PPR), Recall (sensitivitas). Dua metrik ini harus seimbang ketika membandingkan. Anda juga harus memeriksa F1-Score yang merupakan rata-rata harmonis dari Precision dan recall. Ini berlaku untuk semua algoritma pembelajaran mesin

ravindar madishetty
sumber