Mengapa downsample?

42

Misalkan saya ingin mempelajari classifier yang memprediksi jika email adalah spam. Dan anggaplah hanya 1% dari email adalah spam.

Hal termudah untuk dilakukan adalah mempelajari pengklasifikasi sepele yang mengatakan tidak ada email yang merupakan spam. Penggolong ini akan memberi kita akurasi 99%, tetapi tidak akan mempelajari sesuatu yang menarik, dan akan memiliki tingkat negatif palsu 100%.

Untuk mengatasi masalah ini, orang-orang mengatakan kepada saya untuk "downsample", atau belajar pada subset data di mana 50% dari contoh adalah spam dan 50% bukan spam.

Tapi saya khawatir dengan pendekatan ini, karena begitu kita membangun classifier ini dan mulai menggunakannya pada kumpulan email yang nyata (sebagai lawan dari set tes 50/50), mungkin memprediksi bahwa banyak email adalah spam ketika mereka ' benar-benar tidak. Hanya karena terbiasa melihat lebih banyak spam daripada yang sebenarnya ada dalam dataset.

Jadi bagaimana kita memperbaiki masalah ini?

("Upsampling," atau mengulangi contoh pelatihan positif beberapa kali sehingga 50% dari data adalah contoh pelatihan positif, tampaknya menderita masalah yang sama.)

Jessica
sumber

Jawaban:

37

Sebagian besar model klasifikasi sebenarnya tidak menghasilkan keputusan biner, melainkan nilai keputusan kontinu (misalnya, model regresi logistik menghasilkan probabilitas, SVM mengeluarkan jarak masuk ke hyperplane, ...). Dengan menggunakan nilai keputusan, kami dapat menentukan peringkat sampel uji, dari 'hampir pasti positif' hingga 'hampir pasti negatif'.

Berdasarkan nilai keputusan, Anda selalu dapat menetapkan beberapa cutoff yang mengkonfigurasi classifier sedemikian rupa sehingga sebagian kecil data diberi label sebagai positif. Menentukan ambang batas yang tepat dapat dilakukan melalui kurva ROC atau PR model . Anda bisa bermain dengan ambang keputusan terlepas dari saldo yang digunakan dalam set pelatihan. Dengan kata lain, teknik seperti naik turun atau turun adalah hal yang biasa dalam hal ini.

Dengan asumsi model lebih baik daripada acak, Anda dapat secara intuitif melihat bahwa meningkatkan ambang untuk klasifikasi positif (yang mengarah ke prediksi yang kurang positif) meningkatkan presisi model dengan biaya penarikan yang lebih rendah dan sebaliknya.

Pertimbangkan SVM sebagai contoh intuitif: tantangan utamanya adalah mempelajari orientasi hyperplane pemisah. Up-atau downsampling dapat membantu dengan ini (saya sarankan lebih suka upsampling daripada downsampling) Ketika orientasi hyperplane baik, kita dapat bermain dengan ambang keputusan (misalnya jarak masuk ke hyperplane) untuk mendapatkan fraksi prediksi positif yang diinginkan.

Marc Claesen
sumber
Terima kasih, itu sangat membantu. Bagaimana Anda tahu ambang batas yang seharusnya? Apakah Anda ingin menetapkan ambang batas sehingga proporsi prediksi positif sama dengan proporsi contoh positif dalam populasi?
Jessica
2
@ Jessica Seperti yang saya sebutkan, cara yang mudah untuk memilih ambang adalah melalui kurva receiver operating Characteristic (ROC). Setiap ambang sesuai dengan titik dalam ruang ROC. Saat Anda memplot kurva, Anda dapat memilih ambang berdasarkan apa yang sesuai dengan kebutuhan spesifik Anda. (Anda juga bisa menggunakan kurva presisi-recall sebagai alternatif)
Marc Claesen
Saya tidak setuju bahwa jarak titik uji ke hyperplane yang dipelajari oleh SVM adalah ukuran kepercayaan prediksi tersebut. Ada upaya untuk membuat kerahasiaan prediksi keluaran SVM. Cari skala Platt misalnya. Tapi itu tidak melakukan klasifikasi proses sebaik Gaussian (prediksi prediksi wrt).
Seeda
1
R[0,1]
@MarcClaesen Saya tidak menyarankan untuk menggunakan penskalaan Platt; ini merupakan "upaya" untuk menghasilkan kepercayaan prediksi tetapi ada alternatif yang lebih baik. Yang saya katakan adalah bahwa menggunakan jarak ke hyperplane tidak berarti dan meninjau literatur, saya belum pernah menemukan itu meskipun itu adalah hal pertama yang muncul di pikiran seseorang yang mencoba untuk membuat kepercayaan dari SVM.
Seeda
14

Masalah sebenarnya di sini adalah pilihan metrik Anda:% akurasi adalah ukuran keberhasilan model yang buruk pada dataset yang tidak seimbang (untuk alasan yang persis Anda sebutkan: itu sepele untuk mencapai akurasi 99% dalam kasus ini).

Menyeimbangkan dataset Anda sebelum memasang model adalah solusi yang buruk karena itu bias model Anda dan (bahkan lebih buruk) membuang data yang berpotensi berguna.

