Dlaczego w Random Forest losowy podzbiór funkcji jest wybierany na poziomie węzła, a nie na poziomie drzewa?


14

Moje pytanie: Dlaczego losowy las rozważa losowe podzbiory funkcji do podziału na poziomie węzłów w obrębie każdego drzewa, a nie na poziomie drzewa ?

Tło: To jest pytanie historyczne. Tin Kam Ho opublikował ten artykuł na temat budowy „lasów decyzyjnych”, losowo wybierając podzbiór cech do uprawy każdego drzewa w 1998 roku. Kilka lat później, w 2001 roku, Leo Breiman opublikował swój przełomowy artykuł Random Forest , w którym podzbiór cech jest losowy wybierane w każdym węźle w obrębie każdego drzewa, a nie w każdym drzewie. Chociaż Breiman zacytował Ho, nie wyjaśnił szczegółowo przejścia z losowego wyboru cech na poziomie węzła.

Zastanawiam się, co konkretnie motywowało ten rozwój. Wydaje się, że wybranie podzbioru cech na poziomie drzewa nadal zapewniłoby pożądaną korelację drzew.

Moja teoria: nie widziałem tego wyrażonego gdzie indziej, ale wydaje się, że metoda losowej podprzestrzeni byłaby mniej wydajna pod względem uzyskiwania oszacowań ważności cech. Aby uzyskać oszacowania o różnym znaczeniu, dla każdego drzewa cechy są losowo permutowane jeden po drugim i rejestrowany jest wzrost błędnej klasyfikacji lub wzrost błędu w przypadku obserwacji poza torbą. Zmienne, dla których błąd klasyfikacji lub wzrost błędu wynikający z tej losowej permutacji jest wysoki, są zmiennymi o największym znaczeniu.

Jeśli używamy metodę losowego podprzestrzeń, na każdym drzewie, rozważamy tylko z funkcje. Rozpoznanie wszystkich predyktorów może zająć kilka drzew nawet raz. Z drugiej strony, jeśli weźmiemy pod uwagę inny podzbiór z wyposażony w każdym węźle , rozważymy Każda cecha więcej razy po mniej drzew, dając nam bardziej wiarygodne oszacowanie znaczenia fabularnego.mppmjap

To, na co do tej pory patrzyłem: do tej pory przeczytałem artykuł Breimana i artykuł Ho i przeprowadziłem szerokie wyszukiwanie online porównań metod bez znalezienia ostatecznej odpowiedzi. Zauważ, że podobne pytanie zostało zadane wcześniej. To pytanie idzie nieco dalej, włączając moją spekulację / pracę w kierunku możliwego rozwiązania. Byłbym zainteresowany wszelkimi odpowiedziami, odpowiednimi cytatami lub badaniami symulacyjnymi porównującymi oba podejścia. Jeśli nie ma żadnych, planuję uruchomić własną symulację, porównując dwie metody.


2
Nie będę cytował żadnych odniesień, więc nazwijmy to komentarzem. Jeśli próbujesz zrozumieć, które zmienne są przydatne, może się zdarzyć, że określona zmienna ma znaczenie krytyczne, ale tylko na niewielkim fragmencie danych. Można się tego dowiedzieć, pakując zmienne na poziomie węzła. Nigdy nie odkryłbyś tego w workach na poziomie drzewa.
meh

2
Jestem pewien, że Breiman ma komentarz na ten temat w swoim (imho) zasadniczym artykule „Statistics- The Two Cultures”. Chodzi o to, że czasami znaczenie zmiennej jest maskowane przez inną zmienną. Tworzenie worków na poziomie węzłów pozwoli zobaczyć, co i kiedy dla zmiennej.
meh

1
Dziękuję za komentarze. Wracając do mojego pomysłu na temat wydajności: załóżmy, że para zmiennych była ze sobą powiązana i, jak powiedziałeś, znaczenie jednego „zamaskowało” znaczenie drugiego. Gdybyśmy zbudowali predyktor RF z wystarczającą liczbą drzew i zastosowali podzbiór funkcji na poziomie drzewa, czy w końcu nie mielibyśmy wystarczającej liczby drzew z funkcją „zamaskowaną” i bez funkcji „maskowania”, aby uzyskać znaczenie tego pierwszego bez wpływu ten ostatni? Myślę, że mówimy przynajmniej o tym samym pomyśle. Dzięki!
djlid

4
Możesz, ale zastanów się, ile jeszcze drzew musisz zbudować! To również nie jest jasne. Zmienna A może powodować podziały, tak że w żadnej z nich zmienna B nie będzie świecić. Próbkowanie na poziomie węzła jest po prostu wyraźnie bardziej niezawodne. Dla mnie dotyczy to zasadniczo tego, czym powinno być ładowanie.
meh

Odpowiedzi:


1

Załóżmy, że mamy 10 funkcji f1, f2, ..., f9, f10, a następnie, gdy weźmiemy podzbiór, załóżmy, że f1, f3, f4, f8 cech na poziomie drzewa, konstruujemy całe drzewo, biorąc te 4 cechy pod uwagę.

Obliczamy entropię, porównujemy tylko te 4 cechy w każdym węźle i bierzemy tę cechę, która daje maksymalną entropię. Nie ma to większego zastosowania, ponieważ ograniczamy naszą naukę do drzewa tylko do tych 4 funkcji. W przeciwieństwie do tego, gdy weźmiemy pewien podzbiór funkcji, powiedzmy f1, f8, f9 w pierwszym węźle, obliczamy entropię i porównujemy je spośród tych 3 cech i wybieramy tę, która daje maksymalną wartość. Zamiast powiększać drzewo o te same funkcje, wybraliśmy inny podzbiór funkcji, powiedzmy f4, f7, f2 i dokonujemy podziału na podstawie tych funkcji. Załóżmy, że f8 wybrano w pierwszym węźle, a f2 wybrano w drugim węźle. Model jest w stanie nauczyć się relacji między nimi, które nie byłyby

W ten sposób model może nauczyć się zależności między różnymi funkcjami w bardziej zróżnicowany sposób. Podejście to będzie miało wiele cech zbadanych w jednym drzewie, a zatem relacje między nimi zostaną zachowane. Mam nadzieję, że teraz to masz :)

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.