Losowe lasy są uważane za czarne skrzynki, ale ostatnio zastanawiałem się, jaką wiedzę można uzyskać z losowego lasu?
Najbardziej oczywistą rzeczą jest znaczenie zmiennych, w najprostszym wariancie można to zrobić po prostu przez obliczenie liczby wystąpień zmiennej.
Drugą rzeczą, o której myślałem, były interakcje. Myślę, że jeśli liczba drzew jest wystarczająco duża, można przetestować liczbę wystąpień par zmiennych (coś w rodzaju niezależności chi-kwadrat). Trzecią rzeczą są nieliniowości zmiennych. Moim pierwszym pomysłem było przyjrzenie się wykresowi zmiennej oceny Vs, ale nie jestem jeszcze pewien, czy ma to jakiś sens.
Dodano 23.01.2012
Motywacja
Chcę wykorzystać tę wiedzę do ulepszenia modelu logit. Myślę (a przynajmniej mam nadzieję), że można znaleźć interakcje i nieliniowości, które zostały przeoczone.
źródło
Odpowiedzi:
Losowe lasy nie są czarną skrzynką. Opierają się na drzewach decyzyjnych, które są bardzo łatwe do interpretacji:
W rezultacie powstaje proste drzewo decyzyjne:
Jeśli długość płatka <4,95, drzewo to klasyfikuje obserwację jako „inne”. Jeśli jest większy niż 4,95, klasyfikuje obserwację jako „virginica”. Losowy las to prosty zbiór wielu takich drzew, z których każde jest trenowane na losowym podzbiorze danych. Każde drzewo następnie „głosuje” na ostateczną klasyfikację każdej obserwacji.
Możesz nawet wyciągać pojedyncze drzewa z RF i patrzeć na ich strukturę. Format jest nieco inny niż w przypadku
rpart
modeli, ale możesz sprawdzić każde drzewo, jeśli chcesz, i zobaczyć, jak modeluje dane.Ponadto żaden model nie jest tak naprawdę czarną skrzynką, ponieważ można zbadać przewidywane odpowiedzi w stosunku do rzeczywistych odpowiedzi dla każdej zmiennej w zestawie danych. To dobry pomysł niezależnie od tego, jaki model budujesz:
Znormalizowałem zmienne (długość i szerokość płatka i płatka) do zakresu 0-1. Odpowiedź wynosi również 0-1, gdzie 0 to inne, a 1 to virginica. Jak widać, losowy las jest dobrym modelem, nawet na zestawie testowym.
Ponadto losowy las obliczy różne miary o różnym znaczeniu, które mogą być bardzo pouczające:
Ta tabela przedstawia, jak bardzo usunięcie każdej zmiennej zmniejsza dokładność modelu. Na koniec istnieje wiele innych działek, które można wykonać z losowego modelu lasu, aby zobaczyć, co dzieje się w czarnej skrzynce:
Możesz wyświetlić pliki pomocy dla każdej z tych funkcji, aby uzyskać lepszy obraz tego, co wyświetlają.
źródło
Jakiś czas temu musiałem uzasadnić dopasowanie modelu RF do niektórych chemików w mojej firmie. Spędziłem dość czasu próbując różnych technik wizualizacji. Podczas tego procesu przypadkowo opracowałem też nowe techniki, które umieściłem w pakiecie R ( forestFloor ) specjalnie do losowych wizualizacji lasu.
Klasycznym podejściem są wykresy częściowej zależności wspierane przez: Rminer (analiza wrażliwości oparta na danych jest na nowo wymyślona zależność częściowa) lub częściowy wykres w pakiecie randomForest . Dla mnie iceBOX pakiet częściowej zależności jest eleganckim sposobem na odkrywanie interakcji. Nie korzystałem z pakietu edarf , ale wydaje się, że ma kilka świetnych wizualizacji dedykowanych dla RF. GgRandomForest Pakiet zawiera również duży zestaw przydatnych wizualizacje.
Obecnie forestFloor obsługuje obiekty randomForest (trwa proces obsługi innych implementacji RF). Można również obliczyć wkład funkcji dla drzew ze wzmocnieniem gradientu, ponieważ drzewa te po treningu niewiele różnią się od losowych drzew leśnych. Dlatego forestFloor może w przyszłości obsługiwać XGBoost. Wykresy częściowej zależności są całkowicie niezmienne w modelu.
Wszystkie pakiety mają wspólną wizualizację geometrycznej struktury mapowania modelu od przestrzeni cech do przestrzeni docelowej. Krzywa sinusoidalna y = sin (x) byłaby odwzorowaniem od x do y i może być wykreślona w 2D. Bezpośrednie wykreślenie mapowania RF często wymagałoby zbyt wielu wymiarów. Zamiast tego ogólną strukturę odwzorowania można rzutować, kroić lub rozkładać, tak że cała struktura odwzorowania jest sprowadzana do sekwencji dwuwymiarowych wykresów brzeżnych. Jeśli Twój model RF ma tylko główne efekty i nie ma interakcji między zmiennymi, klasyczne metody wizualizacji będą w porządku. Następnie możesz uprościć strukturę modelu w ten sposóbr= F.( X) ≈ f1( x1) + f2)( x2)) + . . . + fre( xre) . Następnie każdą funkcję cząstkową każdej zmiennej można wizualizować tak jak krzywą sinusoidalną. Jeśli Twój model RF przechwycił spore interakcje, jest to bardziej problematyczne. Plastry 3D struktury mogą wizualizować interakcje między dwiema cechami i danymi wyjściowymi. Problem polega na tym, aby wiedzieć, którą kombinację funkcji wizualizować ( iceBOX rozwiązuje ten problem). Nie jest również łatwo stwierdzić, czy inne ukryte interakcje nadal nie są uwzględniane.
W tym artykule użyłem bardzo wczesnej wersji ForestFloor, aby wyjaśnić, jaki faktyczny związek biochemiczny uchwycił bardzo mały model RF. W tym artykule dokładnie opisujemy wizualizacje wkładu obiektów, Wizualizacje lasów losowych na dnie lasu .
Wkleiłem symulowany przykład z pakietu forestFloor, w którym pokazuję, jak odkryć symulowaną funkcję ukrytą hałasy=x12+sin(x2π)+2∗x3∗x4+
Na koniec kod wykresów częściowej zależności kodowany przez A. Liawa opisany przez J. Friedmana. Które działają dobrze dla głównych efektów.
źródło
Aby uzupełnić te doskonałe odpowiedzi, wspomnę o użyciu drzew wzmocnionych gradientem (np. Pakiet GBM w R ). W R wolę to od losowych lasów, ponieważ brakujące wartości są dozwolone w porównaniu z randomForest, gdzie wymagana jest imputacja. Dostępne są zmienne znaczenia i wykresy częściowe (jak w przypadku randomForest), aby pomóc w wyborze cech i eksploracji transformacji nieliniowej w modelu logit. Ponadto, zmienne oddziaływanie skierowane jest w Friedmana statystyki H (
interact.gbm
) z zadanym jakJ.H. Friedman and B.E. Popescu (2005). “Predictive Learning via Rule Ensembles.” Section 8.1
. Wersja komercyjna o nazwie TreeNet jest dostępna od Salford Systems i ta prezentacja wideo mówi o ich podejściu do zmiennej oceny interakcji wideo .źródło
Późna odpowiedź, ale natknąłem się na ostatni pakiet R
forestFloor
(2015), który pomaga ci wykonywać to zadanie „unblackboxing” w sposób zautomatyzowany. Wygląda bardzo obiecująco!Tworzy następujące wykresy:
Zapewnia również trójwymiarową wizualizację, jeśli szukasz interakcji.
źródło
Jak wspomniał Zach, jednym ze sposobów zrozumienia modelu jest wykreślenie odpowiedzi przy różnych predyktorach. Możesz to łatwo zrobić dla „dowolnego” modelu z pakietem plotmo R. Na przykład
co daje
Zmienia to jedną zmienną, utrzymując pozostałe na ich wartościach mediany. W przypadku wykresów interakcji zmienia dwie zmienne. (Uwaga dodana lis 2016:
plotmo
teraz obsługuje również wykresy częściowej zależności).Powyższy przykład wykorzystuje tylko dwie zmienne; bardziej skomplikowane modele można wizualizować w sposób fragmentaryczny, patrząc na jedną lub dwie zmienne jednocześnie. Ponieważ „inne” zmienne są utrzymywane na wartościach mediany, pokazuje to tylko fragment danych, ale może być nadal użyteczny. Niektóre przykłady znajdują się w winiecie dla pakietu plotmo . Inne przykłady znajdują się w rozdziale 10 Rysowanie drzew rpart z pakietem rpart.plot .
źródło
Sam jestem bardzo zainteresowany tego typu pytaniami. Myślę, że z losowego lasu można uzyskać wiele informacji.
Jeśli chodzi o interakcje, wygląda na to, że Breiman i Cultier próbowali już na to spojrzeć, szczególnie w przypadku klasyfikacji RF.
Według mojej wiedzy nie zostało to zaimplementowane w pakiecie randomForest R. Może dlatego, że może nie być tak proste i ponieważ znaczenie „interakcji zmiennych” jest bardzo zależne od twojego problemu.
Jeśli chodzi o nieliniowość, nie jestem pewien, czego szukasz, las regresji jest używany w przypadku problemów z nieliniową regresją wielokrotną bez żadnych priorytetów dotyczących tego, jakiego rodzaju funkcji nieliniowej należy użyć.
źródło
Późno w grze, ale w tym froncie pojawiły się nowe rozwiązania, na przykład LIME i SHAP . Warto również sprawdzić pakiet DALEX (zwłaszcza jeśli używasz R, ale w każdym razie zawiera ładne kody do gry itp.), Choć w tej chwili nie obejmuje on interakcji. Wszystkie są niezależne od modelu, więc będą działać dla losowych lasów, GBM, sieci neuronowych itp.
źródło
Nieznaczną modyfikacją losowych lasów, które dostarczają więcej informacji o danych, są niedawno opracowane metody lasów przyczynowych. Zobacz pakiet GRF R i motywacyjny papier tutaj . Chodzi o to, aby użyć losowych podstawowych metod leśnych do znalezienia niejednorodności w skutkach przyczynowych.
Wcześniejszy artykuł ( tutaj ) podaje szczegółowe podejście do prostego lasu przyczynowego. Strona 9 artykułu zawiera krok po kroku procedurę uprawy drzewa przyczynowego, którą można następnie rozszerzyć do lasu w zwykły sposób.
Równanie 4:
Równanie 5:
źródło
Późna odpowiedź związana z moim pytaniem tutaj ( czy możemy sprawić, że Random Forest będzie w 100% możliwy do interpretacji poprzez ustalenie ziarna? ):
źródło