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

使用测试集预测失败:new_data缺失normalized_used_price列

问题解决:step_select() 报错缺失'normalized_used_price'列

报错原因

测试数据中不存在normalized_used_price列(这是正常的,测试数据无需包含目标变量),但你的step_select操作未限定范围,会尝试对所有列(包括目标变量)进行处理,配方在处理测试数据时找不到该列,因此报错。

解决办法

修改step_select步骤,限定仅对预测变量进行列选择操作,避免涉及测试数据中不存在的目标变量:

set.seed(123)
recipe_obj <- recipe(normalized_used_price ~ ., data = train) %>%
  # 仅针对预测变量,排除指定列
  step_select(all_predictors(), -weight, -screen_size, -release_year, -normalized_new_price) %>% 
  step_string2factor(all_nominal_predictors()) %>% 
  step_impute_knn(all_predictors()) %>% 
  step_dummy(all_nominal_predictors()) %>% 
  step_scale(all_numeric_predictors())

# 后续代码保持不变
final_wf <- workflow() %>% 
  add_recipe(recipe_obj) %>% 
  add_model(final_model)

fn_model <- fit(final_wf, train)

predict(fn_model, test)

说明

all_predictors()会自动识别配方中的预测变量(即除normalized_used_price之外的所有列),这样step_select只会在这些变量中排除指定列,不会试图访问测试数据中不存在的目标变量,从而解决报错问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 03:35:21