Losowy las a regresja

21

Uruchomiłem model regresji OLS na zestawie danych z 5 niezależnymi zmiennymi. Zmienne niezależne i zmienne zależne są ciągłe i są liniowo powiązane. Kwadrat R wynosi około 99,3%. Ale kiedy uruchamiam to samo przy użyciu losowego lasu w R, mój wynik to „% Var wyjaśnił: 88.42”. Dlaczego losowy wynik lasu byłby tak gorszy od regresji? Zakładałem, że losowy las będzie co najmniej tak dobry jak regresja OLS.

użytkownik 28906
źródło
4
Jeśli Twoim celem jest przewidywanie, wyższy R-kwadrat może być spowodowany przeregulowaniem. Spróbuj porównać prognozy RN z prognozami regresji, stosując walidację krzyżową.
Manoel Galdino

Odpowiedzi:

27

Nie wiem dokładnie, co zrobiłeś, więc twój kod źródłowy pomógłby mi zgadnąć mniej.

Wiele losowych lasów to zasadniczo okna, w których zakłada się, że średnia reprezentuje system. Jest to zbyt wysławione drzewo CAR.

Powiedzmy, że masz dwuskrzydłowe drzewo CAR. Twoje dane zostaną podzielone na dwa stosy. (Stała) wydajność każdego stosu będzie jego średnią.

Teraz zróbmy to 1000 razy z losowymi podzbiorami danych. Nadal będziesz mieć nieciągłe regiony z wyjściami, które są średnimi. Zwycięzca w RF jest najczęstszym wynikiem. To tylko „Fuzzies” granicę między kategoriami.

Przykład częściowej liniowej wydajności drzewa CART:

Powiedzmy na przykład, że naszą funkcją jest y = 0,5 * x + 2. Fabuła tego wygląda następująco: Rycina 1

Gdybyśmy modelowali to przy użyciu pojedynczego drzewa klasyfikacyjnego z tylko dwoma liśćmi, wówczas najpierw znajdowalibyśmy punkt najlepszego podziału, podzielony w tym punkcie, a następnie aproksymowaliśmy wynik funkcji na każdym liściu jako średnią wydajność na liściu.

działka z trywialną KOSZYK

Gdybyśmy zrobili to ponownie z większą liczbą liści na drzewie KOSZYKA, moglibyśmy uzyskać następujące informacje: wprowadź opis zdjęcia tutaj

Dlaczego lasy CAR?

Widać, że w granicy nieskończonych liści drzewo CART byłoby akceptowalnym przybliżeniem.

Problem polega na tym, że prawdziwy świat jest hałaśliwy. Lubimy myśleć w środkach, ale świat lubi zarówno tendencję centralną (średnią), jak i tendencję wariacyjną (std dev). Jest hałas

To samo, co nadaje drzewku CAR jego wielką siłę, jego zdolność do radzenia sobie z nieciągłością, czyni go podatnym na szum modelowania, jakby był sygnałem.

Więc Leo Breimann przedstawił prostą, ale potężną propozycję: użyj metod Ensemble, aby drzewa drzew klasyfikacji i regresji były odporne. Bierze losowe podzbiory (kuzyn resamplingu bootstrapu) i wykorzystuje je do trenowania lasu drzew CAR. Kiedy zadajesz pytanie dotyczące lasu, cały las mówi, a za wynik przyjmuje się najczęstszą odpowiedź. Jeśli masz do czynienia z danymi liczbowymi, warto spojrzeć na oczekiwanie jako wynik.

W przypadku drugiego wątku pomyśl o modelowaniu przy użyciu losowego lasu. Każde drzewo będzie miało losowy podzbiór danych. Oznacza to, że położenie „najlepszego” punktu podziału będzie się różnić w zależności od drzewa. Jeśli miałbyś sporządzić wykres wyjściowy losowego lasu, gdy zbliżasz się do nieciągłości, kilka pierwszych gałęzi wskaże skok, a następnie wiele. Średnia wartość w tym regionie przemierzy gładką ścieżkę sigmoidalną. Bootstrapping jest konwekcyjny z gaussowskim, a rozmycie gaussowskie w tej funkcji kroku staje się sigmoidalne.

