Klasifikasi biner dengan kelas yang sangat tidak seimbang

52

Saya memiliki kumpulan data dalam bentuk (fitur, keluaran biner 0 atau 1), tetapi 1 jarang terjadi, jadi hanya dengan selalu memprediksi 0, saya mendapatkan akurasi antara 70% dan 90% (tergantung pada data tertentu yang saya lihat ). Metode ML memberi saya akurasi yang sama, dan saya merasa, harus ada beberapa metode standar untuk diterapkan dalam situasi ini, yang akan meningkatkan akurasi atas aturan prediksi yang jelas.

Kucing pemalas
sumber
3
Saya menemukan artikel ini sangat membantu dalam masalah ini: svds.com/learning-imbalanced-classes
J. O'Brien Antognini
@ J.O'BrienAntognini Itu artikel yang sangat bagus!
Jinhua Wang

Jawaban:

30

Baik hxd1011 dan Frank benar (+1). Resampling dan / atau pembelajaran yang sensitif biaya pada dasarnya adalah dua cara utama untuk mengatasi masalah ketidakseimbangan data; ketiga adalah menggunakan metode kernel yang kadang-kadang mungkin kurang dipengaruhi oleh ketidakseimbangan kelas. Biarkan saya menekankan bahwa tidak ada solusi peluru perak. Menurut definisi Anda memiliki satu kelas yang diwakili tidak cukup dalam sampel Anda.

Setelah mengatakan hal di atas saya percaya bahwa Anda akan menemukan algoritma SMOTE dan ROSE sangat membantu. SMOTE secara efektif menggunakan pendekatan tetangga Nearest untuk mengecualikan anggota kelas mayoritas sementara dengan cara yang sama menciptakan contoh-contoh sintetis dari kelas minoritas. ROSE mencoba membuat perkiraan distribusi yang mendasari kedua kelas menggunakan pendekatan bootstrap yang diperhalus dan sampel untuk contoh-contoh sintetis. Keduanya tersedia dalam R, SMOTE dalam paket DMwR dan ROSE dalam paket dengan nama yang sama . Baik SMOTE dan ROSE menghasilkan set data pelatihan yang lebih kecil dari yang asli.k

Saya mungkin akan berpendapat bahwa metrik yang lebih baik (atau kurang buruk) untuk kasus data yang tidak seimbang menggunakan Cohenk dan / atau Area karakteristik penerima operasi di bawah kurva . Kappa Cohen secara langsung mengontrol akurasi yang diharapkan, AUC karena merupakan fungsi sensitivitas dan spesifisitas, kurva tidak peka terhadap perbedaan dalam proporsi kelas. Sekali lagi, perhatikan bahwa ini hanyalah metrik yang harus digunakan dengan sebutir garam besar. Idealnya Anda harus menyesuaikannya dengan masalah spesifik Anda dengan memperhitungkan keuntungan dan biaya yang benar dan klasifikasi salah yang disampaikan dalam kasus Anda. Saya telah menemukan bahwa melihat kurva angkatsebenarnya agak informatif untuk masalah ini. Terlepas dari metrik Anda, Anda harus mencoba menggunakan tes terpisah untuk menilai kinerja algoritma Anda; justru karena over-fitting yang tidak seimbang kelas bahkan lebih mungkin sehingga pengujian out-of-sample sangat penting.

Mungkin makalah terbaru yang paling populer tentang masalah ini adalah Belajar dari Ketidakseimbangan Data oleh He dan Garcia. Ini memberikan gambaran yang sangat bagus tentang poin yang diajukan oleh saya dan jawaban lainnya. Selain itu saya percaya bahwa walk-through pada Subsampling For Class Imbalances , yang disajikan oleh Max Kuhn sebagai bagian dari paket caret adalah sumber yang bagus untuk mendapatkan contoh struktur tentang bagaimana under-/ over-sampling serta pembuatan data sintetis dapat mengukur satu sama lain.

