連續型輸出

R 的樹狀模型機器學習

Sandro Raabe

Data Scientist

資料集

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"
R 的樹狀模型機器學習

建構迴歸樹

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
R 的樹狀模型機器學習

使用迴歸樹做預測

# 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
R 的樹狀模型機器學習

分而治之

分而治之

R 的樹狀模型機器學習

超參數

迴歸樹目標:
  • 群內變異或與平均差距要小
設計選項:
  • min_n:節點需具備的資料點數,才能再切分(預設:20)
  • tree_depth:樹的最大深度(預設:30)
  • cost_complexity:模型複雜度懲罰(預設:0.01)
一開始就設定:
decision_tree(tree_depth = 4, cost_complexity = 0.05) %>% 
    set_mode("regression")
R 的樹狀模型機器學習

解讀模型輸出

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 *
  • tree_depth = 1 的模型

 

 

  • 視覺化:

decision tree

R 的樹狀模型機器學習

一起來做迴歸!

R 的樹狀模型機器學習

Preparing Video For Download...