Dolne linie:

Potrzebujesz dużo gałęzi na drzewo, aby uzyskać dobre przybliżenie do bardzo liniowej funkcji.

Istnieje wiele „pokręteł”, które można zmienić, aby wpłynąć na odpowiedź, i jest mało prawdopodobne, aby ustawić je wszystkie na właściwe wartości.

Referencje:

EngrStudent - Przywróć Monikę
źródło
Czy regresja lasów RANDOM nie jest wykonywana z częściowymi stałymi funkcjami, co jest oczywiście słabym dopasowaniem do danych liniowo powiązanych?
seanv507
Myślę, że mówimy to samo. Która stała jest używana? dobrze.
EngrStudent - Przywróć Monikę
Gdybym myślał, że mówimy to samo, powiedziałbym to jako komentarz. Nie rozumiem twojej odpowiedzi. Moja odpowiedź wyjaśnia, że ​​dane PO są liniowe i tak źle dopasowane przez funkcję częściową stałą.
seanv507
@ seanv507 Zaletą RF jest to, że wiele drzew, pasujących do (przypadkowych podzbiorów) zaburzonych wersji danych, uśrednia nieciągłości. Rezultatem jest lepsze przybliżenie podstawowej gładkiej linii niż to, co wytworzyłoby pojedyncze drzewo.
Hong Ooi,
Zasadniczo jest to ponowne próbkowanie bootstrapu na drzewie regresji. Jedną z rzeczy, których nie lubię w bootstrapie, jest to, że jednolity rozkład liczy się jako informacyjny przeor. Czy idealny przypadek nie ma uprzedniego charakteru informacyjnego?
EngrStudent - Przywróć Monikę
7

Zauważam, że to stare pytanie, ale myślę, że należy dodać więcej. Jak powiedział @Manoel Galdino w komentarzach, zwykle interesują Cię prognozy dotyczące niewidocznych danych. Ale to pytanie dotyczy wydajności danych treningowych, a pytanie brzmi, dlaczego losowy las źle radzi sobie z danymi treningowymi ? Odpowiedź podkreśla interesujący problem z workami z klasyfikatorami, który często sprawiał mi kłopoty: regresja do średniej.

Problem polega na tym, że spakowane klasyfikatory, takie jak losowy las, które są tworzone przez pobieranie próbek bootstrap z twojego zestawu danych, mają tendencję do słabego działania w skrajności. Ponieważ ekstremalnie nie ma zbyt wielu danych, mają one tendencję do wygładzania.

Bardziej szczegółowo, przypomnij sobie, że losowy las regresji uśrednia prognozy dużej liczby klasyfikatorów. Jeśli masz jeden punkt, który jest daleki od innych, wielu klasyfikatorów go nie zobaczy, a oni zasadniczo dokonają prognozy na podstawie próby, co może nie być bardzo dobre. W rzeczywistości te prognozy poza próbą będą miały tendencję do przyciągania prognozy dla punktu danych w kierunku ogólnej średniej.

Jeśli użyjesz jednego drzewa decyzyjnego, nie będziesz miał tego samego problemu z wartościami ekstremalnymi, ale dopasowana regresja również nie będzie bardzo liniowa.

Oto ilustracja w R. Generowane są niektóre dane, w których yjest to idealna kombinacja liniowa pięciu xzmiennych. Następnie dokonywane są prognozy za pomocą modelu liniowego i losowego lasu. Następnie wartości ydanych treningowych są wykreślane względem prognoz. Widać wyraźnie, że losowy las radzi sobie wyjątkowo w skrajności, ponieważ punkty danych o bardzo dużych lub bardzo małych wartościach ysą rzadkie.

