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

为什么使用交互效应时Tidymodels Recipe无法正常工作?

解决tidymodels Recipe中交互效应的报错问题

错误原因

tidymodels的recipe()函数对公式语法有严格限制:公式仅用来指定原始变量的基础关联(比如用+分隔预测变量),像*这种自动生成主效应+交互项的语法会被判定为「内联函数操作」,违反了recipe的设计逻辑——所有特征工程操作(包括创建交互项)都必须通过专门的step_*()系列函数来定义,而不是直接写在公式里。

解决方案

要创建交互项,需先在recipe()公式中列出所有主效应变量,再通过step_interact()函数明确生成交互项,示例代码如下:

library(tidyverse)
library(ISLR)
data("Auto")
library(tidymodels)

auto_data <- initial_split(Auto, strata = origin)
auto_train <- training(auto_data)
auto_test <- testing(auto_data)

# 正确创建含交互项的recipe
recipe <- recipe(mpg ~ horsepower + origin, data = auto_train) %>%
  step_interact(terms = ~ horsepower:origin)

其中horsepower:origin表示两个变量的交互项,如果你需要的是horsepower * origin等价的「主效应+交互项」,上面的写法就完全对应(公式里的+已经包含主效应,step_interact添加交互项)。

为什么无交互项的公式不报错

mpg ~ horsepower + origin只是单纯指定了预测变量和响应变量的关联,没有任何特征变换操作,完全符合recipe()对公式的要求,因此不会触发错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 10:52:10