Kiedy rejestrować / wyeksponować zmienne podczas korzystania z losowych modeli lasu?

13

Wykonuję regresję przy użyciu Losowych lasów do przewidywania cen na podstawie kilku atrybutów. Kod jest napisany w Pythonie przy użyciu Scikit-learn.

Jak zdecydować, czy należy przekształcić zmienne za pomocą exp/ logprzed użyciem, aby dopasować je do modelu regresji? Czy jest to konieczne, gdy stosuje się podejście Ensemble, takie jak Losowy Las?

Nyxynyx
źródło
3
Myślę, że to trochę różni się od tego pytania, z powodu losowego aspektu lasu / zespołu, ale pytanie może być przeredagowane po spojrzeniu na inny post.
Peter Flom - Przywróć Monikę
@PeterFlom czy możesz mi pomóc w przeredagowaniu pytania? Nie jestem wystarczająco biegły w tej dziedzinie :)
Nyxynyx
Sposób, w jaki większość ludzi używa terminu „zespół” RF, to tylko 1 potencjalny wkład do zespołu.
Hack-R

Odpowiedzi:

16

Sposób, w jaki budowane są losowe lasy, jest niezmienny dla monotonicznych przekształceń zmiennych niezależnych. Podziały będą całkowicie analogiczne. Jeśli dążysz do dokładności, nie zauważysz żadnej poprawy. W rzeczywistości, ponieważ Lasy Losowe są w stanie znaleźć złożone relacje nieliniowe (dlaczego nazywasz to regresją liniową?) I interakcje zmiennych w locie, jeśli przekształcisz zmienne niezależne, możesz wygładzić informacje, które pozwalają temu algorytmowi to poprawnie.

Czasami losowe lasy nie są traktowane jako czarna skrzynka i wykorzystywane do wnioskowania. Na przykład możesz zinterpretować miary ważności zmiennej lub obliczyć pewien marginalny wpływ zmiennej niezależnej na zmienną zależną. Zazwyczaj jest to wizualizowane jako wykresy częściowej zależności. Jestem pewien, że na tę ostatnią rzecz ma duży wpływ skala zmiennych, co stanowi problem przy próbie uzyskania informacji o bardziej opisowym charakterze z Losowych Lasów. W takim przypadku może pomóc ci transformacja zmiennych (standaryzacja), co może sprawić, że wykresy zależności częściowych będą porównywalne. Nie do końca pewny, będzie musiał się nad tym zastanowić.

Nie tak dawno temu próbowałem przewidzieć dane zliczania za pomocą Losowego Lasu, cofanie się do pierwiastka kwadratowego i log naturalny zmiennej zależnej pomogło trochę, niewiele i niewystarczająco, aby pozwolić mi zachować model.

Niektóre pakiety, w których do wnioskowania można użyć losowych lasów:

https://uc-r.github.io/lime

https://cran.r-project.org/web/packages/randomForestExplainer/index.html

https://pbiecek.github.io/DALEX_docs/2-2-useCaseApartmetns.html

JEquihua
źródło
6

Echoing @JEquihua, dokładność prognoz losowego lasu nie ulegnie poprawie.

Pamiętaj również, że jeśli zachowujesz zarówno predyktor pierwotny, jak i predyktor przekształcony (jak to często się dzieje w regresji liniowej), możesz powodować problemy. Dzieje się tak, ponieważ RF losowo wybiera podzbiór zmiennych, aby wyhodować każde drzewo, a w zasadzie umieściłeś transformowaną zmienną dwukrotnie. Jeśli jest to silny predyktor, zostanie wykorzystany, a twoje losowe lasy nie będą tak nieskorelowane, jak mogłyby być, co prowadzi do większej wariancji.

Scott Kaiser
źródło
1
Umieszczenie zarówno dowolnego transformatora, jak i transformatora w dowolnym modelu jest strasznym pomysłem. Są idealnie współliniowe i na pewno zadziorą z twoim modelem, niezależnie od tego, czy będzie to losowy las, czy regresja liniowa.
mkt - Przywróć Monikę