Ten sam wzorzec dla prognoz na niewidzialnych danych zobaczysz, gdy do regresji zostaną użyte losowe lasy. Nie jestem pewien, jak tego uniknąć. randomForestFunkcja w R ma surowy Odchylenie opcję korekcji corr.biasktóry używa regresji liniowej na ukos, ale to naprawdę nie działa.

Sugestie są mile widziane!

beta <- runif(5)
x <- matrix(rnorm(500), nc=5)
y <- drop(x %*% beta)
dat <- data.frame(y=y, x1=x[,1], x2=x[,2], x3=x[,3], x4=x[,4], x5=x[,5])
model1 <- lm(y~., data=dat)
model2 <- randomForest(y ~., data=dat)
pred1 <- predict(model1 ,dat)
pred2 <- predict(model2 ,dat)
plot(y, pred1)
points(y, pred2, col="blue")

wprowadź opis zdjęcia tutaj

Flądrarz
źródło
Zgadzam się z twoją obserwacją, ale stałem się fanem regresji RF w kierunku średniej w obszarach z małą liczbą punktów danych. Cóż, jeśli ktoś był bardzo pewny, że znalazł ładną ogólną strukturę liniową aż do granicy zestawu treningowego obsługiwanego tylko przez kilka punktów danych, to po prostu dokonaj korekcji liniowej i poproś RF o resztki.
Soren Havelund Welling,
2
Dziękuję za komentarz! Miałem paskudne doświadczenie, w którym dawało prognozy, które były bardzo złe i które sprawiały, że źle wyglądałem. Ale być może nie ma sposobu na uzyskanie dokładniejszych prognoz dla punktów granicznych bez zwiększenia wariancji.
Flądrowiec,
Dodatkowy komentarz wiele lat później zauważyłem, że RF ma tendencję do słabej wydajności wszędzie tam, gdzie istnieje niewielka luka w danych. Oczywiście, na końcu zestawu danych jest często mniej danych, ale od czasu do czasu może pojawić się luka pośrodku. RF może zrobić porządek w zbiorze danych z dowolnymi lukami.
SeldomSeenSlim
2

Losowy las próbuje znaleźć lokalizacje wśród wielu funkcji i wielu punktów danych. Dzieli funkcje i nadaje je różnym drzewom, ponieważ masz małą liczbę funkcji, ogólny wynik nie jest tak dobry jak regresja logistyczna. Losowy las może obsługiwać zmienne liczbowe i kategoryczne, ale nie radzi sobie z brakującymi wartościami.

Abbas Shojaee
źródło
0

Myślę, że Random Forest (RF) jest dobrym narzędziem, gdy funkcjonalna forma relacji między Xs i y jest skomplikowana (z powodu relacji nieliniowych i efektu interakcji). RF kategoryzuje X na podstawie najlepszego punktu odcięcia (pod względem minimalnego SSE) i nie stosuje informacji badacza o funkcjonalnej formie związku. Z drugiej strony regresja OLS korzysta z tych informacji. W swoim przykładzie wiesz, jaki jest dokładnie rodzaj relacji między Xs i y, i wykorzystujesz wszystkie te informacje w swoim modelu regresji, ale RF nie używają tych informacji.

J Faradmal
źródło
-2

Zasadniczo Regresja działa dobrze na zmiennych ciągłych, a Losowy Las na zmiennych dyskretnych.

Musisz podać więcej szczegółów na temat problemu i charakteru zmiennych, aby być bardziej szczegółowym ...

Podspacian
źródło
Wszystkie zmienne dzienne zwroty zapasów (finansowe szeregi czasowe) ...
28906
3
„Regresja działa dobrze w porównaniu ze zmiennymi ciągłymi, a las losowy w porównaniu ze zmiennymi dyskretnymi.”: Zasadniczo nie jest to prawdą. Istnieją rozróżnienia dotyczące wnioskowania i przewidywania, a nawet w przypadku przewidywania istnieją przypadki, w których regresja byłaby lepsza niż RF.
AdamO,