Panduan cepat untuk melatih set data yang sangat tidak seimbang

29

Saya memiliki masalah klasifikasi dengan sekitar 1000 sampel positif dan 10.000 negatif dalam set pelatihan. Jadi kumpulan data ini cukup tidak seimbang. Hutan acak sederhana hanya mencoba menandai semua sampel uji sebagai kelas mayoritas.

Beberapa jawaban yang baik tentang sub-sampling dan hutan acak berbobot diberikan di sini: Apa implikasi untuk melatih suatu Ensemble Pohon dengan dataset yang sangat bias?

Metode klasifikasi apa selain RF yang dapat menangani masalah dengan cara terbaik?

IharS
sumber
Lihat juga stats.stackexchange.com/q/247871/232706
Ben Reiniger

Jawaban:

19
  • Max Kuhn membahas hal ini dengan baik dalam Ch16 of Applied Predictive Modelling .
  • Seperti disebutkan dalam utas terkait, data yang tidak seimbang pada dasarnya adalah masalah pelatihan yang sensitif biaya. Jadi setiap pendekatan sensitif biaya berlaku untuk data yang tidak seimbang.
  • Ada sejumlah besar pendekatan semacam itu. Tidak semua diimplementasikan dalam R: C50, SVM tertimbang adalah opsi. Jous-boost. Rusboost saya pikir hanya tersedia sebagai kode Matlab.
  • Saya tidak menggunakan Weka, tetapi percaya ia memiliki sejumlah besar pengklasifikasi sensitif biaya.
  • Menangani data yang tidak seimbang: Ulasan : Sotiris Kotsiantis, Dimitris Kanellopoulos, Panayiotis Pintelas '
  • Tentang Ketidakseimbangan Kelas : Xinjian Guo, Yilong Yin, Cailing Dong, Gongping Yang, Guangtong Zhou
charles
sumber
16

Undersampling kelas mayoritas biasanya cara untuk pergi dalam situasi seperti itu.

Jika Anda berpikir bahwa Anda memiliki terlalu sedikit instance dari kelas positif, Anda dapat melakukan oversampling, misalnya, contoh 5n instance dengan penggantian dari dataset ukuran n.

Peringatan:

  • Beberapa metode mungkin peka terhadap perubahan dalam distribusi kelas, misalnya untuk Naif Bayes - itu mempengaruhi probabilitas sebelumnya.
  • Oversampling dapat menyebabkan overfitting
Alexey Grigorev
sumber
Atau mungkin mencoba beberapa algoritma pengelompokan dan menggunakan pusat klaster?
Leela Prabhu
Anda bisa memeriksa tautan ini untuk oversampling dan metode lain untuk menangani set data yang tidak seimbang.
janpreet singh
11

Meningkatkan gradien juga merupakan pilihan yang baik di sini. Anda dapat menggunakan classifier meningkatkan gradien di sci-kit belajar misalnya. Gradient boosting adalah metode berprinsip untuk mengatasi ketidakseimbangan kelas dengan membangun serangkaian pelatihan berurutan berdasarkan contoh-contoh yang diklasifikasi secara tidak benar.

cwharland
sumber
1
Pemahaman saya adalah bahwa peningkatan gradien menderita keterbatasan yang sama seperti RF ketika berhadapan dengan data yang tidak seimbang: sci2s.ugr.es/keel/pdf/algorithm/articulo/…
charles
1
Meningkatkan adalah langkah tambahan yang Anda ambil dalam membangun hutan yang secara langsung mengatasi ketidakseimbangan. Makalah yang Anda tautkan mencatat ini dalam pengantar yang menyatakan membantu bahkan dalam kasus di mana tidak ada ketidakseimbangan. Dan makalah itu menyimpulkan meningkatkan bantuan secara signifikan. Jadi tidak yakin di mana kesetaraan antara RF dan peningkatan ditampilkan di sana?
cwharland
1

Selain jawaban yang diposting di sini, jika jumlah contoh positif terlalu kecil jika dibandingkan dengan contoh negatif, maka itu hampir menjadi masalah pendeteksian anomali di mana contoh positif adalah anomali.

Anda memiliki serangkaian metode untuk mendeteksi anomali mulai dari menggunakan distribusi gaussian multivarian hingga memodelkan semua poin dan kemudian memilih yang berjarak 2 atau 3 stds dari nilai tengah.

Makanan lain untuk dipikirkan - Saya telah melihat beberapa orang yang secara acak mencicipi contoh negatif dengan lebih banyak contoh sehingga kedua kelas sama jumlahnya. Itu benar-benar tergantung pada masalah yang dihadapi, apakah kita ingin mereka seimbang atau tidak.

Ram
sumber