Twoja intuicja jest prawidłowa. Ta odpowiedź jedynie ilustruje to na przykładzie.
Rzeczywiście powszechne jest błędne przekonanie, że CART / RF są w pewnym stopniu odporne na wartości odstające.
Aby zilustrować brak odporności RF na obecność pojedynczych wartości odstających, możemy (lekko) zmodyfikować kod użyty w powyższej odpowiedzi Sorena Havelunda Wellinga, aby pokazać, że pojedyncze wartości „y” są wystarczające, aby całkowicie przechylić dopasowany model RF. Na przykład, jeśli obliczymy średni błąd prognozowania niezanieczyszczonych obserwacji jako funkcję odległości między wartością odstającą a resztą danych, możemy zobaczyć (zdjęcie poniżej), że wprowadzenie pojedynczej wartości odstającej (poprzez zastąpienie jednej z oryginalnych obserwacji przez dowolną wartość w przestrzeni „y”) wystarczy wyciągnąć przewidywania modelu RF arbitralnie daleko od wartości, które mieliby, gdyby były obliczone na oryginalnych (niezanieczyszczonych) danych:
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")
Jak daleko? W powyższym przykładzie pojedyncza wartość odstała tak bardzo zmieniła dopasowanie, że średni błąd prognozowania (na niezanieczyszczonych) obserwacjach jest teraz o 1–2 rzędy wielkości większy niż byłby, gdyby model został dopasowany na niezanieczyszczonych danych.
Nie jest więc prawdą, że pojedyncza wartość odstająca nie może wpływać na dopasowanie RF.
Ponadto, jak wskazują, gdzie indziej , odstających są dużo trudniejsze do czynienia, gdy istnieją potencjalnie kilka z nich (choć nie musi być duża część danych na ich skutki, aby pokazać się). Oczywiście, zanieczyszczone dane mogą zawierać więcej niż jedną wartość odstającą; aby zmierzyć wpływ kilku wartości odstających na dopasowanie RF, porównaj wykres po lewej uzyskany z RF na niezanieczyszczonych danych z wykresem po prawej uzyskanym przez dowolne przesunięcie 5% wartości odpowiedzi (kod znajduje się poniżej odpowiedzi) .
Na koniec, w kontekście regresji, należy zauważyć, że wartości odstające mogą wyróżniać się z dużej ilości danych zarówno w przestrzeni projektowej, jak i odpowiedzi (1). W specyficznym kontekście RF, wartości odstające od projektu wpłyną na oszacowanie hiperparametrów. Jednak ten drugi efekt jest bardziej widoczny, gdy liczba wymiarów jest duża.
To, co obserwujemy tutaj, jest szczególnym przypadkiem bardziej ogólnego wyniku. Niezwykła wrażliwość na wartości odstające wielowymiarowych metod dopasowania danych opartych na wypukłych funkcjach utraty została wielokrotnie odkryta. Zobacz (2) ilustrację w specyficznym kontekście metod ML.
Edytować.
t
s∗= argmaxs[ pL.var ( tL.( s ) ) + pRvar (tR( s ) ) ]
tL.tRs∗tL.tRspL.tL.pR= 1 - pL.tR. Następnie można nadać drzewom regresji (a tym samym RF) odporność przestrzeni „y”, zastępując funkcjonalność wariancji zastosowaną w oryginalnej definicji solidną alternatywą. Jest to w istocie podejście zastosowane w (4), w którym wariancja jest zastąpiona solidnym M-estymatorem skali.
- (1) Demaskowanie wielowymiarowych wartości odstających i punktów dźwigni. Peter J. Rousseeuw i Bert C. van Zomeren Journal of American Statistics Association vol. 85, nr 411 (wrzesień 1990), str. 633–639
- (2) Losowy hałas klasyfikacyjny pokonuje wszystkie wypukłe potencjalne wzmacniacze. Philip M. Long i Rocco A. Servedio (2008). http://dl.acm.org/citation.cfm?id=1390233
- (3) C. Becker i U. Gather (1999). Punkt podziału maskowania w wielowymiarowych zasadach identyfikacji wartości odstających.
- (4) Galimberti, G., Pillati, M., i Soffritti, G. (2007). Solidne drzewa regresji oparte na estymatorach M. 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)]))