Błąd zależny od rozkładu odpowiedzi w losowej regresji leśnej

9

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 x1jest równomiernie rozłożona, nie ma stronniczości; jeśli x1jest 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.

huk B
źródło
Zastanawiam się nad tym samym pytaniem od prawie 12 miesięcy. Zobacz stats.stackexchange.com/questions/21530/… i kaggle.com/forums/t/1106/random-forests-newbie-question . Zgadzam się, że problem polega na tym, że wartości odstające nie są dobrze reprezentowane przez średnie, które są używane jako prognozy dla każdego węzła. Dostosowywanie prognoz lub modelowanie w węźle wydaje się rozsądnym podejściem, ale nie jest pewne, jakie jest standardowe podejście.
redcalx

Odpowiedzi:

4

Jest idealnie, jak podejrzewasz - fakt, że węzły liści zawierają środki na pewnym zestawie obiektów, powoduje, że dowolny model drzewa regresji zacieśnia rozkład odpowiedzi i uniemożliwia jakąkolwiek ekstrapolację. Zespół oczywiście nie pomaga w tym i faktycznie pogarsza sytuację.

Naiwnym rozwiązaniem (i niebezpiecznym z powodu nadmiernego dopasowania) jest owinięcie modelu jakąś klasyczną regresją, która przeskalowałaby odpowiedź na pożądany rozkład.

Lepszym rozwiązaniem jest jeden z modeli drzewa modelowego w liściu, na przykład MOB w pakiecie imprezowym. Chodzi o to, że partycjonowanie przestrzeni cech powinno zakończyć się, gdy problem zostanie uproszczony nie do prostej wartości (jak w zwykłym drzewie), ale do prostej relacji (powiedzmy liniowej) między odpowiedzią a niektórymi predyktorami. Taką relację można teraz rozwiązać, dopasowując jakiś prosty model, który nie zakłóci rozkładu ani nie ograniczy ekstremalnych wartości i byłby w stanie dokonać ekstrapolacji.


źródło
Dlaczego przeskalowanie rozkładu odpowiedzi doprowadziłoby do przeregulowania? Relacja porządkująca między dowolnymi dwoma wyjściami lasów zachowa tę samą kolejność po przepchnięciu jej przez dopasowanie wielomianowe w celu przeskalowania, więc podejmowanie decyzji na podstawie modelu nie będzie miało wpływu, jeśli oprzesz swoją decyzję na kwantylach danych wyjściowych.
Jase
Masz rację; Myślałem o scenariuszu, w którym RF generuje całkowicie bezsensowną odpowiedź, a regresja przekształca ją w coś o oszukańczo lepszym . R2
3

Miałem dokładnie ten sam problem z dostępem warunkowym RF dostępnym za pośrednictwem pakietu grzechotki. Wysłałem e-mailem do Grahama Williamsa (autora grzechotki), który uprzejmie przekazał moje zapytanie autorom lasów, którzy odpowiedzieli i zasugerowali grę z dwoma parametrami, które w rzeczywistości nie pojawiają się nigdzie w dokumentacji CRF, ale które jednak wydają się dotyczyć problem, mianowicie minplit = 2 i minbucket = 1.

Scott MacLean
źródło
minsplit, Zakładam, że masz na myśli
smci
2

Powinieneś oszacować optymalną wartość mtry i sampsize, minimalizując próbkę „błąd zwalidowany krzyżowo” na siatce różnych mtry, parametry sampsize, dla dowolnej odpowiedniej zmiennej odpowiedzi dla ustalonego zestawu cech, a następnie wyciągając wnioski - pod względem wyników. Możesz utworzyć kombinację parametrów siatki za pomocą expand.grid.

karawan
źródło
2
Jest to dobra propozycja do budowania modeli, ogólnie zoptymalizowane parametry dają dokładniejsze prognozy. Jednak w tym przypadku uprzedzenie istnieje, niezależnie od strojenia, o ile mogę powiedzieć. Jest tylko jeden predyktor, więc mtry musi wynosić 1. Każda próbka mniejsza niż n służy tylko do zwiększenia obciążenia, a wielkość węzła ma niewielki wpływ.
rumbleB