Saya sedang mencari metode binning optimal (diskritisasi) dari variabel kontinu sehubungan dengan respon yang diberikan (target) variabel biner dan dengan jumlah interval maksimum sebagai parameter.
contoh: Saya memiliki satu set pengamatan orang dengan variabel "tinggi" (angka kontinu) dan "has_back_pains" (biner). Saya ingin melakukan diskritisasi tinggi menjadi 3 interval (kelompok) paling banyak dengan proporsi orang yang sakit punggung berbeda, sehingga algoritma memaksimalkan perbedaan antara kelompok (dengan batasan yang diberikan misalnya, bahwa setiap interval setidaknya x pengamatan).
Solusi yang jelas untuk masalah ini adalah dengan menggunakan pohon keputusan (model satu variabel sederhana), tapi saya tidak dapat menemukan fungsi apa pun di R yang akan memiliki "jumlah cabang maksimal" sebagai parameter - semuanya membagi variabel menjadi 2 gropus (<= x dan> x). SAS miner memiliki parameter "cabang maksimum" tapi saya mencari solusi non komersial.
beberapa variabel saya hanya memiliki beberapa nilai unik (dan dapat diperlakukan sebagai variabel diskrit) tetapi saya ingin mendiskritisasi mereka juga menjadi sejumlah kecil interval.
Solusi terdekat untuk masalah saya diimplementasikan dalam paket smbinning di R (yang bergantung pada fungsi ctree dari paket partai) tetapi memiliki dua kelemahan: tidak mungkin untuk mengatur jumlah interval (namun, Anda dapat menemukan cara mengatasinya dengan mengubah parameter p) dan tidak berfungsi ketika vektor data memiliki kurang dari 10 nilai unik. Bagaimanapun, Anda dapat melihat contoh output di sini (kolom Cutpoint dan Odds sangat penting):
Cutpoint CntRec CntGood CntBad CntCumRec CntCumGood CntCumBad PctRec BadRate Odds LnOdds WoE IV
1 <= 272 9081 169 8912 9081 169 8912 0.1874 0.9814 0.0190 -3.9653 -0.6527 0.0596
2 <= 311 8541 246 8295 17622 415 17207 0.1762 0.9712 0.0297 -3.5181 -0.2055 0.0068
3 <= 335 2986 163 2823 20608 578 20030 0.0616 0.9454 0.0577 -2.8518 0.4608 0.0163
4 Missing 27852 1125 26727 48460 1703 46757 0.5747 0.9596 0.0421 -3.1679 0.1447 0.0129
5 Total 48460 1703 46757 NA NA NA 1.0000 0.9649 0.0364 -3.3126 0.0000 0.0956
Oh, saya sepenuhnya menyadari bahwa hasil binning dalam kehilangan informasi dan bahwa ada metode yang lebih baik, tetapi saya akan menggunakannya untuk visualisasi data dan memperlakukan variabel-variabel tersebut sebagai faktor.
sumber
SPSS Algorithms Optimal Binning
.Jawaban:
Saat membaca buku ini di sini (Nagarajan, 2103 [1]), saya menemukan informasi berharga ini yang saya kutip tanpa malu-malu di sini:
Menggunakan pengetahuan sebelumnya tentang data. Batas-batas interval didefinisikan, untuk setiap variabel, agar sesuai dengan skenario dunia nyata yang sangat berbeda, seperti konsentrasi polutan tertentu (tidak ada, berbahaya, mematikan) atau kelas umur (anak, dewasa, lanjut usia).
Menggunakan heuristik sebelum mempelajari struktur jaringan. Beberapa contoh adalah: Sturges, Freedman-Diaconis, atau aturan Scott (Venables dan Ripley, 2002).
Memilih jumlah interval dan batas-batasnya untuk menyeimbangkan akurasi dan kehilangan informasi (Kohavi dan Sahami, 1996), sekali lagi satu variabel pada suatu waktu dan sebelum struktur jaringan dipelajari. Pendekatan serupa mempertimbangkan pasangan variabel disajikan dalam Hartemink (2001).
Melakukan pembelajaran dan diskritisasi secara iteratif hingga tidak ada perbaikan yang dilakukan (Friedman dan Goldszmidt, 1996).
Strategi-strategi ini mewakili trade-off yang berbeda antara akurasi representasi diskrit dari data asli dan efisiensi komputasi transformasi.
Informasi ini disediakan, jika Anda ingin membenarkan metode binning yang ingin Anda gunakan dan tidak hanya menggunakan paket secara langsung.
[1]: Nagarajan R. (2013),
Bayesian Networks di R, dengan Aplikasi dalam Sistem Biologi
Springer
sumber
Coba paket Informasi untuk R. https://cran.r-project.org/web/packages/Information/Information.pdf https://cran.r-project.org/web/packages/Information/vignettes/Information-vignette .html
Paket informasi memiliki fungsi untuk menghitung WoE dan IV (jumlah bin adalah parameter yang fleksibel, standarnya adalah 10) dan merupakan instrumen yang berguna untuk eksplorasi data dan akibatnya untuk binning. Outputnya tidak mengandung Odds; dan tidak mungkin untuk menentukan nol sebagai nampan yang terpisah (untuk tugas-tugas saya nol sering merupakan nampan yang valid atas namanya sendiri); dan akan menyenangkan untuk mendapatkan output dari paket Informasi yang akan seperti yang ada di smbinning. Namun, yang dikatakan tentang fitur yang bagus untuk dimiliki tetapi masih belum tersedia dari paket Informasi, paket R lain untuk WoE dan IV (celaka, klaR) tidak membuat kesan instrumen yang berguna seperti paket Informasi, pada kenyataannya saya gagal menjalankannya setelah 2-3 upaya. Untuk tugas dscretisation / binning, paket Informasi dan smbinning dapat bekerja sama dengan baik,
Untuk binning aktual, saya menggunakan data.table alih-alih fungsi cut (). Lihat tautan ke posting saya di bawah, ini berisi kode umum di bagian paling bawah dari pertanyaan awal: /programming/34939845/binning-variables-in-a-dataframe-with-input-bin-data- from-another-dataframe
Semoga ini bisa membantu.
sumber