usεr11852 kata Reinstate Monic
sumber
Metrik ketiga yang agak populer (dan sekali lagi tidak terlalu tepat) adalah Area-Under-the-Curve dari kurva Precision-Recall. Davis & James, 2006 makalah dianggap klasik tentang masalah ini; CV memiliki utas yang bagus juga . Baru-baru ini saya melihat sebuah makalah dengan judul agak hammy " Plot Precision-Recall Lebih Informatif daripada Plot ROC Ketika Mengevaluasi Klasifikasi Biner pada Dataset yang Tidak Seimbang ", jadi orang mungkin ingin memeriksanya juga.
usεr11852 mengatakan Reinstate Monic
1
Untuk implementasi python dari berbagai teknik pengambilan sampel data, saya merekomendasikan paket ketidakseimbangan-pelajari: github.com/scikit-learn-contrib/imbalanced-learn
Vadim Smolyakov
Untuk distribusi kelas yang sangat tidak seimbang, AUPRC lebih informatif daripada AUROC. Detail tidak termasuk di sini karena ini adalah komentar. Di antara banyak sumber, ada satu di sini .
Zhubarb
15

Pertama, metrik evaluasi untuk data yang tidak seimbang tidak akan akurat. Misalkan Anda melakukan deteksi penipuan, bahwa 99,9% data Anda bukan penipuan. Kita dapat dengan mudah membuat model boneka yang memiliki akurasi 99,9%. (cukup prediksi semua data non-penipuan).

Anda ingin mengubah metrik evaluasi Anda dari akurasi menjadi sesuatu yang lain, seperti skor F1 atau ketepatan dan daya ingat . Di tautan kedua saya berikan. ada detail dan intuisi tentang mengapa recall presisi akan bekerja.

Untuk data yang sangat tidak seimbang, membangun model bisa sangat menantang. Anda dapat bermain dengan fungsi penurunan tertimbang atau hanya memodelkan satu kelas saja. seperti satu kelas SVM atau muat multi-variate Gaussian (Seperti tautan yang saya berikan sebelumnya.)

Haitao Du
sumber
2
+1. Contoh yang bagus dan penyebutan yang baik pada SVM satu kelas. Saya pikir meskipun -score agak terlalu berat mengabaikan semua negatif yang sebenarnya. F1
usεr11852 mengatakan Reinstate Monic
tautan ke "presisi dan ingat" sudah mati?
Jason
13

Masalah ketidakseimbangan kelas dapat diatasi dengan pembelajaran yang sensitif-biaya atau resampling. Lihat keuntungan dan kerugian dari pembelajaran yang sensitif biaya vs. pengambilan sampel , yang disalin di bawah ini:


{1} memberikan daftar keuntungan dan kerugian dari pembelajaran yang sensitif biaya vs. pengambilan sampel:

2.2 Pengambilan sampel

Oversampling dan undersampling dapat digunakan untuk mengubah distribusi kelas dari data pelatihan dan kedua metode telah digunakan untuk mengatasi ketidakseimbangan kelas [1, 2, 3, 6, 10, 11]. Alasan bahwa mengubah distribusi kelas dari data pelatihan membantu belajar dengan set data yang sangat miring adalah bahwa hal itu secara efektif membebankan biaya kesalahan klasifikasi yang tidak seragam. Sebagai contoh, jika seseorang mengubah distribusi kelas dari set pelatihan sehingga rasio contoh positif ke negatif naik dari 1: 1 menjadi 2: 1, maka seseorang telah secara efektif menetapkan rasio biaya kesalahan klasifikasi 2: 1. Kesetaraan ini antara mengubah distribusi kelas dari data pelatihan dan mengubah rasio biaya kesalahan klasifikasi sudah dikenal dan secara formal dijelaskan oleh Elkan [9].

Ada kelemahan yang diketahui terkait dengan penggunaan sampel untuk menerapkan pembelajaran yang sensitif biaya. The Kerugian dengan undersampling adalah bahwa hal itu data yang membuang berpotensi berguna . Kerugian utama dengan oversampling , dari sudut pandang kami, adalah bahwa dengan membuat salinan persis dari contoh yang ada, itu membuat kemungkinan overfitting . Kenyataannya, dengan oversampling, cukup umum bagi seorang pelajar untuk menghasilkan aturan klasifikasi untuk mencakup contoh tunggal yang direplikasi. Kelemahan kedua dari oversampling adalah meningkatkan jumlah contoh pelatihan, sehingga meningkatkan waktu belajar .

2.3 Mengapa Menggunakan Sampling?

