Náhodné lesy

Supervised Learning in R: Regression

Nina Zumel and John Mount

Win-Vector, LCC

Náhodné lesy

Průměr více různorodých rozhodovacích stromů

  • Snižuje přetrénování
  • Zvyšuje expresivitu modelu
  • Jemnější predikce
Supervised Learning in R: Regression

Sestavení modelu náhodného lesa

  1. Náhodný výběr (bootstrap) z trénovacích dat
  2. Pro každý vzorek se pěstuje strom
    • V každém uzlu se vybere nejlepší proměnná pro rozdělení (z náhodné podmnožiny všech proměnných)
    • Pokračuje se až do úplného růstu stromu
  3. Při skórování záznamu se vyhodnotí všemi stromy a výsledky se zprůměrují.
Supervised Learning in R: Regression

Příklad: Data o půjčovně kol

cnt ~ hr + holiday + workingday + 
  weathersit + temp + atemp + hum + windspeed

Supervised Learning in R: Regression

Náhodné lesy s ranger()

model <- ranger(fmla, bikesJan, 
                num.trees = 500, 
                respect.unordered.factors = "order")
  • formula, data
  • num.trees (výchozí 500) – použijte alespoň 200
  • mtry – počet proměnných testovaných v každém uzlu
    • výchozí: druhá odmocnina celkového počtu proměnných
  • respect.unordered.factors – doporučeno nastavit na "order"
    • „bezpečné" hashování kategorických proměnných
Supervised Learning in R: Regression

Náhodné lesy s ranger()

model
Ranger result
...
OOB prediction error (MSE):       3103.623 
R squared (OOB):                  0.7837386

Algoritmus náhodného lesa vrací odhady výkonu na nových datech.

Supervised Learning in R: Regression

Predikce s modelem ranger()

bikesFeb$pred <- predict(model, bikesFeb)$predictions

predict() vstupy:

  • model
  • data

Předpovědi jsou přístupné v elementu predictions.

Supervised Learning in R: Regression

Vyhodnocení modelu

Výpočet RMSE:

bikesFeb %>% 
  mutate(residual = cnt - pred) %>%
  summarize(rmse = sqrt(mean(residual^2)))
      rmse
1 67.15169
Model RMSE
Quasipoisson 69,3
Náhodné lesy 67,15
Supervised Learning in R: Regression

Vyhodnocení modelu

Supervised Learning in R: Regression

Vyhodnocení modelu

Supervised Learning in R: Regression

Pojďme procvičovat!

Supervised Learning in R: Regression

Preparing Video For Download...