为什么在整形模型中需要准备,烘烤和榨汁?

问题描述

我总是在不使用prep()bake()juice()的情况下完成模型的拟合和预测:

rec_wflow <- 
  workflow() %>% 
  add_model(lr_mod) %>% 
  add_recipe(rec)

data_fit <- 
  rec_wflow %>% 
  fit(data = train_data)

这些(prepbakejuice函数是否仅用于视觉检查数据的预处理结果,而对于拟合/训练过程不是必需的吗?

What is the difference among prep/bake/juice in the R package "recipes"?

上面的代码是我在官方教程中学到的。

我在另一个博客中读到,如果您使用train_data,则会产生数据泄漏。我想听听更多这些功能与数据泄漏有关吗?

解决方法

简短的回答:您是对的,当像您的示例那样在工作流程中使用配方时,不需要预处理功能。

这在教程Handle class imbalance in #TidyTuesday climbing expedition data with tidymodels中已涉及:

我们将在工作流程()中使用此配方,因此我们无需过多地强调是否要进行prep()。如果要探索配方对数据的作用,可以先准备()配方以估算每个步骤所需的参数,然后烘烤(new_data = NULL)以应用这些步骤提取训练数据。

我推荐Julia博客上的所有教程,以了解tidymodels。