如何在 Tidymodels 中使用配方包指定响应
How to specify response using recipe package in Tidymodels
我正在创建一个配方,以便我首先创建一个名为“response”的计算列:
rec <- recipe( ~., data = training) %>%
step_mutate(response = as.integer(all(c('A', 'B') %in% Col4) & Col4 == 'A'))
我现在想将这个新的计算列指定为 recipe() 函数中的响应变量,如下所示。我将对其进行一系列操作,例如第一个 step_naomit。我如何将我在 recipe() 中的响应重新指定为我使用 recipes 的上一步(以上)的计算列?
recipe <- recipe(response ~ ., data = training) %>%
step_naomit(recipe, response)
您可以通过显式设置 role=
参数来为 step_mutate()
函数中的新列设置角色。
rec <- recipe( ~., data = iris) %>%
step_mutate(SepalSquared= Sepal.Length ^ 2, role="outcome")
然后检查它是否适用于 summary(prep(rec))
variable type role source
<chr> <chr> <chr> <chr>
1 Sepal.Length numeric predictor original
2 Sepal.Width numeric predictor original
3 Petal.Length numeric predictor original
4 Petal.Width numeric predictor original
5 Species nominal predictor original
6 SepalSquared numeric outcome derived
这与
有关
通常不建议修改食谱中的响应。这是因为在某些情况下响应变量对配方不可用,例如使用 {tune} 时。我建议您在将数据传递给配方之前执行此转换。如果你在验证拆分之前这样做就更好了。
set.seed(1234)
data_split <- my_data %>%
step_mutate(response = as.integer(all(c('A', 'B') %in% Col4) & Col4 == 'A')) %>%
initial_split()
training <- training(data_split)
testing <- testing(data_split)
rec <- recipe(response ~., data = training)
我正在创建一个配方,以便我首先创建一个名为“response”的计算列:
rec <- recipe( ~., data = training) %>%
step_mutate(response = as.integer(all(c('A', 'B') %in% Col4) & Col4 == 'A'))
我现在想将这个新的计算列指定为 recipe() 函数中的响应变量,如下所示。我将对其进行一系列操作,例如第一个 step_naomit。我如何将我在 recipe() 中的响应重新指定为我使用 recipes 的上一步(以上)的计算列?
recipe <- recipe(response ~ ., data = training) %>%
step_naomit(recipe, response)
您可以通过显式设置 role=
参数来为 step_mutate()
函数中的新列设置角色。
rec <- recipe( ~., data = iris) %>%
step_mutate(SepalSquared= Sepal.Length ^ 2, role="outcome")
然后检查它是否适用于 summary(prep(rec))
variable type role source
<chr> <chr> <chr> <chr>
1 Sepal.Length numeric predictor original
2 Sepal.Width numeric predictor original
3 Petal.Length numeric predictor original
4 Petal.Width numeric predictor original
5 Species nominal predictor original
6 SepalSquared numeric outcome derived
这与
通常不建议修改食谱中的响应。这是因为在某些情况下响应变量对配方不可用,例如使用 {tune} 时。我建议您在将数据传递给配方之前执行此转换。如果你在验证拆分之前这样做就更好了。
set.seed(1234)
data_split <- my_data %>%
step_mutate(response = as.integer(all(c('A', 'B') %in% Col4) & Col4 == 'A')) %>%
initial_split()
training <- training(data_split)
testing <- testing(data_split)
rec <- recipe(response ~., data = training)