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

R tidymodels调用fit_resamples()报错:首个参数需为模型或工作流

报错原因
  • 你使用的tune 0.1.5版本中,fit_resamples()函数的第一个位置参数要求必须是模型规范对象或workflow工作流对象,不支持直接传入公式作为第一个位置参数。
  • 你之前调用fit()函数时公式可正常运行,是因为parsnip包的fit()函数参数顺序为fit(模型, 公式, 数据),你用管道将knn_spec传入了fit()的第一个参数,公式作为第二个参数匹配,符合函数要求。而你调用fit_resamples()时直接将公式放在第一个位置,不符合该函数的参数设计。
解决方案

提供两种可选修复方案:

方案1:使用workflow整合流程(推荐,符合tidymodels规范)

将公式/配方与模型绑定为workflow对象,再传入fit_resamples():

# 构建工作流绑定模型和预测公式
knn_wf <- workflow() %>%
  add_formula(children ~ .) %>%
  add_model(knn_spec)

# 重采样拟合,第一个参数传入工作流
knn_res <- fit_resamples(
  knn_wf,
  resamples = validation_splits,
  control = control_resamples(save_pred = TRUE)
)

方案2:显式指定参数名,调整参数顺序

不使用workflow的情况下,将模型放在第一个位置,显式声明formula参数:

knn_res <- fit_resamples(
  object = knn_spec,
  formula = children ~ .,
  resamples = validation_splits,
  control = control_resamples(save_pred = TRUE)
)

两种方案都可以解决当前报错,方案1更便于后续扩展调参、模型对比等操作,更推荐使用。

内容的提问来源于stack exchange,提问作者C.Robin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 08:27:03