Używam pakietu randomForest w R (wersja R 2.13.1, randomForest wersja 4.6-2) do regresji i zauważyłem znaczące odchylenie w moich wynikach: błąd przewidywania zależy od wartości zmiennej odpowiedzi. Wysokie wartości są niedoszacowane, a niskie wartości są przeszacowane. Początkowo podejrzewałem, że jest to konsekwencja moich danych, ale następujący prosty przykład sugeruje, że jest to nieodłączne od algorytmu losowego lasu:
n = 1000;
x1 = rnorm(n, mean = 0, sd = 1)
response = x1
predictors = data.frame(x1=x1)
rf = randomForest(x=predictors, y=response)
error = response-predict(rf, predictors)
plot(x1, error)
Podejrzewam, że stronniczość zależy od rozkładu odpowiedzi, na przykład, jeśli x1
jest równomiernie rozłożona, nie ma stronniczości; jeśli x1
jest rozkładane wykładniczo, obciążenie jest jednostronne. Zasadniczo wartości odpowiedzi na ogonach rozkładu normalnego są wartościami odstającymi. Nic dziwnego, że model miałby trudności z przewidywaniem wartości odstających. W przypadku randomForest wartość odpowiedzi o ekstremalnej wielkości od ogona rozkładu jest mniej prawdopodobne, że skończy w liściu końcowym, a jej efekt zostanie wypłukany w zespole uśrednionym.
Zauważ, że próbowałem uchwycić ten efekt w poprzednim przykładzie: „Losowy Las w regresji liniowej ogony mtry”. To był zły przykład. Jeśli błąd w powyższym przykładzie jest naprawdę nieodłączny od algorytmu, wynika z tego, że można sformułować korektę błędu, biorąc pod uwagę rozkład odpowiedzi, który próbuje się przewidzieć, co daje dokładniejsze przewidywania.
Czy metody oparte na drzewach, takie jak losowy las, podlegają tendencyjności rozkładu odpowiedzi? Jeśli tak, to czy jest to znane społeczności statystycznej i jak to zwykle jest poprawiane (np. Drugi model, który wykorzystuje dane wyjściowe z modelu stronniczego jako danych wejściowych)?
Korekta błędu zależnego od odpowiedzi jest trudna, ponieważ z natury odpowiedź nie jest znana. Niestety, szacunkowa / przewidywana reakcja często nie łączy tego samego związku z błędem.