Random forest

Machine Learning con modelli ad albero in R

Sandro Raabe

Data Scientist

Random forest

  • Adatto a dati ad alta dimensionalità
  • Facile da usare
  • Buone prestazioni out-of-the-box
  • Implementato in vari package: ranger, randomForest
  • Interfaccia tidymodels a questi package: rand_forest() (nel package parsnip)
Machine Learning con modelli ad albero in R

Idea

  • Idea di base (come il bagging): addestra alberi su campioni bootstrap
  • Differenza chiave: predittori random tra gli alberi $\rightarrow$ foresta random
Machine Learning con modelli ad albero in R

Intuizione

schizzo random forest

Machine Learning con modelli ad albero in R

Coding: specificare un modello random forest

  • Nome funzione: rand_forest()

Iperparametri:

  • mtry: predittori visti a ogni nodo, default:
    $$\left\lfloor\sqrt\text{num predictors}\right\rfloor$$
  • trees: numero di alberi nella foresta
  • min_n: dimensione minima del nodo
rand_forest(

mtry = 4,
trees = 500,
min_n = 10) %>%
# Set the mode set_mode("classification") %>%
# Use engine ranger or randomForest set_engine("ranger")
Machine Learning con modelli ad albero in R

Coding: specificare un modello random forest

spec <- rand_forest(trees = 100) %>%

set_mode("classification") %>%
set_engine("ranger")
Specifiche del modello Random Forest

(classification)
Argomenti principali: trees = 100
Motore computazionale: ranger
Machine Learning con modelli ad albero in R

Addestrare una foresta

spec %>% fit(still_customer ~ ., data = customers_train)
oggetto modello parsnip

Tempo di fit:  631ms 
Risultato Ranger

Numero di alberi:                 100 
Dimensione campione:              9116 
Numero di variabili indipendenti: 19 
Mtry:                             4 
Dimensione minima nodo:           10
Machine Learning con modelli ad albero in R

Importanza delle variabili

rand_forest(mode = "classification") %>%
    set_engine("ranger", importance = "impurity") %>%

fit(still_customer ~ ., data = customers_train) %>%
vip::vip()

grafico VIP

Machine Learning con modelli ad albero in R

Piantiamo una random forest!

Machine Learning con modelli ad albero in R

Preparing Video For Download...