Bagging dengan oversampling untuk model prediksi kejadian langka

13

Adakah yang tahu apakah yang berikut ini telah dijelaskan dan (bagaimanapun juga) apakah itu terdengar seperti metode yang masuk akal untuk mempelajari model prediksi dengan variabel target yang sangat tidak seimbang?

Seringkali dalam aplikasi CRM data mining, kami akan mencari model di mana peristiwa positif (sukses) sangat jarang relatif terhadap mayoritas (kelas negatif). Sebagai contoh, saya mungkin memiliki 500.000 contoh di mana hanya 0,1% dari kelas minat positif (misalnya pelanggan membeli). Jadi, untuk membuat model prediksi, salah satu metode adalah dengan mengambil sampel data di mana Anda menyimpan semua instance kelas positif dan hanya sampel instance kelas negatif sehingga rasio positif ke kelas negatif mendekati 1 (mungkin 25%). hingga 75% positif ke negatif). Over sampling, undersampling, SMOTE dll adalah semua metode dalam literatur.

Yang saya ingin tahu adalah menggabungkan strategi pengambilan sampel dasar di atas tetapi dengan mengantongi kelas negatif. Sesuatu seperti:

  • Simpan semua instance kelas positif (mis. 1.000)
  • Contoh instance classe negatif untuk membuat sampel seimbang (misalnya 1.000).
  • Sesuai dengan model
  • Ulang

Adakah yang pernah mendengar hal ini sebelumnya? Masalahnya tampaknya tanpa mengantongi adalah bahwa pengambilan sampel hanya 1.000 contoh kelas negatif ketika ada 500.000 adalah bahwa ruang prediktor akan jarang dan Anda mungkin tidak memiliki representasi dari nilai / pola prediktor yang mungkin. Mengantongi tampaknya membantu ini.

