Koşullu çıkarım ağaçları vs geleneksel karar ağaçları


97

Herkes (koşullu çıkarım ağaçları arasındaki temel farklılıkları açıklayabilir ctreedan party(örneğin daha geleneksel karar ağacı algoritmaları ile karşılaştırıldığında R paketinde) rpartR)?

  1. CI ağaçlarını farklı kılan nedir?
  2. Güçlülükler ve zayıflıklar?

Güncelleme: Horthorn ve arkadaşlarının Chi'nin yorumlarda bahsettiği makaleye baktım. Tamamen takip edemedim - herhangi biri değişkenlerin permütasyonlar kullanılarak nasıl seçildiğini açıklayabilir mi (örneğin bir etki fonksiyonu nedir)?

Teşekkürler!


1
Hothorn'un makalesinde anlatılanların ötesine geçen bir açıklama mı demek istiyorsun ? Ben bazı güzel illüstrasyonlar hatırlamak Carolin Strobl de IMPS2009 konferansta; Sanırım internet sitesinde bazı bilgiler var.
chl

Bu bağlantı karar ağacı paketlerinin çeşitli biçimleri arasında karşılaştırma gösterir r-bloggers.com/a-brief-tour-of-the-trees-and-forests
Archpaul

Yanıtlar:


93

Neye mal olursa olsun:

her ikisi de rpartve ctreetekrarlı olarak , bir değişken grubundaki değerlere bağlı olarak bağımlı değişkenin tek değişkenli bölümlerini gerçekleştirin . rpartve ilgili algoritmalar genellikle mevcut ortak değişkenleri seçmek için bilgi önlemlerini ( Gini katsayısı gibi ) kullanır.

ctree, yazarlarına göre (bkz. chl'ın yorumları), aşağıdaki değişken seçim önyargısından rpart(ve ilgili yöntemlerden) kaçınır : Birçok olası bölünmeye veya birçok eksik değere sahip değişkenleri seçme eğilimindedirler. Diğerlerinden farklı olarak, ctreebir bilgi ölçütünü maksimize eden değişkeni (örneğin Gini katsayısı) seçmek yerine değişkenleri seçmek için bir anlamlılık testi prosedürü kullanılır.

Önemlilik testi, ya da daha iyisi: algoritmanın her başlangıcında hesaplanan çok anlamlılık testleri (eş değişken seç - bölün - tekrar seç), permütasyon testleridir , yani "boş hipotez altında test istatistiğinin dağılımı hesaplanarak elde edilir." Gözlemlenen veri noktalarındaki etiketlerin yeniden düzenlenmesi altında test istatistiklerinin tüm olası değerleri. " (wikipedia makalesinden).

Şimdi test istatistiği için: bağımlı değişken ve ortak değişkenlerin dönüşümlerinden (kimliği dahil, yani dönüşüm değil) hesaplanır. Her iki değişken için herhangi bir dönüşümden birini seçebilirsiniz. DV için (Bağımlı Değişken), dönüşüme sorduğunuz etki işlevi denir .

Örnekler ( kağıttan alınmış ):

  • Eğer hem DV hem de değişkenler sayısal ise, kimlik dönüşümlerini seçebilir ve eş değişken ile DV değerlerinin tüm olası permütasyonları arasındaki korelasyonları hesaplayabilirsiniz. Daha sonra p- değerini bu permütasyon testinden hesaplar ve diğer değişkenler için p -değerleri ile karşılaştırırsınız .
  • Eğer hem DV hem de değişkenler nominal ise (sırasız kategorik), test istatistiği bir beklenmedik durum tablosundan hesaplanır.
  • Bu genel programdaki her türlü dönüşümden (kimlik dönüşümü dahil) kolayca başka test istatistiklerini oluşturabilirsiniz.

permütasyon testi için küçük bir örnek R:

require(gtools)
dv <- c(1,3,4,5,5); covariate <- c(2,2,5,4,5)
# all possible permutations of dv, length(120):
perms <- permutations(5,5,dv,set=FALSE) 
# now calculate correlations for all perms with covariate:
cors <- apply(perms, 1, function(perms_row) cor(perms_row,covariate)) 
cors <- cors[order(cors)]
# now p-value: compare cor(dv,covariate) with the 
# sorted vector of all permutation correlations
length(cors[cors>=cor(dv,covariate)])/length(cors)
# result: [1] 0.1, i.e. a p-value of .1
# note that this is a one-sided test

Şimdi varsayalım ki bir grup değişken var, sadece yukarıdaki gibi değil. Ardından yukarıdaki şemada olduğu gibi her değişken için p -değerlerini hesaplayın ve en küçük p- değerine sahip olanı seçin . Doğrudan korelasyonlar yerine p -değerleri hesaplamak istiyorsunuz , çünkü farklı türlerin değişkenleri olabilir (örneğin, sayısal ve kategorik).

Bir ortak değişken seçtikten sonra, şimdi yine tüm olası bölmeleri (veya genellikle bölünmeden önce DV'nin en az sayıdaki elemanını isteyerek bir şekilde sınırlı sayıda tüm olası bölmelerin sayısını) araştırın ve permütasyona dayalı bir testi tekrar değerlendirin.

ctreeDV ve ortak değişkenler her ikisi için olası dönüşümler bir dizi ile geliyor (için yardıma bakın Transformationsiçinde partypaketin).

Genel olarak, temel fark ctree, istatistiksel teoriye dayanan eş değişkenli bir seçim şeması kullanan (yani, permütasyona dayalı önem testleriyle yapılan seçim) kullanan ve dolayısıyla potansiyel bir önyargıdan kaçınıyor rpartgibi görünmektedir; örneğin koşullu çıkarım ağaçları, Rastgele Ormanlarda temel öğrenenler olarak kullanılabilir.

Bu alabildiğim kadarıyla. Daha fazla bilgi için makaleleri okumanız gerekiyor. Herhangi bir istatistiksel analiz yapmak istediğinizde ne yaptığınızı gerçekten bilmenizi kesinlikle tavsiye ederim.


Öyleyse aşağıdakileri söylemek adil olur: 1. Prensip olarak, eğer Gini için anlamlılık testleri mevcut ve hesaplanması kolay olsaydı, mevcut karar ağacı oluşturucuları bunlarla güçlendirilebilirdi; 2. Ancak pratikte çoğu durumda kullanılamaz (yani hesaplanması çok zor / hesaplama yetersizdir); 3. CI ağaçlarının yazarları bir bölme kriteri ailesi seçmiştir. Bu, sınıflandırma doğruluğu için en iyi aile olmak zorunda değildir, ama en azından bunun önemini hesaplamak kolaydır; 4. Ve bu nedenle CI ağaçlarının zayıflığı, bu spesifik kriteri kullanmanızın gerekli olduğudur.
SheldonCooper

1
@SheldonCooper: 1. ve 2. kafamın üzerinde biraz olabilir. Ben 3 ve 4 hakkında haklı olduğunu düşünüyorum.
wolf.rauch

1
(...) ve DV değerlerinin olası tüm izinleri "DV değerlerinin olası tüm izinleri? 10 elementin tüm olası permütasyonlarını bulmak 130 saniyeden uzun sürer. 20 gözlem - bir moderatör tarafından eklendi
chl

1
Üzgünüm ama DV ne anlama geliyor?
efsanevi

1
@ mythicalprogrammer bağımlı değişkeni, sanırım
Frikster
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.