Zauważyłem, że przy budowaniu modeli regresji losowej lasu, przynajmniej w R
, przewidywana wartość nigdy nie przekracza maksymalnej wartości zmiennej docelowej widocznej w danych treningowych. Jako przykład zobacz poniższy kod. Buduję model regresji do przewidywania mpg
na podstawie mtcars
danych. Buduję OLS i losowe modele leśne i używam ich do przewidywania mpg
hipotetycznego samochodu, który powinien mieć bardzo dobre zużycie paliwa. OLS przewiduje wysoki mpg
, zgodnie z oczekiwaniami, ale losowy las nie. Zauważyłem to również w bardziej złożonych modelach. Dlaczego to?
> library(datasets)
> library(randomForest)
>
> data(mtcars)
> max(mtcars$mpg)
[1] 33.9
>
> set.seed(2)
> fit1 <- lm(mpg~., data=mtcars) #OLS fit
> fit2 <- randomForest(mpg~., data=mtcars) #random forest fit
>
> #Hypothetical car that should have very high mpg
> hypCar <- data.frame(cyl=4, disp=50, hp=40, drat=5.5, wt=1, qsec=24, vs=1, am=1, gear=4, carb=1)
>
> predict(fit1, hypCar) #OLS predicts higher mpg than max(mtcars$mpg)
1
37.2441
> predict(fit2, hypCar) #RF does not predict higher mpg than max(mtcars$mpg)
1
30.78899
r
random-forest
Gaurav Bansal
źródło
źródło
Odpowiedzi:
Jak wspomniano już w poprzednich odpowiedziach, losowy las dla drzew regresji / regresji nie generuje oczekiwanych prognoz dla punktów danych poza zakresem danych treningowych, ponieważ nie mogą one ekstrapolować (dobrze). Drzewo regresji składa się z hierarchii węzłów, gdzie każdy węzeł określa test, który ma zostać przeprowadzony na wartości atrybutu, a każdy liść (terminal) węzła określa regułę obliczania przewidywanego wyniku. W twoim przypadku obserwacja testowa przepływa przez drzewa do węzłów liści stwierdzając np. „Jeśli x> 335, to y = 15”, które są następnie uśredniane przez losowy las.
Oto skrypt R wizualizujący sytuację z losową regresją leśną i liniową. W przypadku losowego lasu prognozy są stałe dla testowania punktów danych, które są albo poniżej najniższej wartości x danych treningowych, albo powyżej najwyższej wartości treningowej wartości x.
źródło
Losowy las nie ma możliwości ekstrapolacji tak, jak robi to OLS. Powód jest prosty: prognozy z Losowego lasu dokonuje się poprzez uśrednienie wyników uzyskanych w kilku drzewach. Same drzewa generują średnią wartość próbek w każdym węźle końcowym, liściach. Wynik nie może znajdować się poza zakresem danych treningowych, ponieważ średnia jest zawsze w zakresie jego składników.
Innymi słowy, niemożliwe jest, aby średnia była większa (lub niższa) niż każda próbka, a regresje losowych lasów oparte są na uśrednieniu.
źródło
Drzewa decyzyjne / Random Forrest nie mogą dokonywać ekstrapolacji poza danymi treningowymi. I chociaż OLS może to zrobić, na takie prognozy należy spojrzeć ostrożnie; ponieważ zidentyfikowany wzór może nie kontynuować poza obserwowany zakres.
źródło