R调用compute函数出现undefined columns selected错误是什么原因?
报错根因
该错误的本质是你构造的测试数据集test与模型mod1训练时要求的输入变量不匹配,R尝试从test中提取模型所需列时找不到对应字段,因此抛出异常。
快速定位缺失列
直接运行以下命令即可查看模型要求的所有输入变量,无需手动排查:
print(mod1$model.list$variables)
将输出的变量列表和names(test)的结果对比,就能立刻找到缺失或名称不匹配的列。
修复代码
你需要保证测试集包含模型要求的全部变量,且预处理规则和训练时完全一致,示例如下:
# 获取模型要求的所有协变量名 required_vars <- mod1$model.list$variables # 从预处理后的scaled数据集提取全部要求的列,drop=F避免单变量时退化为向量 test <- scaled[, required_vars, drop = FALSE] # 重新执行预测 myprediction <- compute(x = mod1, covariate = test)
注意事项
- 变量名的拼写、大小写必须和训练时完全一致,任意字符差异都会触发该报错
- 所有输入变量的预处理规则必须和训练集对齐(比如标准化的缩放参数、分类变量的编码规则),否则预测结果会出现偏差
- 如果
scaled数据集缺少模型要求的某个变量,需要先补充对应变量并完成相同的预处理操作后,再执行预测
内容的提问来源于stack exchange,提问作者Horacio Ríos
相关产品推荐
相关产品推荐

