Random forests

Aprendizado Supervisionado em R: Regressão

Nina Zumel and John Mount

Win-Vector, LCC

Random Forests

Várias árvores de decisão diversas, em média

  • Reduz overfitting
  • Aumenta a expressividade do modelo
  • Previsões mais granulares
Aprendizado Supervisionado em R: Regressão

Construindo um modelo de Random Forest

  1. Crie uma amostra bootstrap dos dados de treino
  2. Para cada amostra, cresça uma árvore
    • Em cada nó, escolha a melhor variável para dividir (de um subconjunto aleatório de todas as variáveis)
    • Continue até a árvore terminar de crescer
  3. Para pontuar um dado, avalie-o em todas as árvores e faça a média dos resultados.
Aprendizado Supervisionado em R: Regressão

Exemplo: dados de aluguel de bikes

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

Aprendizado Supervisionado em R: Regressão

Random Forests com ranger()

model <- ranger(fmla, bikesJan, 
                num.trees = 500, 
                respect.unordered.factors = "order")
  • formula, data
  • num.trees (padrão 500) — use pelo menos 200
  • mtry — número de variáveis testadas em cada nó
    • padrão: raiz quadrada do total de variáveis
  • respect.unordered.factors — recomendado definir como "order"
    • hashing "seguro" de variáveis categóricas
Aprendizado Supervisionado em R: Regressão

Random Forests com ranger()

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

O algoritmo de random forest retorna estimativas de desempenho fora da amostra.

Aprendizado Supervisionado em R: Regressão

Prevendo com um modelo ranger()

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

Entradas de predict():

  • model
  • data

As previsões ficam no elemento predictions.

Aprendizado Supervisionado em R: Regressão

Avaliando o modelo

Calcular o RMSE:

bikesFeb %>% 
  mutate(residual = cnt - pred) %>%
  summarize(rmse = sqrt(mean(residual^2)))
      rmse
1 67.15169
Modelo RMSE
Quasipoisson 69.3
Random forests 67.15
Aprendizado Supervisionado em R: Regressão

Avaliando o modelo

Aprendizado Supervisionado em R: Regressão

Avaliando o modelo

Aprendizado Supervisionado em R: Regressão

Vamos praticar!

Aprendizado Supervisionado em R: Regressão

Preparing Video For Download...