Bawiłem się losowymi lasami w celu regresji i mam trudności z ustaleniem, co dokładnie oznaczają dwie miary ważności i jak należy je interpretować.
importance()
Funkcja daje dwie wartości dla każdej zmiennej: %IncMSE
a IncNodePurity
. Czy istnieją proste interpretacje tych 2 wartości?
W IncNodePurity
szczególności, czy jest to po prostu kwota wzrostu RSS po usunięciu tej zmiennej?
?importance
? Istnieje wyjaśnienie, co oznaczają oba środki ...Odpowiedzi:
Pierwszy z nich można „zinterpretować” w następujący sposób: jeśli predyktor jest ważny w bieżącym modelu, wówczas przypisanie innych wartości do tego predyktora losowo, ale „realistycznie” (tj. Dopuszczając wartości tego predyktora w zbiorze danych), powinien mieć negatywny wpływ na przewidywanie, tj .: użycie tego samego modelu do przewidywania na podstawie danych, które są takie same, z wyjątkiem jednej zmiennej, powinno dać gorsze przewidywania.
Zatem bierzesz miarę predykcyjną (MSE) z oryginalnym zestawem danych, a następnie z zestawem danych „permutowanych” i porównujesz je w jakiś sposób. Jeden sposób, zwłaszcza że spodziewamy się, że oryginalny MSE będzie zawsze mniejszy, różnicę można wziąć. Wreszcie, aby wartości były porównywalne ze zmiennymi, są one skalowane.
Po drugie: przy każdym podziale możesz obliczyć, o ile ten podział zmniejsza zanieczyszczenie węzłów (w przypadku drzew regresji, faktycznie różnica między RSS przed i po podziale). Jest to sumowane dla wszystkich podziałów dla tej zmiennej, dla wszystkich drzew.
Uwaga: dobra lektura to Elementy nauki statystycznej autorstwa Hastie, Tibshirani i Friedmana ...
źródło
Miary ważności lasu losowego zaimplementowane w pakiecie randomForest w R mają dziwactwa, ponieważ skorelowane predyktory otrzymują niskie wartości ważności.
http://bioinformatics.oxfordjournals.org/content/early/2010/04/12/bioinformatics.btq134.full.pdf
Mam zmodyfikowaną implementację losowych lasów na CRAN, która implementuje swoje podejście do szacowania empirycznych wartości p i współczynników fałszywych odkryć, tutaj
http://cran.r-project.org/web/packages/pRF/index.html
źródło
caret::train(method="rf", importance = TRUE, ...)
?