Mengingat kerugian dengan pengambilan sampel, perlu ditanyakan mengapa ada orang yang akan menggunakannya daripada algoritma pembelajaran yang sensitif biaya untuk menangani data dengan distribusi kelas yang miring dan biaya kesalahan klasifikasi yang tidak seragam. Ada beberapa alasan untuk ini. Alasan yang paling jelas adalah tidak ada implementasi biaya-sensitif dari semua algoritma pembelajaran dan oleh karena itu pendekatan berbasis pembungkus menggunakan sampling adalah satu-satunya pilihan. Meskipun hal ini tentu saja kurang benar hari ini daripada di masa lalu, banyak algoritma pembelajaran (misalnya, C4.5) masih tidak secara langsung menangani biaya dalam proses pembelajaran.

Alasan kedua untuk menggunakan pengambilan sampel adalah bahwa banyak set data yang sangat miring sangat besar dan ukuran set pelatihan harus dikurangi agar pembelajaran menjadi layak. Dalam hal ini, undersampling tampaknya merupakan strategi yang masuk akal, dan valid. Dalam makalah ini kami tidak mempertimbangkan kebutuhan untuk mengurangi ukuran set pelatihan. Kami akan menunjukkan, bagaimanapun, bahwa jika seseorang perlu membuang beberapa data pelatihan, mungkin masih bermanfaat untuk membuang beberapa contoh kelas mayoritas untuk mengurangi ukuran set pelatihan ke ukuran yang diperlukan, dan kemudian juga menggunakan biaya- algoritma pembelajaran sensitif, sehingga jumlah data pelatihan yang dibuang diminimalkan.

Alasan terakhir yang mungkin telah berkontribusi pada penggunaan sampel daripada algoritma pembelajaran yang sensitif biaya adalah bahwa biaya kesalahan klasifikasi sering tidak diketahui. Namun, ini bukan alasan yang valid untuk menggunakan pengambilan sampel melalui algoritma pembelajaran yang sensitif biaya, karena masalah analog muncul dengan pengambilan sampel — seperti apa seharusnya distribusi kelas dari data pelatihan akhir? Jika informasi biaya ini tidak diketahui, ukuran seperti area di bawah kurva ROC dapat digunakan untuk mengukur kinerja classifier dan kedua pendekatan kemudian dapat secara empiris menentukan rasio biaya / distribusi kelas yang tepat.

Mereka juga melakukan serangkaian percobaan, yang tidak meyakinkan:

Berdasarkan hasil dari semua set data, tidak ada pemenang yang pasti antara pembelajaran yang sensitif biaya, oversampling dan undersampling

Mereka kemudian mencoba untuk memahami kriteria mana dalam kumpulan data yang mungkin mengisyaratkan teknik mana yang lebih cocok.

Mereka juga berkomentar bahwa SMOTE dapat membawa beberapa peningkatan:

Ada berbagai peningkatan yang telah dilakukan orang untuk meningkatkan efektivitas pengambilan sampel. Beberapa perangkat tambahan ini termasuk memperkenalkan contoh "sintetis" baru ketika oversampling [5 -> SMOTE], menghapus contoh kelas mayoritas yang kurang bermanfaat ketika undersampling [11] dan menggunakan beberapa sub-sampel saat undersampling dari setiap contoh yang digunakan dalam setidaknya satu sub-sampel [3]. Meskipun teknik ini telah dibandingkan dengan oversampling dan undersampling, mereka umumnya belum dibandingkan dengan algoritma pembelajaran yang sensitif biaya. Ini layak dipelajari di masa depan.


{1} Weiss, Gary M., Kate McCarthy, dan Bibi Zabar. "Pembelajaran sensitif biaya vs. pengambilan sampel: Mana yang terbaik untuk menangani kelas yang tidak seimbang dengan biaya kesalahan yang tidak sama?" DMIN 7 (2007): 35-41. https://scholar.google.com/scholar?cluster=10779872536070567255&hl=id&as_sdt=0,22 ; https://pdfs.semanticscholar.org/9908/404807bf6b63e05e5345f02bcb23cc739ebd.pdf

Franck Dernoncourt
sumber
1
Jadi untuk meringkas tautan: ada hasil yang metode yang lebih baik tidak meyakinkan, dan lebih mudah untuk menggunakan under / over-sampling. Baik?
LazyCat
1
@LazyCat benar.
Franck Dernoncourt
Ya, platform memiliki batasan. Tetapi banyak dari mereka juga fitur. Sebagai contoh, saya akan mengira bahwa jika satu jawaban panjang dan terperinci seperti ini dapat menjawab dua pertanyaan secara memadai, maka pertanyaan-pertanyaan itu harus duplikat. Dan jika itu bukan duplikat, maka harus dimungkinkan untuk memvariasikan jawaban seseorang dengan cara yang berarti sehingga mereka tidak hanya disalin-salin. Tindakan apa yang harus diambil dalam kasus ini? (cc @gung)
whuber
@whuber Pertanyaan lain sudah ditutup :-)
Franck Dernoncourt
1
Oke - itu argumen persuasif!
whuber
6

