Używam pakietu randomForest w R (R wersja 2.13.1, randomForest wersja 4.6-2) do regresji i zauważyłem znaczący błąd w moich wynikach: błąd prognozy zależy od wartości zmiennej odpowiedzi. Wysokie wartości są niedoceniane, a niskie wartości są zawyżone. Początkowo podejrzewałem ten był konsekwencją moich danych ale następujący prosty przykład pokazuje, że jest to właściwe dla losowego algorytmu leśnej:RandomForest w regresji liniowej regresji R mny
n = 50;
x1 = seq(1,n)
x2 = matrix(1, n, 1)
predictors = data.frame(x1=x1, x2=x2)
response = x2 + x1
rf = randomForest(x=predictors, y=response)
plot(x1, response)
lines(x1, predict(rf, predictors), col="red")
Bez wątpienia metody drzewa mają swoje ograniczenia, jeśli chodzi o liniowość, ale nawet najprostsze drzewo regresji, np tree() in R, nie wykazuje tego błędu. Nie mogę sobie wyobrazić, że społeczność nie byłaby tego świadoma, ale nie znalazła żadnej wzmianki, jak to ogólnie się koryguje? Dzięki za wszelkie komentarze
EDIT: Przykład na to pytanie jest błędne, proszę zobaczyć „lasy losowe dla regresji w R - zależny od uprzedzeń dystrybucji odpowiedź” w zamian stosu na poprawioną terapię https://stats.stackexchange.com/questions/28732/randomforest-for-regression-in-r-response-distribution-dependent-bias
dziękuję Joran. Coś mi nie pasowało i cieszę się, że istnieje rozwiązanie. Niestety dla mojej pracy, już dostroiłem parametry z niewielkim skutkiem (z wyjątkiem oczywiście nTrees) i dlatego przeważnie zignorowałem je dla tego "prostego" przykładu - myślę, że odchylenie naprawdę istnieje w moim przypadku, dzięki znowu – rumbleB
Wystarczająco fair. .. chociaż jeśli jest to ograniczone do twoich danych, to tak naprawdę nie jest to odchylenie w RF, czyż nie? ;) Masz tylko trochę trudnych do modelowania danych! – joran
tak, stronniczość w RF jest możliwa do uniknięcia - zmieniłem tytuł tego pytania, aby mogło być bardziej pomocne dla ludzi w przyszłości – rumbleB