Anda jauh lebih baik menyeimbangkan metrik akurasi Anda, daripada menyeimbangkan data Anda. Misalnya Anda bisa menggunakan akurasi yang seimbang ketika mengevaluasi Anda model: (error for the positive class + error for the negative class)/2. Jika Anda memprediksi semua positif atau negatif, metrik ini akan menjadi 50%properti yang bagus.

Menurut pendapat saya, satu-satunya alasan untuk melakukan down-sample adalah ketika Anda memiliki terlalu banyak data dan tidak dapat memenuhi model Anda. Banyak pengklasifikasi (regresi logistik misalnya) akan baik-baik saja pada data yang tidak seimbang.

Zach
sumber
Bisakah saya bertanya bagaimana pengklasifikasi dapat bekerja dengan baik pada data yang tidak seimbang? Mungkin itu hanya data saya tetapi saya telah mencoba pelatihan regresi logistik, hutan acak dan model C5.0 pada data pelatihan saya, baik yang tidak seimbang dan seimbang menggunakan campuran over / undersampling. Model yang dilatih tentang data yang tidak seimbang berkinerja jauh lebih buruk pada set pengujian saya daripada yang dilatih pada data yang seimbang.
Seanosapien
13

Seperti biasa @Marc Claesensebagai jawaban.

Saya baru saja menambahkan bahwa konsep kunci yang tampaknya hilang adalah konsep fungsi biaya . Dalam model apa pun Anda memiliki biaya implisit atau eksplisit dari false negative ke false positive (FN / FP). Untuk data yang tidak seimbang yang diuraikan, seseorang seringkali bersedia memiliki rasio 5: 1 atau 10: 1. Ada banyak cara untuk memperkenalkan fungsi biaya ke dalam model. Metode tradisional adalah untuk memaksakan probabilitas cut-off pada probabilitas yang dihasilkan oleh model - ini bekerja dengan baik untuk regresi logistik.

Metode yang digunakan untuk pengklasifikasi ketat yang tidak secara alami memperkirakan probabilitas keluaran adalah dengan meremehkan kelas mayoritas pada rasio yang akan menginduksi fungsi biaya yang Anda minati. Perhatikan bahwa jika Anda mengambil sampel pada 50/50 Anda menginduksi fungsi biaya sewenang-wenang. Fungsi biaya berbeda tetapi sama sewenang-wenangnya seperti jika Anda sampel pada tingkat prevalensi. Anda sering dapat memprediksi rasio pengambilan sampel yang sesuai dengan fungsi biaya Anda (biasanya bukan 50/50), tetapi kebanyakan praktisi yang saya ajak bicara hanya mencoba beberapa rasio sampling dan memilih yang paling dekat dengan fungsi biaya mereka.

charles
sumber
2
Terima kasih telah mengutarakannya, itu ide menarik yang belum saya pertimbangkan. Bagaimana Anda bisa tahu rasio sampel mana yang sesuai dengan fungsi biaya Anda?
Jessica
8

Menjawab pertanyaan Jessica secara langsung - salah satu alasan downsampling adalah ketika Anda bekerja dengan dataset besar dan menghadapi batas memori pada komputer Anda atau hanya ingin mengurangi waktu pemrosesan. Downsampling (yaitu, mengambil sampel acak tanpa penggantian) dari kasus negatif mengurangi dataset ke ukuran yang lebih mudah dikelola.

Anda menyebutkan menggunakan "classifier" dalam pertanyaan Anda tetapi tidak menentukan yang mana. Satu classifier yang mungkin ingin Anda hindari adalah pohon keputusan. Ketika menjalankan pohon keputusan sederhana pada data peristiwa langka, saya sering menemukan pohon hanya membangun satu root mengingat sulitnya membagi beberapa kasus positif ke dalam beberapa kategori. Mungkin ada metode yang lebih canggih untuk meningkatkan kinerja pohon untuk acara langka - saya tidak tahu ada yang terlintas di kepala saya.

β0

βc=β0log(p+1p+)

p+

nnnNn

RobertF
sumber
3

Tentu saja mengklasifikasikan segala sesuatu sebagai 'bukan spam' memungkinkan Anda untuk mengatakan bahwa, mengingat 100 mail, ia mengklasifikasikan 99 di antaranya dengan benar, tetapi juga mengklasifikasikan sebagai 'bukan spam' satu-satunya yang dilabeli sebagai spam (100% False Positive). Ternyata metrik yang Anda pilih untuk mengevaluasi algoritme tidak beradaptasi. Video ini mencontohkan konsep.

Secara kasar, menyeimbangkan dataset memungkinkan Anda untuk menimbang kesalahan klasifikasi. Algoritme yang menggunakan set pelatihan yang tidak seimbang mungkin tidak akan belajar membedakan dari fitur-fiturnya, karena itu tidak akan memberikan banyak pentingnya fakta yang salah mengklasifikasikan data kelas yang kurang.

giuseppe
sumber
0

Saya tidak akan memilih downsampling atau upsampling karena kedua trik algoritma pembelajaran, namun, jika data tidak seimbang ukuran akurasi menjadi tidak valid atau tidak informatif, oleh karena itu, lebih baik menggunakan langkah-langkah presisi dan penarikan, keduanya tergantung terutama pada TP ( spam yang diklasifikasikan dengan benar dalam kasus Anda) ini memberikan ide yang bagus tentang kinerja nyata sistem Anda dalam hal mendeteksi spam terlepas dari jumlah contoh negatif.

Ahmad Hassanat
sumber