Beberapa jawaban untuk pertanyaan ini telah menyediakan beberapa pendekatan berbeda, semuanya valid. Saran ini berasal dari sebuah makalah dan perangkat lunak terkait oleh Gary King, ilmuwan politik terkemuka di Harvard. Dia telah menulis sebuah makalah berjudul Regresi Logistik dalam Data Acara Jarang yang memberikan beberapa solusi yang cukup meyakinkan.

Berikut abstraknya:

Kami mempelajari data peristiwa langka, variabel dependen biner dengan puluhan hingga ribuan kali lebih sedikit (peristiwa, seperti perang, veto, kasus aktivisme politik, atau infeksi epidemiologis) daripada nol ("tidak ada"). Dalam banyak literatur, variabel-variabel ini terbukti sulit untuk dijelaskan dan diprediksi, suatu masalah yang tampaknya memiliki setidaknya dua sumber. Pertama, prosedur statistik populer, seperti regresi logistik, dapat dengan tajam meremehkan probabilitas kejadian langka. Kami merekomendasikan koreksi yang mengungguli metode yang ada dan mengubah estimasi risiko absolut dan relatif sebanyak efek estimasi yang dilaporkan dalam literatur. Kedua, strategi pengumpulan data yang umum digunakan sangat tidak efisien untuk data kejadian langka. Ketakutan mengumpulkan data dengan terlalu sedikit peristiwa telah menyebabkan pengumpulan data dengan sejumlah besar pengamatan tetapi relatif sedikit, dan variabel penjelas yang diukur dengan buruk, seperti dalam data konflik internasional dengan lebih dari seperempat juta angka dua, hanya beberapa di antaranya. sedang berperang. Ternyata, desain sampling yang lebih efisien ada untuk membuat kesimpulan yang valid, seperti pengambilan sampel semua peristiwa variabel (misalnya, perang) dan sebagian kecil dari tidak ada (perdamaian). Hal ini memungkinkan para sarjana untuk menghemat sebanyak 99% dari biaya pengumpulan data (tidak diperbaiki) mereka atau untuk mengumpulkan variabel penjelas yang jauh lebih bermakna. Kami menyediakan metode yang menghubungkan kedua hasil ini, memungkinkan kedua jenis koreksi untuk bekerja secara bersamaan, dan perangkat lunak yang mengimplementasikan metode yang dikembangkan. dan variabel penjelas yang diukur dengan buruk, seperti dalam data konflik internasional dengan lebih dari seperempat juta angka dua, hanya beberapa di antaranya yang berperang. Ternyata, desain pengambilan sampel yang lebih efisien ada untuk membuat kesimpulan yang valid, seperti pengambilan sampel semua peristiwa variabel (misalnya, perang) dan sebagian kecil dari tidak ada (perdamaian). Hal ini memungkinkan para sarjana untuk menghemat sebanyak 99% dari biaya pengumpulan data (tidak diperbaiki) mereka atau untuk mengumpulkan variabel penjelas yang jauh lebih bermakna. Kami menyediakan metode yang menghubungkan kedua hasil ini, memungkinkan kedua jenis koreksi untuk bekerja secara bersamaan, dan perangkat lunak yang mengimplementasikan metode yang dikembangkan. dan variabel penjelas yang diukur dengan buruk, seperti dalam data konflik internasional dengan lebih dari seperempat juta angka dua, hanya beberapa di antaranya yang berperang. Ternyata, desain pengambilan sampel yang lebih efisien ada untuk membuat kesimpulan yang valid, seperti pengambilan sampel semua peristiwa variabel (misalnya, perang) dan sebagian kecil dari tidak ada (perdamaian). Hal ini memungkinkan para sarjana untuk menghemat sebanyak 99% dari biaya pengumpulan data (tidak diperbaiki) mereka atau untuk mengumpulkan variabel penjelas yang jauh lebih bermakna. Kami menyediakan metode yang menghubungkan kedua hasil ini, memungkinkan kedua jenis koreksi untuk bekerja secara bersamaan, dan perangkat lunak yang mengimplementasikan metode yang dikembangkan. desain pengambilan sampel yang lebih efisien ada untuk membuat kesimpulan yang valid, seperti pengambilan sampel semua peristiwa variabel (misalnya, perang) dan sebagian kecil dari tidak ada (perdamaian). Hal ini memungkinkan para sarjana untuk menghemat sebanyak 99% dari biaya pengumpulan data (tidak diperbaiki) mereka atau untuk mengumpulkan variabel penjelas yang jauh lebih bermakna. Kami menyediakan metode yang menghubungkan kedua hasil ini, memungkinkan kedua jenis koreksi untuk bekerja secara bersamaan, dan perangkat lunak yang mengimplementasikan metode yang dikembangkan. desain pengambilan sampel yang lebih efisien ada untuk membuat kesimpulan yang valid, seperti pengambilan sampel semua peristiwa variabel (misalnya, perang) dan sebagian kecil dari tidak ada (perdamaian). Hal ini memungkinkan para sarjana untuk menghemat sebanyak 99% dari biaya pengumpulan data (tidak diperbaiki) mereka atau untuk mengumpulkan variabel penjelas yang jauh lebih bermakna. Kami menyediakan metode yang menghubungkan kedua hasil ini, memungkinkan kedua jenis koreksi untuk bekerja secara bersamaan, dan perangkat lunak yang mengimplementasikan metode yang dikembangkan.

