Jak interpretować średni spadek dokładności i średni spadek GINI w losowych modelach leśnych


34

Mam trudności ze zrozumieniem, jak interpretować dane wyjściowe o zmiennej ważności z pakietu Losowy las. Średni spadek dokładności jest zwykle opisywany jako „spadek dokładności modelu po permutacji wartości w każdej funkcji”.

Czy to stwierdzenie o obiekcie jako całości, czy o określonych wartościach w obiekcie? W obu przypadkach, czy średni spadek dokładności to liczba lub odsetek obserwacji, które zostały nieprawidłowo sklasyfikowane przez usunięcie danej cechy (lub wartości z cechy) z modelu?

Powiedzmy, że mamy następujący model:

require(randomForest)
data(iris)
set.seed(1)
dat <- iris
dat$Species <- factor(ifelse(dat$Species=='virginica','virginica','other'))
model.rf <- randomForest(Species~., dat, ntree=25,
importance=TRUE, nodesize=5)
model.rf
varImpPlot(model.rf)

Call:
 randomForest(formula = Species ~ ., data = dat, ntree = 25,
 proximity = TRUE, importance = TRUE, nodesize = 5)

Type of random forest: classification
Number of trees: 25
No. of variables tried at each split: 2

        OOB estimate of  error rate: 3.33%
Confusion matrix:
          other virginica class.error
other        97         3        0.03
virginica     2        48        0.04

wprowadź opis zdjęcia tutaj

W tym modelu wskaźnik OOB jest raczej niski (około 5%). Jednak średni spadek dokładności dla predyktora (długość płatka) o najwyższej wartości w tej mierze wynosi tylko około 8.

Czy to oznacza, że ​​usunięcie Płatka z modelu spowodowałoby jedynie dodatkowe błędne sklasyfikowanie średnio około 8 obserwacji?

Jak średni spadek dokładności płatka może być tak niski, biorąc pod uwagę, że jest on najwyższy w tej mierze, a zatem inne zmienne mają jeszcze niższe wartości dla tej miary?


spróbuj dat <- iris [, c (2: 3,5)] i powinna uzyskać wyższe wartości VI
Soren Havelund Welling

Odpowiedzi:


26

Czy to stwierdzenie o obiekcie jako całości, czy o określonych wartościach w obiekcie?

  • Istotność zmiennej „globalnej” oznacza średni spadek dokładności we wszystkich prognozach potwierdzonych metodą „out-of-bag”, gdy dana zmienna jest permutowana po treningu, ale przed prognozowaniem. „Globalny” jest niejawny. Lokalne zmienne znaczenie jest średnim spadkiem dokładności przez każdą indywidualną prognozę potwierdzoną krzyżowo po wyjęciu z torby. Znaczenie zmiennych globalnych jest najbardziej popularne, ponieważ jest to jedna liczba na zmienną, łatwiejsze do zrozumienia i bardziej niezawodne, ponieważ jest uśredniane dla wszystkich prognoz.

W obu przypadkach, czy średni spadek dokładności to liczba lub odsetek obserwacji, które zostały nieprawidłowo sklasyfikowane poprzez usunięcie danej cechy (lub wartości z cechy) z modelu?

  1. pociąg w lesie
  2. zmierzyć dokładność CV po wyjęciu z torby → OOB_acc_base
  3. zmienna permutacyjna i
  4. zmierzyć dokładność CV po wyjęciu z torby → OOB_acc_perm_i
  5. VI_i = - (OOB_acc_perm_i - OOB_acc_base)

- „ Czy to oznacza, że ​​usunięcie Płatka. Długość z modelu spowodowałoby jedynie dodatkowe błędne sklasyfikowanie średnio około 8 obserwacji?

  • Tak. Zarówno sama długość płatka, jak i szerokość płatka mają prawie idealną separację liniową. Zatem zmienne dzielą zbędne informacje, a dopuszczenie tylko jednej nie blokuje modelu.

Jak średni spadek dokładności płatka może być tak niski, biorąc pod uwagę, że jest on najwyższy w tej mierze, a zatem inne zmienne mają jeszcze mniejsze wartości w tej mierze?

  • Kiedy trenowany jest solidny / uregulowany model zmiennych nadmiarowych, jest on dość odporny na permutacje w pojedynczych zmiennych.

Używaj głównie znaczenia zmiennej, głównie do oceny przydatności zmiennych. Jasna interpretacja wartości bezwzględnych o różnym znaczeniu jest trudna do wykonania.

GINI: Ważność GINI mierzy średni przyrost czystości poprzez podziały danej zmiennej. Jeśli zmienna jest przydatna, ma tendencję do dzielenia mieszanych oznaczonych węzłów na czyste węzły pojedynczej klasy. Podział na zmienne permutowane nie ma tendencji do zwiększania ani zmniejszania czystości węzłów. Pozwalając na użyteczną zmienną, mają tendencję do dawania stosunkowo dużego spadku średniego wzmocnienia gini. Znaczenie GINI jest ściśle związane z lokalną funkcją decyzyjną, której losowy las używa do wyboru najlepszego dostępnego podziału. Dlatego obliczenie nie zajmuje dużo czasu. Z drugiej strony, średni zysk gini w lokalnych podziałach, niekoniecznie jest najbardziej przydatny do zmierzenia, w przeciwieństwie do zmiany ogólnej wydajności modelu. Ważność Gini jest ogólnie niższa niż zmienna (oparta na permutacji), ponieważ jest stosunkowo bardziej tendencyjna, bardziej niestabilna i ma tendencję do odpowiedzi na bardziej pośrednie pytanie.


