Variables continues

Machine Learning avec des modèles à base d’arbres en R

Sandro Raabe

Data Scientist

Le jeu de données

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 avec des modèles à base d’arbres en R

Construire l'arbre de régression

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 avec des modèles à base d’arbres en R

Prédire avec un arbre de régression

# Model predictions on new data
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 avec des modèles à base d’arbres en R

Diviser pour régner

diviser pour régner

Machine Learning avec des modèles à base d’arbres en R

Hyperparamètres

Objectif des arbres de régression :
  • Faible variance ou écart à la moyenne au sein des groupes
Choix de conception :
  • min_n : nombre de points dans un nœud requis pour scinder (par défaut : 20)
  • tree_depth : profondeur maximale de l'arbre (par défaut : 30)
  • cost_complexity : pénalité de complexité (par défaut : 0,01)
À définir dès le départ :
decision_tree(tree_depth = 4, cost_complexity = 0.05) %>% 
    set_mode("regression")
Machine Learning avec des modèles à base d’arbres en R

Interpréter la sortie du modèle

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 *
  • Modèle avec tree_depth = 1

 

 

  • Visualisation :

arbre de décision

Machine Learning avec des modèles à base d’arbres en R

Passons à la régression !

Machine Learning avec des modèles à base d’arbres en R

Preparing Video For Download...