Aslında, kısmi bağımlılık planıyla bir kişinin neyi gösterebileceğini anladığımı sanıyordum, ama çok basit bir varsayımsal örnek kullanarak oldukça şaşırdım. Aşağıdaki kod yığınında, üç bağımsız değişken ( a , b , c ) ve bir bağımlı değişken ( y ) ile c , y ile yakın bir doğrusal ilişki gösterirken, a ve b y ile ilişkisizdir . R paketini kullanarak yükseltilmiş bir regresyon ağacı ile regresyon analizi yapıyorum gbm
:
a <- runif(100, 1, 100)
b <- runif(100, 1, 100)
c <- 1:100 + rnorm(100, mean = 0, sd = 5)
y <- 1:100 + rnorm(100, mean = 0, sd = 5)
par(mfrow = c(2,2))
plot(y ~ a); plot(y ~ b); plot(y ~ c)
Data <- data.frame(matrix(c(y, a, b, c), ncol = 4))
names(Data) <- c("y", "a", "b", "c")
library(gbm)
gbm.gaus <- gbm(y ~ a + b + c, data = Data, distribution = "gaussian")
par(mfrow = c(2,2))
plot(gbm.gaus, i.var = 1)
plot(gbm.gaus, i.var = 2)
plot(gbm.gaus, i.var = 3)
Şaşırtıcı olmayan bir şekilde, değişkenler için bir ve b kısmi bağımlılık parsellerin ortalama etrafında yatay çizgiler verim bir . Beni bulmaca ne değişken c için arsa . C <40 ve c > 60 aralıkları için yatay çizgiler alıyorum ve y ekseni y ortalamasına yakın değerlerle sınırlıdır . Bu yana bir ve B tamamen ilişkili olmayan y , O (modelinde ve böylece orada değişken önemi 0 olduğu) beklenen cdeğerlerinin çok sınırlı bir aralığı için o sigmoid şekli yerine tüm aralığı boyunca kısmi bağımlılık gösterecektir. Friedman (2001) "Açgözlü fonksiyon yaklaşımı: gradyan artırıcı makine" ve Hastie ve ark. (2011) "İstatistiksel Öğrenmenin Unsurları", ancak benim matematiksel becerilerim, içindeki tüm denklemleri ve formülleri anlamak için çok düşük. Dolayısıyla sorum: Değişken c için kısmi bağımlılık grafiğinin şeklini ne belirler ? (Lütfen matematikçi olmayan biri için anlaşılır kelimelerle açıklayınız!)
17 Nisan 2014 tarihinde eklendi:
Yanıt beklerken, aynı örnek verileri R-paketiyle analiz için kullandım randomForest
. RandomForest'in kısmi bağımlılık grafikleri, gbm grafiklerinden beklediğim şeye çok daha fazla benziyor: Açıklayıcı değişkenlerin a ve b'ye kısmi bağımlılığı 50 civarında rasgele ve yakından değişirken, açıklayıcı değişken c , tüm aralığı (ve neredeyse tüm y aralığı ). Kısmi bağımlılık araziler bu farklı şekiller nedenleri ne olabilir gbm
ve randomForest
?
Grafikleri karşılaştıran değiştirilmiş kod:
a <- runif(100, 1, 100)
b <- runif(100, 1, 100)
c <- 1:100 + rnorm(100, mean = 0, sd = 5)
y <- 1:100 + rnorm(100, mean = 0, sd = 5)
par(mfrow = c(2,2))
plot(y ~ a); plot(y ~ b); plot(y ~ c)
Data <- data.frame(matrix(c(y, a, b, c), ncol = 4))
names(Data) <- c("y", "a", "b", "c")
library(gbm)
gbm.gaus <- gbm(y ~ a + b + c, data = Data, distribution = "gaussian")
library(randomForest)
rf.model <- randomForest(y ~ a + b + c, data = Data)
x11(height = 8, width = 5)
par(mfrow = c(3,2))
par(oma = c(1,1,4,1))
plot(gbm.gaus, i.var = 1)
partialPlot(rf.model, Data[,2:4], x.var = "a")
plot(gbm.gaus, i.var = 2)
partialPlot(rf.model, Data[,2:4], x.var = "b")
plot(gbm.gaus, i.var = 3)
partialPlot(rf.model, Data[,2:4], x.var = "c")
title(main = "Boosted regression tree", outer = TRUE, adj = 0.15)
title(main = "Random forest", outer = TRUE, adj = 0.85)