tidymodels 生态系统

在 R 中使用 tidymodels 建模

David Svancer

Data Scientist

机器学习包的集合

tidymodels 包

在 R 中使用 tidymodels 建模

机器学习包的集合

用 rsample 进行数据重采样

在 R 中使用 tidymodels 建模

机器学习包的集合

用 recipes 进行特征工程

在 R 中使用 tidymodels 建模

机器学习包的集合

用 parnsip 进行模型拟合

在 R 中使用 tidymodels 建模

机器学习包的集合

用 tune 和 dials 进行模型调参

在 R 中使用 tidymodels 建模

机器学习包的集合

使用 yardstick 评估模型

在 R 中使用 tidymodels 建模

监督学习

使用带标签数据拟合模型的机器学习分支

回归

  • 预测数量型结果
    • 房屋售价

 

分类

  • 预测类别型结果
    • 员工是否会离职
left_company miles_from_home salary
no 1 84500
yes 10 64820
no 5 76490
yes 19 68540

 

tidymodels 变量角色

  • left_company 是结果变量
  • miles_from_homesalary 是预测变量
在 R 中使用 tidymodels 建模

数据重采样

 

创建训练集与测试集

  • 防止过拟合
  • 常用比例:训练 75%,测试 25%

训练数据

  • 特征工程
  • 模型拟合与调参

测试数据

  • 评估模型在新数据上的表现

创建训练集与测试集

在 R 中使用 tidymodels 建模

燃油效率数据

来自美国环保署的车辆燃油效率数据

  • 结果变量为 hwy —— 高速公路油耗(mpg)
mpg
# A tibble: 234 x 11
     hwy   cty displ   cyl manufacturer model       year trans      drv   fl    class  
   <int> <int> <dbl> <int> <chr>        <chr>      <int> <chr>      <chr> <chr> <chr>  
 1    29    18   1.8     4 audi         a4          1999 auto(l5)   f     p     compact
 2    29    21   1.8     4 audi         a4          1999 manual(m5) f     p     compact
 3    31    20   2       4 audi         a4          2008 manual(m6) f     p     compact
 4    30    21   2       4 audi         a4          2008 auto(av)   f     p     compact
 5    26    16   2.8     6 audi         a4          1999 auto(l5)   f     p     compact
# ... with 224 more rows
在 R 中使用 tidymodels 建模

用 tidymodels 进行数据重采样

  • initial_split()

    • 指定创建训练集与测试集的规则
    • prop 指定训练集比例
    • strata 按结果变量分层
  • 将 split 对象传给 training() 函数

 

  • 将 split 对象传给 testing() 函数
library(tidymodels)
mpg_split <- initial_split(mpg,
                           prop = 0.75,
                           strata = hwy)

 

mpg_training <- mpg_split %>%
  training()
mpg_test <- mpg_split %>%
  testing()
在 R 中使用 tidymodels 建模

房屋销售数据

2015–2016 年华盛顿州西雅图地区的房屋销售

home_sales
# A tibble: 1,492 x 8
   selling_price home_age bedrooms bathrooms sqft_living sqft_lot sqft_basement floors
           <dbl>    <dbl>    <dbl>     <dbl>       <dbl>    <dbl>         <dbl>  <dbl>
 1        487000       10        4      2.5         2540     5001             0      2
 2        465000       10        3      2.25        1530     1245           480      2
 3        411000       18        2      2           1130     1148           330      2
 4        635000        4        3      2.5         3350     4007           800      2
 5        380000       24        5      2.5         2130     8428             0      2
# ... with 1,482 more rows
在 R 中使用 tidymodels 建模

开始练习吧!

在 R 中使用 tidymodels 建模

Preparing Video For Download...