Jestem całkiem nowy w uczeniu maszynowym, technikach CART i tym podobnych, i mam nadzieję, że moja naiwność nie jest zbyt oczywista.
Jak Random Forest obsługuje wielopoziomowe / hierarchiczne struktury danych (na przykład, gdy interesująca jest interakcja między poziomami)?
Oznacza to, że zestawy danych z jednostkami analizy na kilku poziomach hierarchicznych ( np. Uczniowie zagnieżdżeni w szkołach, z danymi o uczniach i szkołach).
Jako przykład weźmy pod uwagę wielopoziomowy zestaw danych z osobami na pierwszym poziomie ( np. Z danymi dotyczącymi głosowania, danymi demograficznymi itp.) Zagnieżdżonymi w krajach na drugim poziomie (z danymi na poziomie kraju; np. Populacja):
ID voted age female country population
1 1 19 1 1 53.01
2 1 23 0 1 53.01
3 0 43 1 1 53.01
4 1 27 1 1 53.01
5 0 67 0 1 53.01
6 1 34 1 2 47.54
7 0 54 1 2 47.54
8 0 22 1 2 47.54
9 0 78 0 2 47.54
10 1 52 0 2 47.54
Powiedzmy, że voted
jest to zmienna odpowiedzi / zależna, a pozostałe to zmienne predykcyjne / niezależne. W tego rodzaju przypadkach, marginesu krańcowych skutków zmiennej (częściowy) na zależność od pewnego zmiennej wyższego poziomu ( na przykład , population
) dla różnych zmiennych, na poziomie indywidualnym, itd., Mogą być bardzo interesujące. W przypadku podobnym do tego glm
jest oczywiście bardziej odpowiednie - ale gdy istnieje wiele zmiennych, interakcji i / lub brakujących wartości i / lub zestawów danych na bardzo dużą skalę itp., glm
Nie jest tak wiarygodny.
Podpytania: Czy Random Forest może w jakiś sposób jawnie poradzić sobie z tego rodzaju strukturą danych? Jeśli zastosuje się go niezależnie, jaki rodzaj uprzedzenia to wprowadza? Jeśli Losowy Las nie jest odpowiedni, czy istnieje jakakolwiek inna metoda typu zespołu?
(Pytanie Losowy las na zgrupowane dane jest może podobny, ale tak naprawdę nie odpowiada na to.)
źródło
Odpowiedzi:
Losowe lasy działałyby dobrze, ale musisz dostrajać hiperparametry (szczególnie jeśli chcesz realistycznej miary wydajności uogólnienia). Tradycyjne oszacowania błędów OOB będą zdecydowanie optymistyczne, ponieważ w twoich danych szerzy się „twinning”.
Aby uzyskać prawidłowe dostrajanie i szacunki uogólnienia, musisz zrozumieć, jakie są cechy charakterystyczne wszelkich nowych danych, które możesz napotkać. Jeśli chcesz ekstrapolować na nowe kraje, musisz skonfigurować jakiś sposób strojenia oparty na ponownym próbkowaniu (taki jak k-krotna walidacja krzyżowa), w którym próbkowanie warstwowe według kraju.
Musisz także uważać, jak kodujesz dane w losowym lesie. Wygląda na
country
to, że jest to zmienna kategoryczna. Podanie go w postaci liczbowej byłoby trochę szorstkie, ale nie beznadziejne (szczególnie jeśli zamówiłeś identyfikatory według czegoś przydatnego).źródło
Właściwie pracuję nad pakietem R, który uruchamia randomForest jako lokalny klasyfikator zgodnie ze wstępnie zdefiniowaną hierarchią klas. Pakiet można znaleźć w R Forge w „hie-ran-forest”. Pakiet już działa, chociaż nie przejdzie jednego z testów żurawia (dla MAC), nie jestem pewien, dlaczego. Poza faktycznym uruchomieniem funkcji randomForest dla każdego węzła nadrzędnego w dół hierarchii, pakiet zawiera także funkcje przewidywania i funkcje wydajności. Jedna z miar wydajności odpowiada hierarchicznej strukturze klas.
Pakiet rozwiązuje interakcję między poziomami, uruchamiając najpierw losowy las jako lokalny klasyfikator w każdym węźle nadrzędnym w hierarchii klas. Następnie funkcja przewidywania pobiera proporcję głosów „out-bag”, które otrzymano w każdej sprawie w każdym lokalnym klasyfikatorze. Następnie są dwa sposoby, aby zmienić proporcję głosów na wyraźną klasyfikację: 1. zasada krokowej większości - Zacznij od lokalnego klasyfikatora najbliższego korzenia drzewa i wybierz dziecko tego klasyfikatora, który uzyskał najwyższy odsetek głosów. Następnie spójrz na wszystkie dzieci wybranego węzła i ponownie wybierz dziecko, które otrzymało najwyższy odsetek głosów w odpowiednim lokalnym klasyfikatorze. Kontynuuj, aż osiągnięty zostanie terminal. 2)
Mnożnikowa proporcja głosów jest porównywalna z proporcją głosów generowanych przez zwykły losowy Las
źródło
W jednym drzewie klasyfikacyjnym grupy te są kodowane tak samo, jak każda inna zmienna kategorialna. Często odbywa się to albo jako kodowanie binarne, albo po prostu za pomocą liczby całkowitej. Istnieją różne argumenty za użyciem obu. W losowych lasach, jeśli używasz kodowania binarnego, niektóre grupy zostaną uwzględnione / wykluczone dla dowolnego drzewa. Więc możesz mieć wskaźnik dla,
country_2
ale niecountry_3
. Jeśli pozostawisz zmienną grupy jako liczbę całkowitą, kolejność może również wpłynąć na wynik. Co to oznacza dlacountry > 5
icountry < 12
? Jak to się zmieni, jeśli losowo ponownie oznaczysz kraje nowymi liczbami całkowitymi?Na każdym etapie uprawy drzewa algorytm szuka podziału optymalizującego kryteria. Jeśli istnieją duże różnice między grupami, zmienna grupowania będzie ważna, ale jeśli jest tylko umiarkowanie ważna i przycinasz drzewo, to zmienna może być zasadniczo wykluczona.
Podobnie jak większość innych algorytmów uczenia maszynowego, CART i losowe lasy niekoniecznie uwzględniają zależność między obserwacjami w grupach, jak można oczekiwać w hierarchicznym modelu regresji. Jeśli tam jest zależność między obserwacjami, powinna ona zostać przechwycone przez algorytm lasu losowego poprzez generowanie wielu drzew, które wykorzystują zmienną grupującą. Jeśli jednak inne zmienne wykazują większą dyskryminację, zmienna grupująca może zostać zignorowana.
W twoim przypadku,
country
ipopulation
są idealnie współliniowe. Brak informacji uzyskanych dzięki zastosowaniu obu zmiennych w modelu. Możesz więc pomyśleć o tym, jak przypadkowy model lasu traktowałby te zmienne w twoich danych.źródło