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

使用tidymodels构建Lasso回归模型预测时遇price列缺失错误

tidymodels预测时提示目标列缺失的原因与解决方法

使用tidymodels构建Lasso回归工作流,模型拟合正常,但对测试集调用predict()时出现错误:new_data中缺少所需列price,但price列同时存在于训练集和测试集中。

问题原因

错误根源在你的recipe定义里:

step_normalize(all_numeric())

all_numeric()会选中所有数值型列,包括目标变量price。训练阶段这个操作能正常执行,但调用predict()时,workflow会自动从new_data中移除目标列(预测过程不需要目标变量),而step_normalize处理测试集时仍期望找到price列完成归一化,因此触发缺失列错误。

解决方法

将step_normalize的作用范围从all_numeric()改为all_predictors(),这样仅对预测变量(除price外的数值列)执行归一化:

修改后的recipe代码:

lasso_prep_recipe <-
  recipe(price ~ ., data = train) %>%
  step_zv(all_predictors()) %>%
  step_normalize(all_predictors())  # 替换all_numeric()为all_predictors()

重新拟合工作流后,调用predict(lasso_fit, new_data = test)即可正常生成预测结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 15:01:04