Pădure aleatoare

Machine Learning cu modele bazate pe arbori în R

Sandro Raabe

Data Scientist

Pădure aleatoare

  • Potrivit pentru date de mare dimensionalitate
  • Ușor de utilizat
  • Performanță bună din start
  • Implementat în mai multe pachete: ranger, randomForest
  • Interfață tidymodels pentru aceste pachete: rand_forest() (din pachetul parsnip)
Machine Learning cu modele bazate pe arbori în R

Idee

  • Idee de bază (identică cu bagging): arbori antrenați pe eșantioane bootstrap
  • Diferență cheie: predictori aleatori pentru fiecare arbore $\rightarrow$ pădure aleatoare
Machine Learning cu modele bazate pe arbori în R

Intuiție

Schiță pădure aleatoare

Machine Learning cu modele bazate pe arbori în R

Cod: Specificarea unui model de pădure aleatoare

  • Numele funcției: rand_forest()

Hiperparametri:

  • mtry: predictori evaluați la fiecare nod, implicit:
    $$\left\lfloor\sqrt\text{num predictors}\right\rfloor$$
  • trees: numărul de arbori din pădure
  • min_n: dimensiunea minimă a unui nod
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 cu modele bazate pe arbori în R

Cod: Specificarea unui model de pădure aleatoare

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

set_mode("classification") %>%
set_engine("ranger")
Random Forest Model Specification

(classification)
Main Arguments: trees = 100
Computational engine: ranger
Machine Learning cu modele bazate pe arbori în R

Antrenarea unei păduri

spec %>% fit(still_customer ~ ., data = customers_train)
parsnip model object

Fit time:  631ms 
Ranger result

Number of trees:                  100 
Sample size:                      9116 
Number of independent variables:  19 
Mtry:                             4 
Target node size:                 10
Machine Learning cu modele bazate pe arbori în R

Importanța variabilelor

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

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

Grafic vip

Machine Learning cu modele bazate pe arbori în R

Să plantăm o pădure aleatoare!

Machine Learning cu modele bazate pe arbori în R

Preparing Video For Download...