Mengoptimalkan untuk kurva Recall-Precision di bawah ketidakseimbangan kelas

30

Saya memiliki tugas klasifikasi di mana saya memiliki sejumlah prediktor (salah satunya adalah yang paling informatif), dan saya menggunakan model MARS untuk membangun classifier saya (saya tertarik pada model sederhana apa pun, dan menggunakan glms untuk tujuan ilustrasi akan menjadi baik baik juga). Sekarang saya memiliki ketidakseimbangan kelas yang sangat besar dalam data pelatihan (sekitar 2.700 sampel negatif untuk setiap sampel positif). Mirip dengan tugas Pengambilan Informasi, saya lebih peduli tentang memprediksi sampel tes positif peringkat teratas. Untuk alasan ini, kinerja pada kurva Recall Precision penting bagi saya.

Pertama-tama, saya hanya melatih model pada data pelatihan saya menjaga ketidakseimbangan kelas seperti apa adanya. Saya memvisualisasikan model saya yang terlatih dalam warna merah, dan input yang paling penting dalam warna biru.

Pelatihan data tidak seimbang, evaluasi data tidak seimbang :

PR untuk pelatihan yang tidak seimbang ROC untuk pelatihan yang tidak seimbang

Berpikir bahwa ketidakseimbangan kelas adalah membuang model, karena mempelajari sampel positif peringkat atas adalah bagian sangat kecil dari seluruh kumpulan data, saya meningkatkan poin pelatihan positif untuk mendapatkan kumpulan data pelatihan yang seimbang. Ketika saya memplot kinerja pada set pelatihan yang seimbang , saya mendapatkan kinerja yang baik. Baik dalam kurva PR dan ROC, model yang saya latih tidak lebih baik daripada input.

Pelatihan data seimbang (upampled), evaluasi juga data berimbang (upsampled):

PR untuk pelatihan seimbang, divisualisasikan pada dataset seimbang ROC untuk pelatihan seimbang, divisualisasikan pada dataset seimbang

Namun, jika saya menggunakan model ini yang dilatih tentang data seimbang, untuk memprediksi set pelatihan yang asli dan tidak seimbang, saya masih mendapatkan kinerja yang buruk pada kurva PR.

Pelatihan data seimbang (upampled), evaluasi data tidak seimbang asli:

PR untuk pelatihan seimbang, divisualisasikan pada dataset asli dan tidak seimbang ROC untuk pelatihan seimbang, divisualisasikan pada dataset asli dan tidak seimbang

Jadi pertanyaan saya adalah:

  1. Apakah alasan visualisasi kurva PR menunjukkan kinerja yang lebih rendah dari model saya yang terlatih (merah), sedangkan kurva ROC menunjukkan peningkatan karena ketidakseimbangan kelas?
  2. Dapatkah pendekatan resampling / up-sampling / down-sampling menyelesaikan ini untuk memaksa pelatihan untuk fokus pada daerah dengan presisi tinggi / rendah daya ingat?
  3. Apakah ada cara lain untuk memfokuskan pelatihan pada daerah dengan presisi tinggi / daya ingat rendah?
highBandWidth
sumber
Bisakah Anda mengedit pertanyaan Anda untuk mengklarifikasi langkah-langkah mana yang dihitung pada set pelatihan dan yang pada data yang ditahan?
Jack Tanner
@JackTanner, semuanya dihitung pada set latihan untuk saat ini. Karena model tidak memiliki banyak parameter, dan jumlah sampel dalam set pelatihan sangat besar, saya tidak terlalu khawatir tentang overfitting. Selain itu, saya ingin memastikan saya mendapatkan kinerja yang baik pada set pelatihan sebelum saya bisa berharap di set tes.
highBandWidth
Kenop apa yang Anda kendalikan dalam algoritma pembelajaran Anda untuk mengevaluasi ketepatan pada tingkat penarikan yang berbeda? Sudahkah Anda mencoba memperluas rangkaian fitur Anda, misalnya, dengan kombinasi dan transformasi fitur?
Jack Tanner
@JackTanner, Model yang saya miliki (MARS dengan fungsi logit) memberikan output dalam kisaran 0 hingga 1, mirip dengan regresi logistik. Ini pada dasarnya sama, tetapi mencakup beberapa fitur lainnya. Untuk mendapatkan presisi pada penarikan yang berbeda, saya cukup mengatur ambang pada titik yang berbeda. Saya hanya menggunakan cara standar untuk menghitung PR atau ROC dari daftar peringkat.
highBandWidth

