Stetige Zielgrößen

Maschinelles Lernen mit baumbasierten Modellen in R

Sandro Raabe

Data Scientist

Der Datensatz

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"
Maschinelles Lernen mit baumbasierten Modellen in R

Regressionsbaum erstellen

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
Maschinelles Lernen mit baumbasierten Modellen in R

Vorhersagen mit einem Regressionsbaum

# 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
Maschinelles Lernen mit baumbasierten Modellen in R

Teile und herrsche

teile_und_herrsche

Maschinelles Lernen mit baumbasierten Modellen in R

Hyperparameter

Ziel für Regressionsbäume:
  • Geringe Varianz bzw. Abweichung vom Mittelwert innerhalb von Gruppen
Designentscheidungen:
  • min_n: Anzahl Datenpunkte in einem Knoten für weiteren Split (Standard: 20)
  • tree_depth: maximale Tiefe des Baums (Standard: 30)
  • cost_complexity: Strafterm für Komplexität (Standard: 0.01)
Gleich zu Beginn festlegen:
decision_tree(tree_depth = 4, cost_complexity = 0.05) %>% 
    set_mode("regression")
Maschinelles Lernen mit baumbasierten Modellen in R

Modellausgabe verstehen

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 *
  • Modell mit tree_depth = 1

 

 

  • Visualisierung:

Entscheidungsbaum

Maschinelles Lernen mit baumbasierten Modellen in R

Lass uns Regression machen!

Maschinelles Lernen mit baumbasierten Modellen in R

Preparing Video For Download...