Resultados contínuos

Machine Learning com modelos baseados em árvores em R

Sandro Raabe

Data Scientist

O conjunto de dados

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 com modelos baseados em árvores em R

Construir a árvore de regressão

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 com modelos baseados em árvores em R

Previsões com uma árvore de regressão

# 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 com modelos baseados em árvores em R

Dividir e conquistar

dividir e conquistar

Machine Learning com modelos baseados em árvores em R

Hiperparâmetros

Objetivo das árvores de regressão:
  • Baixa variância ou desvio da média dentro dos grupos
Decisões de projeto:
  • min_n: número de pontos no nó necessário para dividir (padrão: 20)
  • tree_depth: profundidade máxima da árvore (padrão: 30)
  • cost_complexity: penalidade por complexidade (padrão: 0.01)
Defina já no primeiro passo:
decision_tree(tree_depth = 4, cost_complexity = 0.05) %>% 
    set_mode("regression")
Machine Learning com modelos baseados em árvores em R

Entendendo a saída do modelo

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 *
  • Modelo com tree_depth = 1

 

 

  • Visualização:

árvore de decisão

Machine Learning com modelos baseados em árvores em R

Vamos fazer regressão!

Machine Learning com modelos baseados em árvores em R

Preparing Video For Download...