R 的樹狀模型機器學習
Sandro Raabe
Data Scientist
tree_depth?decision_tree

簡單模型
simple_spec <- decision_tree(tree_depth = 2) %>%
set_mode("regression")
simple_spec %>% fit(final_grade ~ .,
data = training_data)
複雜模型
complex_spec <- decision_tree(tree_depth = 15) %>%
set_mode("regression")
complex_spec %>% fit(final_grade ~ .,
data = training_data)


訓練集預測:表現不錯!

mae(train_results,
estimate = .pred,
truth = final_grade)
# A tibble: 1 x 3
.metric .estimate
1 mae 0.204
測試集預測:差很大!

mae(test_results,
estimate = .pred,
truth = final_grade)
# A tibble: 1 x 3
.metric .estimate
1 mae 0.947
訓練集與測試集都有「很大」誤差:
bind_rows(training = mae(train_results, estimate = .pred, truth = final_grade),
test = mae(test_results, estimate = .pred, truth = final_grade),
.id = "dataset")
# A tibble: 2 x 4
dataset .metric .estimate
<chr> <chr> <dbl>
1 training mae 0.754
2 test mae 0.844

樣本外/CV:
collect_metrics(cv_fits)
# A tibble: 1 x 3
.metric mean n
1 mae 2.432 5
樣本內:
mae(training_pred,
estimate = .pred,
truth = final_grade)
# A tibble: 1 x 2
.metric .estimate
1 mae 0.228
樣本內:
mae(training_pred, estimate = .pred, truth = final_grade)
# A tibble: 1 x 2
.metric .estimate
<chr> <dbl>
1 mae 2.432
R 的樹狀模型機器學習