Jawaban:

15
  1. Kurva ROC tidak sensitif terhadap perubahan ketidakseimbangan kelas; lihat Fawcett (2004) "Grafik ROC: Catatan dan Pertimbangan Praktis untuk Peneliti".
  2. Mengambil sampel kelas frekuensi rendah adalah pendekatan yang masuk akal.
  3. Ada banyak cara lain untuk mengatasi ketidakseimbangan kelas. Meningkatkan dan mengantongi adalah dua teknik yang terlintas dalam pikiran. Ini sepertinya penelitian terbaru yang relevan: Membandingkan Teknik Peningkatan dan Pengemasan dengan Data Bising dan Tidak Seimbang

Masalah PS Rapi; Saya ingin tahu bagaimana hasilnya.

Jack Tanner
sumber
1

Saya ingin menarik perhatian pada fakta, bahwa 2 percobaan terakhir sebenarnya menggunakan model SAMA pada HAMPIR SAMA. Perbedaan dalam kinerja bukanlah perbedaan model, hal ini dijelaskan oleh distribusi yang berbeda dari dataset validasi dan properti dari METRICS tertentu yang digunakan - presisi dan penarikan, yang sangat bergantung pada distribusi itu. Untuk menguraikan poin ini sedikit lebih, jika Anda mengambil X entri yang berbeda dari dataset validasi awal Anda dan mereplikasi kelas minoritas untuk dataset yang ditingkatkan, model Anda akan membuat prediksi yang sama untuk entri X tersebut, benar atau salah, baik dalam peningkatan maupun tidak seimbang. dataset validasi. Satu-satunya perbedaan adalah bahwa untuk setiap false positive akan ada kurang benar positif dalam dataset awal (maka presisi lebih rendah) dan positif lebih benar dalam dataset seimbang (hanya karena fakta bahwa ada lebih banyak contoh positif dalam dataset secara umum) . Inilah sebabnya mengapa Precision dan Recall dikatakan peka terhadap kemiringan. Di sisi lain, seperti yang diilustrasikan percobaan Anda juga, ROC tidak berubah. Ini dapat diamati dengan melihat definisinya juga. Karena itulah ROC dikatakan tidak peka terhadap kemiringan.

Saya belum memiliki jawaban yang baik untuk poin 2 dan 3 karena saya sendiri sedang mencari sendiri :)

Շուշան Առաքելյան
sumber
0

Dengan asumsi sampel positif yang diupgrade memiliki "distribusi yang sama" seperti pada "set asli". Ketika jumlah sampel positif meningkat, beberapa perubahan terjadi

1) jumlah TruePositives (TP) meningkat untuk "semua ambang batas" dan, sebagai akibatnya, rasio TP / (TP + FP) dan TP / (TP + FN) meningkat untuk semua ambang batas. Sehingga area di bawah RRC meningkat.

2) presisi yang diharapkan, juga disebut presisi model "bodoh", meningkat dari ~ 1/2700 (dalam set asli) menjadi ~ 1/2 (dalam hal keseimbangan "ideal"). Dengan asumsi model Anda berkinerja lebih baik daripada model "bodoh" berarti bahwa area di bawah kurva akan lebih dari 0,00037 dalam "set asli" dan lebih dari 0,5 pada set yang idealnya seimbang.

3) saat melatih model pada dataset yang ditingkatkan, beberapa model mungkin "overfit" sampel positif.

Sehubungan dengan kurva ROC, kurva ROC diketahui menunjukkan sedikit efek dari variasi distribusi kelas (upscaling memiliki efek yang sangat kecil pada FPR, sementara Anda dapat melihat beberapa efek pada TPR).

Sehubungan dengan fokus di wilayah presisi tinggi / penarikan rendah, Anda dapat mengoptimalkan sehubungan dengan fungsi biaya di mana Positif Palsu dihukum lebih dari Negatif Palsu.

Danylo Zherebetskyy
sumber