Output continui

Machine Learning con modelli ad albero in R

Sandro Raabe

Data Scientist

Il dataset

head(chocolate, 5)
final_grade review_date   cocoa_percent  company_location  bean_type              broad_bean_origin
<dbl>       <int>         <dbl>          <fct>             <fct>                  <fct>
3           2009          0.8            U.K.              "Criollo, Trinitario"  "Madagascar"
3.75        2012          0.7            Guatemala         "Trinitario"           "Madagascar"
2.75        2009          0.75           Colombia          "Forastero (Nacional)" "Colombia"
3.5         2014          0.74           Zealand           ""                     "Papua New Guinea"
3.75        2011          0.72           Australia         ""                     "Bolivia"
Machine Learning con modelli ad albero in R

Costruisci l’albero di regressione

spec <- decision_tree() %>%

set_mode("regression") %>%
set_engine("rpart")
print(spec)
Decision Tree Model Specification
(regression)

Computational engine: rpart
model <- spec %>%
  fit(formula = final_grade ~ .,

data = chocolate_train)
print(model)
parsnip model object

Fit time:  20ms 
n= 1437 

node), split, n, deviance, yval
      * denotes terminal node
Machine Learning con modelli ad albero in R

Predizioni con un albero di regressione

# Predizioni del modello su nuovi dati
predict(model, new_data = chocolate_test)
.pred
<dbl>
3.281915
3.435234
3.281915
3.833931
3.281915
3.514151
3.273864
3.514151
Machine Learning con modelli ad albero in R

Divide & conquer

dividi e conquista

Machine Learning con modelli ad albero in R

Iperparametri

Obiettivo dei tree di regressione:
  • Bassa varianza o deviazione dalla media nei gruppi
Scelte di design:
  • min_n: numero di punti in un nodo per poter dividere (default: 20)
  • tree_depth: profondità massima dell’albero (default: 30)
  • cost_complexity: penalità per la complessità (default: 0.01)
Impostali subito all’inizio:
decision_tree(tree_depth = 4, cost_complexity = 0.05) %>% 
    set_mode("regression")
Machine Learning con modelli ad albero in R

Capire l’output del modello

decision_tree(tree_depth = 1) %>%
  set_mode("regression") %>%              
  set_engine("rpart")  %>%
  fit(formula = final_grade ~ .,
      data = chocolate_train)
parsnip model object

Fit time:  1ms
n= 1000

node), split, n, yval

1) root                 1000  2.347450
2) cocoa_percent>=0.905   16  2.171875 *
3) cocoa_percent<0.905   984  3.190803 *
  • Modello con tree_depth = 1

 

 

  • Visualizzazione:

albero decisionale

Machine Learning con modelli ad albero in R

Facciamo regressione!

Machine Learning con modelli ad albero in R

Preparing Video For Download...