Belirli bir yanıt değişkenine göre Optimal Binning


12

Belirli bir yanıt (hedef) ikili değişken ve sürekli olarak parametre olarak aralıkların maksimum sayısı ile sürekli değişken en iyi binning yöntemi (ayrıklaştırma) arıyorum.

örnek: "yükseklik" (sürekli sayısal) ve "has_back_pains" (ikili) değişkenleri olan insanların gözlemleri bir dizi var. Yüksekliği en fazla 3 aralıkta (grup) ayrıştırmak istiyorum, bu yüzden algoritma gruplar arasındaki farkı en üst düzeye çıkarır, böylece algoritma gruplar arasındaki farkı en üst düzeye çıkarır (örneğin, her aralığın en az x gözlemi olduğu).

Bu soruna bariz çözüm, karar ağaçlarını (basit bir tek değişkenli model) kullanmak olacaktır, ancak parametre olarak "maksimum dal sayısı" olan herhangi bir işlevi bulamıyorum - hepsi değişkeni böler 2 gropusa (<= x ve> x) eklenir. SAS madenci bir "maksimum şube" parametresi var ama ticari olmayan bir çözüm arıyorum.

Değişkenlerimden bazılarının sadece birkaç benzersiz değeri vardır (ve ayrık değişkenler olarak ele alınabilir), ancak bunları daha az sayıda aralığa da ayırmak istiyorum.

Sorunuma en yakın çözüm, R'deki smbinning paketinde (parti paketinden ctree işlevine dayanan) uygulanır, ancak iki dezavantajı vardır: aralık sayısını ayarlamak imkansızdır (ancak, değiştirerek bunun etrafında bir yol bulabilirsiniz) p parametresi) ve veri vektörü 10'dan az benzersiz değere sahip olduğunda çalışmaz. Her neyse, burada örnek çıktıyı görebilirsiniz (Kesme Noktası ve Oran sütunları çok önemlidir):

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

Ah, binning'in bilgi kaybıyla sonuçlandığını ve daha iyi yöntemler olduğunu tamamen biliyorum, ancak veri görselleştirme için kullanacağım ve bu değişkenleri bir faktör olarak ele alacağım.


SPSS'nin Optimal Binning komutu vardır. Google SPSS Algorithms Optimal Binning.
ttnphns

Bu yazıyı gördünüz stackoverflow.com/questions/7018954/… Bilgi değeri kullanımından bahsediyor, ancak IV = 1 ile ne anlama geldiğini açıklamıyor veya nasıl elde edeceğinizi açıklamıyor
adam

Yanıtlar:


7

Bu kitabı burada okurken (Nagarajan, 2103 [1]), utanmadan burada alıntı yaptığım bu değerli bilgiye rastladım:

  • Veriler hakkında ön bilgileri kullanma. Aralıkların sınırları, her değişken için, belirli bir kirleticinin (yok, tehlikeli, ölümcül) veya yaş sınıflarının (çocuk, yetişkin, yaşlı) konsantrasyonu gibi önemli ölçüde farklı gerçek dünya senaryolarına karşılık gelecek şekilde tanımlanır.

  • Ağ yapısını öğrenmeden buluşsal yöntemlerin kullanılması. Bazı örnekler: Sturges, Freedman-Diaconis veya Scott kuralları (Venables ve Ripley, 2002).

  • Doğruluk ve bilgi kaybını dengelemek için aralık sayısını ve sınırlarını seçmek (Kohavi ve Sahami, 1996), yine ağ yapısı öğrenilmeden önce her seferinde bir değişken. Değişken çiftlerini dikkate alan benzer bir yaklaşım Hartemink'te (2001) sunulmaktadır.

  • Hiçbir gelişme yapılmadan öğrenmeyi ve ayrıklaştırmayı yinelemeli olarak yapmak (Friedman ve Goldszmidt, 1996).

Bu stratejiler, orijinal verilerin ayrık sunumunun doğruluğu ile dönüşümün hesaplama verimliliği arasındaki farklı değiş tokuşları temsil eder.

Bu bilgi, yalnızca bir paketi doğrudan kullanmakla kalmayıp kullanmak istediğiniz binning yöntemini haklı göstermek istediğinizde sağlanır.

[1]: Nagarajan R. (2013), R'de
Bayes Ağları, Sistem Biyolojisi
Springer Uygulamalarında


4

R. için Bilgi paketini deneyin. Https://cran.r-project.org/web/packages/Information/Information.pdf https://cran.r-project.org/web/packages/Information/vignettes/Information-vignette .html

Bilgi paketi, WoE ve IV hesaplamak için işlevselliğe sahiptir (kutu sayısı esnek bir parametredir, varsayılan değer 10'dur) ve veri keşfi ve sonuç olarak binning için kullanışlı bir araçtır. Ancak çıktıda Oran yok; ve sıfırı ayrı bir bölme olarak belirtmek mümkün değildir (görevlerim için sıfır genellikle kendi başına geçerli bir bölmedir); ve smbinning gibi bilgi paketinden çıktı almak güzel olurdu. Bununla birlikte, Bilgi paketinin sahip olması hoş ancak hala mevcut olmayan özellikleri hakkında söylenen, WoE ve IV için diğer R paketleri (woe, klaR) Bilgi paketi kadar yararlı araçlar izlenimi vermedi, aslında ben 2-3 denemeden sonra onları çalıştıramadı. Dscretisation / binning görevi için Bilgi ve smbinning paketleri birlikte güzelce çalışabilir,

Gerçek binning için cut () işlevi yerine data.table kullandım. Aşağıdaki yazımın bağlantısına bakın, ilk sorunun en altında genel kod içerir: /programming/34939845/binning-variables-in-a-dataframe-with-input-bin-data- adlı-bir-dataframe

Umarım yardımcı olur.


@kjetil, kjetil b halvorsen, haklısın. Bilgi paketi, WoE ve IV hesaplamak için işlevselliğe sahiptir (kutu sayısı esnek bir parametredir, varsayılan değer 10'dur) ve veri keşfi ve binning için kullanışlı bir araçtır. Ancak çıktıda Oran yok. Ve sıfırı ayrı bir bölme olarak belirtmek mümkün değildir (görevlerim için sıfır genellikle kendi başına geçerli bir bölmedir). WoE ve IV için diğer R paketleri (woe, klaR) Bilgi paketi kadar yararlı araçlar izlenimi vermedi. Bilgi ve smbinning paketi birlikte güzelce birlikte çalışabilir.
Aktan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.