Berikut ini tautan ke kertas ... http://gking.harvard.edu/files/abs/0s-abs.shtml

Mike Hunter
sumber
Terima kasih, - jika Anda membaca makalah, apakah mereka menyarankan sesuatu yang penting di luar pengambilan sampel yang disarankan di atas?
LazyCat
4
Ini makalah yang bagus, saya sudah membacanya lebih dari sekali! (+1) Saya pikir meskipun Anda harus menunjukkan bahwa makalah ini juga tertarik pada kesimpulan. Inilah sebabnya mengapa GBM akan kurang bermanfaat bagi ilmuwan politik dibandingkan dengan GLM. Sebagai contoh jika pohon-metodologi digunakan: " ... dua algoritma partisi rekursif dapat mencapai akurasi prediksi yang sama tetapi, pada saat yang sama, mewakili hubungan regresi yang berbeda secara struktural, yaitu, model yang berbeda dan dengan demikian dapat menyebabkan kesimpulan yang berbeda tentang pengaruh dari kovariat tertentu pada tanggapannya. "(Hothorn et al. 2006)
usεr11852 mengatakan Reinstate Monic
2

Pengembangan classifier untuk dataset dengan kelas yang tidak seimbang adalah masalah umum dalam pembelajaran mesin. Metode berbasis kepadatan dapat memiliki manfaat signifikan atas "pengklasifikasi tradisional" dalam situasi seperti itu.

Metode berbasis kepadatan memperkirakan kepadatan tidak diketahui , di mana adalah kelas yang paling dominan (Dalam contoh Anda, ).Cp^(x|yC)CC={x:yi=0}

Setelah estimasi kepadatan dilatih, Anda dapat memprediksi probabilitas bahwa catatan pengujian yang tidak terlihat milik perkiraan ini atau tidak. Jika probabilitasnya cukup kecil, kurang dari ambang yang ditentukan (biasanya diperoleh melalui fase validasi), maka , jika tidak* y ( x * ) C y ( x * ) Cxy^(x)Cy^(x)C

Anda bisa merujuk ke makalah berikut:

"Penaksir Plug-in yang dapat dihitung dari Set Volume Minimum untuk Deteksi Baru," C. Park, J. Huang dan Y. Ding, Riset Operasi, 58 (5), 2013.

rodrigo
sumber
2

Ini adalah jenis masalah di mana Deteksi Anomali adalah pendekatan yang berguna. Ini pada dasarnya adalah apa yang dijelaskan oleh rodrigo dalam jawabannya, di mana Anda menentukan profil statistik dari kelas pelatihan Anda, dan menetapkan ambang probabilitas di luar pengukuran di masa depan yang ditentukan bukan milik kelas itu. Berikut ini adalah video tutorial , yang seharusnya membantu Anda memulai. Setelah Anda menyerapnya, saya akan merekomendasikan mencari Kernel Density Estimation.

DrMcCleod
sumber