You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tidymodels中如何使用recipes包指定计算生成的response响应变量

解决方案

在recipes工作流中,不需要重新调用recipe()函数定义配方,直接使用update_role()函数修改已生成计算列的角色即可,具体实现如下:

library(recipes)

# 原有计算列生成逻辑后追加角色修改步骤
rec <- recipe(~ ., data = training) %>%
  step_mutate(response = as.integer(all(c('A', 'B') %in% Col4) & Col4 == 'A')) %>%
  # 将新生成的response列角色修改为响应变量(outcome)
  update_role(response, new_role = "outcome") %>%
  # 后续可直接对响应变量执行处理步骤
  step_naomit(response)

相关说明

  • recipes中所有列都有对应角色,初始调用recipe(~ ., data = training)时所有原始列的默认角色为predictor(预测变量),通过step_mutate生成的新列默认也会被分配predictor角色,update_role()可以直接修改指定列的角色为outcome(响应变量),完全符合流程要求。
  • 你提供的参考代码存在语法问题:管道语法下step_*系列函数会自动接收前序传递的配方对象作为第一个参数,不需要手动传入配方对象。
  • 可执行summary(rec)查看所有列的角色分配,确认response列的角色已经修改为outcome。

内容的提问来源于stack exchange,提问作者piper180

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 15:54:05