Sezginiz doğru. Bu cevap sadece örnek olarak gösteriliyor.
Gerçekten de , CART / RF'nin aykırılara bir şekilde sağlam olduğu yaygın bir yanılgıdır.
RF'nin sağlamlık eksikliğini tek bir aykırı varlığın varlığına göstermek için, yukarıdaki tek bir 'y' ayracının takılan RF modelini tamamen sallamak için yeterli olduğunu göstermek için yukarıdaki Soren Havelund Welling'in cevabında kullanılan kodu (hafifçe) değiştirebiliriz . Örneğin , kirlenmemiş gözlemlerin ortalama tahmin hatasını ana hat ile verinin geri kalanı arasındaki mesafenin bir fonksiyonu olarak hesaplarsak, tek bir dış hat vericinin girişini (orijinal gözlemlerden birini değiştirerek ) görebiliriz (aşağıdaki resim) y-uzayı üzerindeki rastgele bir değere göre, RF modelinin tahminlerini orijinal (kirlenmemiş) verilere göre hesaplanırsa, sahip olacakları değerlerden keyfi bir şekilde uzağa çekmek yeterlidir:
library(forestFloor)
library(randomForest)
library(rgl)
set.seed(1)
X = data.frame(replicate(2,runif(2000)-.5))
y = -sqrt((X[,1])^4+(X[,2])^4)
X[1,]=c(0,0);
y2<-y
rg<-randomForest(X,y) #RF model fitted without the outlier
outlier<-rel_prediction_error<-rep(NA,10)
for(i in 1:10){
y2[1]=100*i+2
rf=randomForest(X,y2) #RF model fitted with the outlier
rel_prediction_error[i]<-mean(abs(rf$predict[-1]-y2[-1]))/mean(abs(rg$predict[-1]-y[-1]))
outlier[i]<-y2[1]
}
plot(outlier,rel_prediction_error,type='l',ylab="Mean prediction error (on the uncontaminated observations) \\\ relative to the fit on clean data",xlab="Distance of the outlier")
Ne kadar uzak? Yukarıdaki örnekte, tek aykırı uygunluğu o kadar değiştirmiştir ki, ortalama tahmin hatası (kirlenmemiş olan) gözlemleri şimdi , modelin kirlenmemiş verilere yerleştirilmiş olması durumunda , tahmin edilebileceğinden 1-2 kat daha büyüktür.
Bu nedenle, tek bir saldırganın RF uyumunu etkileyemediği doğru değildir.
Ayrıca, başka bir yere de işaret ettiğim gibi , aykırı değerler potansiyel olarak bunlardan birkaçının olduğu durumlarda başa çıkmakta daha zordur ( etkilerinin ortaya çıkması için verilerin büyük bir kısmına ihtiyaç duymamalarına rağmen ). Tabii ki, kirli veriler birden fazla aykırı içerebilir; Birkaç aykırı bağlayıcının RF uyumu üzerindeki etkisini ölçmek için, RF'den elde edilen soldaki kontamine olmayan veriler üzerindeki arsa ile cevap değerlerinin% 5'ini keyfi bir şekilde kaydırarak elde edilen sağdaki arsa ile karşılaştırın (kod cevabın altındadır) .
Son olarak, regresyon bağlamında, aykırı değerlerin hem tasarım hem de yanıt alanındaki (1) verilerin büyük bir kısmından öne çıkabileceğini belirtmek önemlidir (1). Özel RF bağlamında, tasarım aykırı değerler, hiper parametrelerin tahminini etkileyecektir. Bununla birlikte, bu ikinci etki, boyut sayısı büyük olduğunda daha belirgindir.
Burada gözlemlediğimiz şey, daha genel bir sonuç için özel bir durumdur. Dışbükey kayıp fonksiyonlarına dayanan çok değişkenli veri uydurma yöntemlerinin dışlayıcılarına aşırı duyarlılık birçok kez keşfedilmiştir. ML metotlarının spesifik bağlamındaki gösterimi için bakınız (2).
Düzenle.
Neyse ki, temel CART / RF algoritması kesin olarak aykırılıklara karşı sağlam olmamakla birlikte, "y" -çapçılarına sağlamlık kazandırmak için prosedürü değiştirmek mümkündür (ve sessizdir). Şimdi RF regresyonuna odaklanacağım (çünkü bu daha spesifik olarak OP'nin sorusunun amacı). Daha doğrusu, keyfi bir düğüm için bölme ölçütünü :t
s∗=argmaxs[pLvar(tL(s))+pRvar(tR(s))]
burada ve çocuk ortaya çıkmaktadır seçimine bağlıdır düğümlerin ( ve örtülü işlevlerdir ) ve
sol çocuk düğüme düşen veri kısmını belirtmektedir ve payı verilerin . Ardından, orijinal tanımda kullanılan işlevselliği yerine sağlam bir alternatif ile değiştirerek regresyon ağaçlarına (ve dolayısıyla RF'lere) "y" alanı sağlamlığı verebilir. Bu aslında (4) 'te kullanılan yaklaşımdır ve varyansın yerine sağlam bir M-tahmincisi kullanılmıştır.tLtRs∗tLtRspLtLpR=1−pLtR
- (1) Çok Değişkenli Aykırı Değerlerin ve Kaldıraç Noktalarının Maskesinin Kaldırılması. Peter J. Rousseeuw ve Bert C. van Zomeren Amerikan İstatistik Kurumu Dergisi Cilt. 85, No. 411 (Eylül 1990), sayfa 633-639
- (2) Rastgele sınıflandırma gürültüsü, tüm dışbükey potansiyel güçlendiricileri alt eder. Philip M. Long ve Rocco A. Servedio (2008). http://dl.acm.org/citation.cfm?id=1390233
- (3) C. Becker ve U. Gather (1999). Çok Değişkenli Outlier Tanımlama Kurallarının Maskeleme Dağılma Noktası.
- (4) Galimberti, G., Pillati, M., & Soffritti, G. (2007). M-tahmin edicilere dayalı sağlam regresyon ağaçları. Statistica, LXVII, 173-190.
library(forestFloor)
library(randomForest)
library(rgl)
set.seed(1)
X<-data.frame(replicate(2,runif(2000)-.5))
y<--sqrt((X[,1])^4+(X[,2])^4)
Col<-fcol(X,1:2) #make colour pallete by x1 and x2
#insert outlier2 and colour it black
y2<-y;Col2<-Col
y2[1:100]<-rnorm(100,200,1); #outliers
Col[1:100]="#000000FF" #black
#plot training set
plot3d(X[,1],X[,2],y,col=Col)
rf=randomForest(X,y) #RF on clean data
rg=randomForest(X,y2) #RF on contaminated data
vec.plot(rg,X,1:2,col=Col,grid.lines=200)
mean(abs(rf$predict[-c(1:100)]-y[-c(1:100)]))
mean(abs(rg$predict[-c(1:100)]-y2[-c(1:100)]))