欢迎来到本课程!

R 中的树模型机器学习

Sandro Raabe

Data Scientist

课程概览

  • 第 1 章:分类树
  • 第 2 章:回归树、交叉验证、偏差-方差权衡
  • 第 3 章:超参数调优、袋装法、随机森林
  • 第 4 章:提升树
R 中的树模型机器学习

决策树是流程图

动物流程图

1 https://aca.edu.au/resources/decision-trees-classifying-animals/decision-trees.pdf
R 中的树模型机器学习

树模型的优点

  • 易于解释和理解
  • 可捕捉非线性关系
  • 数值特征无需归一化或标准化
  • 无需创建虚拟指示变量
  • 对异常值鲁棒
  • 处理大数据集速度快
R 中的树模型机器学习

树模型的缺点

  • 若模型大、深或集成,难以解释
  • 高方差,复杂树易过拟合
R 中的树模型机器学习

tidymodels_截图

R 中的树模型机器学习

tidymodels 包

library(tidymodels)
-- Attaching packages -------------------- tidymodels 0.1.4 --
v parsnip   0.2.1      v rsample   0.1.1 
v dplyr     1.0.9      v tibble    3.1.7 
v yardstick 0.0.9      v tune      0.1.6
R 中的树模型机器学习

创建决策树

规范/函数式设计
  1. 选择模型类别
library(tidymodels)

decision_tree()
Decision Tree Model Specification (unknown)
R 中的树模型机器学习

创建决策树

  1. 设置驱动模型的引擎
library(tidymodels)

decision_tree() %>% 
    set_engine("rpart")
Decision Tree Model Specification (unknown)

Computational engine: rpart
R 中的树模型机器学习

创建决策树

  1. 设置模式(分类或回归)
library(tidymodels)

decision_tree() %>% 
     set_engine("rpart") %>% 
     set_mode("classification")
Decision Tree Model Specification (classification)

Computational engine: rpart
R 中的树模型机器学习

从模型规范到真实模型

规范是骨架,需要用数据训练
library(tidymodels)
tree_spec <- decision_tree() %>% 
               set_engine("rpart") %>% 
               set_mode("classification")
# 使用公式在训练数据上拟合模型规范
tree_spec %>%           
  fit(formula = outcome ~ age + bmi,  
      data = diabetes)
parsnip model object
Fit time: 19 ms 
n = 652
R 中的树模型机器学习

一起构建模型!

R 中的树模型机器学习

Preparing Video For Download...