Aby zapoznać się z interpretacją znaczenia zmiennej poza prostym rankingiem, sprawdź: „Wybór zmiennej dwuczynnikowej dla problemu klasyfikacji” -Vivian W. Ng i Leo Breiman digitalassets.lib.berkeley.edu/sdtr/ucb/text/692.pdf
Soren Havelund Welling

Dziękuję bardzo za odpowiedź! Widziałem niektóre miejsca opisujące średni spadek dokładności jako wzrost wskaźnika błędów OOB (tak procent). Wydana przez ciebie formuła również sugeruje wskaźnik błędów: (OOB_acc_perm_i - OOB_acc_base). Ale jesteś pewien, że średni spadek dokładności odnosi się do liczby nieprawidłowo sklasyfikowanych obserwacji?
FlacoT

1
Pamiętaj o minusie z przodu, ponieważ zmienne znaczenie to spadek. Nie byłem zbyt konkretny z jednostkami, mogą być one wyrażone w% lub czystych stosunkach / proporcjach, nie ma znaczenia. Ale tak, jako dokładność = 1-błąd_rate, VI_i = error_rate_perm_i - error_rate_base. W przypadku regresji jednostką ważności zmiennej permutacji jest zazwyczaj zmniejszenie% wyjaśnionej wariancji, a jednostką ważności gini jest średni spadek średniej_square_błąd-zysk. „Ale jesteś pewien, że średni spadek dokładności odnosi się do liczby nieprawidłowo sklasyfikowanych obserwacji? ” -Nie, dokładność jest ułamkiem, a nie liczbą.
Soren Havelund Welling

10

Oto opis średniego spadku dokładności (MDA) z podręcznika pomocy randomForest:

Pierwszy pomiar jest obliczany na podstawie permutacji danych OOB: Dla każdego drzewa rejestrowany jest błąd prognozy na części danych poza torbą (poziom błędu dla klasyfikacji, MSE dla regresji). To samo dzieje się po permutacji każdej zmiennej predykcyjnej. Różnice między nimi są następnie uśredniane dla wszystkich drzew i znormalizowane przez standardowe odchylenie różnic. Jeśli odchylenie standardowe różnic jest równe 0 dla zmiennej, dzielenie nie jest wykonywane (ale w tym przypadku średnia prawie zawsze jest równa 0).

Zgodnie z opisem „dokładność” w MDA w rzeczywistości odnosi się do dokładności modeli pojedynczych drzew , niezależnie od tego, że bardziej interesuje nas wskaźnik błędów lasu . Więc,

„Czy to oznacza, że ​​usunięcie Płatka. Długość z modelu spowodowałoby jedynie dodatkowe błędne sklasyfikowanie średnio około 8 obserwacji?”

  • Średnia (spadek dokładności drzew)StandardDeviation (Zmniejszenie dokładności drzew)
  • Średnia (spadek dokładności drzew)

H.0:Węzły zbudowane przez predyktor ja jest bezużyteczny w żadnym pojedynczym drzewie
H.1:Węzły zbudowane przez predyktor ja jest użyteczny

Uwaga: procedura MDA opisana przez Sorena różni się od implementacji pakietu randomForest. Jest bliżej tego, czego oczekujemy od MDA: zmniejszenia dokładności całego modelu lasu. Jednak model prawdopodobnie będzie pasował inaczej bez Płatka i będzie polegał bardziej na innych predyktorach. Zatem MDA Sorena byłby zbyt pesymistyczny.


Dwa kolejne pytania: 1. Masz pomysł, czy inne pakiety używają bardziej intuicyjnej MDA opisanej przez @Soren? 2. Jeśli interpretacja MDA w RandomForest ma charakter statystyczny testowy, czy istnieje jakaś ogólna zasada dotycząca tego, co wystarczająco duża statystyka testowa ma odrzucić H0? Czy MDA podlega jakiejś znanej dystrybucji?
FlacoT,

1. Przepraszam, nie próbowałem żadnej innej paczki. 2. Jest po prostu podobna do statystyki testowej. Ani dystrybucja nie jest dostępna (o ile wiem, niewielu ludzi się temu przygląda), a sam test nie ma znaczenia - nie sądzę, żeby test zawierał cokolwiek na temat LASU, co leży w naszym interesie.
Jianyu,

4

Niedawny (post na blogu) [ https://explained.ai/rf-importance/index.html] zespołu z University of San Francisco pokazuje, że domyślne strategie ważności zarówno w R (randomForest), jak i Python (scikit) są zawodne w wielu scenariuszach danych. W szczególności średni spadek wskaźników ważności zanieczyszczeń jest tendencyjny, gdy potencjalne zmienne predykcyjne różnią się skalą pomiaru lub liczbą kategorii.

Artykuły i post na blogu pokazują, w jaki sposób zmienne ciągłe i wysokie liczebność są preferowane przy średnim spadku rankingów ważności zanieczyszczeń, nawet jeśli są one równie nieinformacyjne w porównaniu ze zmiennymi o mniejszej kategorii. W takich przypadkach autorzy sugerują użycie ważności permutacji zamiast domyślnej. Jeśli zmienne predykcyjne w twoim modelu są wysoce skorelowane, sugerowane jest znaczenie permutacji warunkowej.

Zanieczyszczenie jest tendencyjne, ponieważ za każdym razem, gdy punkt zmienny jest wybierany w zmiennej, każdy poziom zmiennej jest testowany w celu znalezienia najlepszego punktu przerwania. Zmienne ciągłe lub o wysokiej liczności będą miały znacznie więcej punktów podziału, co powoduje problem z „wielokrotnym testowaniem”. Oznacza to, że istnieje większe prawdopodobieństwo, że przez przypadek zmienna dobrze prognozuje wynik, ponieważ zmienne, w których wypróbowywanych jest więcej podziałów, pojawią się częściej w drzewie.

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.