Binning Optimal sehubungan dengan variabel respons yang diberikan

11

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.

Dominix
sumber
SPSS memiliki perintah Binning Optimal. Google SPSS Algorithms Optimal Binning.
ttnphns
Pernahkah Anda melihat posting ini stackoverflow.com/questions/7018954/... Ini menyebutkan penggunaan Nilai Informasi tetapi tidak jelas apa artinya dengan IV = 1, atau tidak menjelaskan bagaimana cara mendapatkannya
adam

Jawaban:

6

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

Karthik
sumber
3

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.

Akonza
sumber
@ kjetil, kjetil b halvorsen, Anda benar. 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 konsekuensinya untuk binning. Outputnya tidak mengandung Odds. Dan tidak mungkin untuk menentukan nol sebagai tempat sampah yang terpisah (untuk tugas-tugas saya nol sering merupakan tempat sampah yang valid dengan sendirinya). Paket R lainnya untuk WoE dan IV (celaka, klaR) tidak membuat kesan instrumen yang berguna sebagai paket Informasi. Jadi paket Informasi dan pengolahan limbah dapat bekerja bersama dengan baik sebagai kombinasi.
Akonza