Saya melihat rpart dan tidak ada yang "pecah" ketika salah satu sampel tidak memiliki semua nilai untuk prediktor (tidak rusak saat kemudian memprediksi contoh dengan nilai-nilai prediktor tersebut:

library(rpart)
tree<-rpart(skips ~ PadType,data=solder[solder$PadType !='D6',], method="anova")
predict(tree,newdata=subset(solder,PadType =='D6'))

Adakah pikiran?

PEMBARUAN: Saya mengambil satu set data dunia nyata (pemasaran data tanggapan surat langsung) dan mempartisi secara acak ke dalam pelatihan dan validasi. Ada 618 prediktor dan 1 target biner (sangat jarang).

Training:
Total Cases: 167,923
Cases with Y=1: 521

Validation:
Total Cases: 141,755
Cases with Y=1: 410

Saya mengambil semua contoh positif (521) dari set pelatihan dan sampel acak contoh negatif dengan ukuran yang sama untuk sampel seimbang. Saya cocok dengan pohon bagian:

models[[length(models)+1]]<-rpart(Y~.,data=trainSample,method="class")

Saya mengulangi proses ini 100 kali. Kemudian memperkirakan probabilitas Y = 1 pada kasus sampel validasi untuk masing-masing dari 100 model ini. Saya hanya rata-rata 100 probabilitas untuk perkiraan akhir. Saya mendekripsi probabilitas pada set validasi dan di setiap desil menghitung persentase kasus di mana Y = 1 (metode tradisional untuk memperkirakan kemampuan peringkat model).

Result$decile<-as.numeric(cut(Result[,"Score"],breaks=10,labels=1:10)) 

Inilah kinerjanya: masukkan deskripsi gambar di sini

Untuk melihat bagaimana ini dibandingkan dengan tanpa kantong, saya memperkirakan sampel validasi dengan sampel pertama saja (semua kasus positif dan sampel acak dengan ukuran yang sama). Jelas, data sampel terlalu jarang atau terlalu efektif untuk menjadi efektif pada sampel validasi bertahan.

Menyarankan kemanjuran dari rutinitas mengantongi ketika ada suatu kejadian yang jarang dan besar n dan p.

masukkan deskripsi gambar di sini

B_Miner
sumber

Jawaban:

7

Kecuali untuk pencantuman contoh-contoh kelas positif yang sama di setiap kantong, ini adalah S ^ 3 Taruhan seperti dijelaskan dalam S ^ 3 Targing: Metode Induksi Klasifikasi Cepat dengan Subsampling dan Bagging . (Saya belum mengulas makalah ini secara mendalam, hanya membaca sepintas lalu.)

Saya melihat tidak ada yang salah secara teoritis dengan pendekatan Anda, meskipun saya sudah jauh lebih sering melihat subsampling dikombinasikan dengan peningkatan daripada mengantongi.

Ini mungkin tidak secara tepat menjawab pertanyaan Anda, tetapi makalah yang bagus tentang berbagai cara berurusan dengan data yang tidak seimbang adalah Learning From Imbalanced Data . Tampaknya pembelajaran yang sensitif biaya mungkin lebih sesuai untuk kasus Anda. Karena Anda menggunakan Hutan Keputusan, Bagian 3.2.3 Pohon Keputusan yang Peka Biaya mungkin akan membantu. Ini menyatakan,

Dalam hal pohon keputusan, pemasangan yang sensitif terhadap biaya dapat mengambil tiga bentuk: pertama, penyesuaian yang sensitif terhadap biaya dapat diterapkan pada ambang keputusan; kedua, pertimbangan biaya-sensitif dapat diberikan pada kriteria pemisahan di setiap simpul; dan terakhir, skema pemangkasan yang sensitif biaya dapat diterapkan pada pohon

Penyesuaian peka terhadap ambang keputusan pada dasarnya berarti memilih ambang keputusan berdasarkan kinerja ROC atau Precision-Recall Curve. Kinerja RRT khususnya kuat untuk data yang tidak seimbang.

Kriteria pemisahan sensitif biaya bermuara pada perubahan fungsi pengotor Anda untuk menangani data yang tidak seimbang. Makalah yang disebutkan di atas menyatakan,

Dalam [63], tiga fungsi pengotor spesifik, Gini, Entropy, dan DKM, terbukti telah meningkatkan ketidakpekaan biaya dibandingkan dengan baseline tingkat akurasi / kesalahan. Selain itu, eksperimen empiris ini juga menunjukkan bahwa menggunakan fungsi DKM umumnya menghasilkan pohon keputusan yang lebih kecil tanpa ikatan yang lebih buruk memberikan akurasi yang sebanding dengan Gini dan Entropy. Dasar teoretis terperinci yang menjelaskan kesimpulan dari hasil empiris ini kemudian ditetapkan pada [49], yang menggeneralisasi efek pertumbuhan pohon keputusan untuk setiap pilihan kriteria ludah.

Seperti pemangkasan,

Namun, dengan adanya data yang tidak seimbang, prosedur pemangkasan cenderung menghilangkan dedaunan yang menggambarkan konsep minoritas. Telah ditunjukkan bahwa meskipun pemangkasan pohon yang diinduksi dari data yang tidak seimbang dapat menghambat kinerja, menggunakan pohon yang tidak ditebang dalam kasus seperti itu tidak meningkatkan kinerja [23]. Akibatnya, perhatian telah diberikan untuk meningkatkan estimasi probabilitas kelas di setiap node untuk mengembangkan struktur pohon keputusan yang lebih representatif sehingga pemangkasan dapat diterapkan dengan efek positif. Beberapa karya representatif termasuk metode penghalusan Laplace dari estimasi probabilitas dan teknik pemangkasan Laplace [49].

[23] N. Japkowicz dan S. Stephen, "Masalah Ketidakseimbangan Kelas: Studi Sistematis," Analisis Data Cerdas, vol. 6, tidak. 5, hlm. 429-449, 2002.

[49] C. Elkan, "Fondasi Pembelajaran Sensitif-Biaya," Proc. Int'l Joint Conf. Kecerdasan Buatan, hal. 973-978, 2001.

[63] C. Drummond dan RC Holte, "Memanfaatkan Sensitivitas Biaya (Dalam) dari Kriteria Pemisahan Pohon Keputusan," Proc. Int'l Conf. Machine Learning, hlm. 239-246, 2000.

oscully
sumber
0

Ini sangat menarik. Saya baru-baru ini memiliki proyek yang memiliki situasi serupa di mana validasi pada peristiwa langka berkinerja baik sementara validasi non-peristiwa dalam kisaran prediksi terendah (seperti 0,0 - 0,1) dilakukan secara tidak stabil dari bulan ke bulan. Alasan di belakang, seperti yang Anda sebutkan, karena banyaknya populasi non-peristiwa, lebih baik untuk memasukkan lebih banyak sampel ke dalam rangkaian pelatihan sehingga ada cukup sampel untuk mencakup berbagai kombinasi variabel.

Matahari kecil
sumber