Masalah apa yang dipecahkan oleh oversampling, undersampling, dan SMOTE?

25

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!

Matthew Drury
sumber
Persis seperti itulah saya akan mengubahnya menjadi ... terima kasih. Itu tidak mencakup seluruh ruang lingkup pertanyaan Anda tetapi judul tidak harus - itu jelas mendapatkan apa yang Anda tanyakan.
Glen_b -Reinstate Monica
Tentu ada situasi di mana metode bootstrap dan subsampling yang berguna dan kadang-kadang lebih baik daripada metode nonparametrik lainnya. Buku-buku tentang bootstrap dan subsampling membahas hal ini. Ada diskusi di situs ini yang membahas hal ini termasuk keunggulan bootstrap atas cuti dalam analisis diskriminatif bahkan dalam sampel yang relatif kecil. Tentu saja ada beberapa situasi di mana bootstrap gagal dan itu disebutkan dalam buku saya dan juga lainnya.
Michael R. Chernick
@MichaelChernick Saya tidak berbicara tentang bootstrap, itulah yang dikomentari Glen. Saya berbicara tentang pendekatan "penyeimbangan kelas" seperti pengambilan sampel secara berulang-ulang sehingga yang positif ke kelas yang negatif sama-sama terwakili dalam kumpulan data.
Matthew Drury
Apakah Anda termasuk subsampling? Apakah Anda mengacu pada ukuran sampel yang tidak sama saja? Seberapa umum pernyataan yang Anda buat?
Michael R. Chernick
@MichaelChernick Saya menambahkan beberapa komentar klarifikasi di paragraf pertama dan terakhir, saya harap itu membantu.
Matthew Drury

Jawaban:

0

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.

Josh
sumber
4
Ini semua benar, tetapi banyak metode yang saya bahas membuat dataset lebih besar . Upsampling menciptakan lebih banyak instance dari kelas positif dengan menyalin titik data yang ada, dan SMOTE membuat titik data "sintetis" dari kelas langka. Ini tentu tidak akan membantu dengan efisiensi komputasi.
Matthew Drury
0

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.

Milan Vukicevic
sumber
2
saya tidak mengerti jawaban anda.
Michael R. Chernick
Maksud saya bahwa kinerja classifier dievaluasi pada seluruh dataset (kesalahan rata-rata pada contoh positif dan negatif), di mana kesalahan untuk masing-masing contoh sama-sama tertimbang. Jadi algoritma (misalnya regresi Logistik) menyesuaikan fungsi hipotesisnya dengan contoh-contoh yang akan memaksimalkan pengurangan kesalahan. Dalam hal ini untuk kelas mayoritas, di mana minoritas (kelas negatif) praktis diabaikan karena tidak memiliki pengaruh tinggi pada kesalahan pada seluruh dataset. Inilah sebabnya mengapa oversampling, under sampling, atau pembobotan kelas memungkinkan adopsi algoritma yang lebih baik ke kelas minoritas.
Milan Vukicevic
0

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:

L(xi~,yi)=α(yi)ln(xi~)β(1yi)ln(1xi~)

β>αβα

Ilkin Bayramli
sumber
0

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 .

drsxr
sumber