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

使用Caret训练glm模型时出现undefined columns selected错误求助

错误原因及解决方案

错误原因分析

第一种报错场景

train(training$type~.,method="glm",data=trainPC)报错的核心问题:

  • trainPC仅包含PCA处理后的2个主成分列,没有响应变量type
  • 公式中使用外部变量training$type,但train函数默认期望响应变量和特征变量都在指定的data参数对应的数据集里,导致无法匹配列。

第二种报错场景

train(training$type~ .,method="glm",preProcess="pca",data=training)报错的核心问题:

  • 公式写法错误,training$type~.会让train函数在training数据框中寻找名为training$type的列,而该列实际不存在,因此触发"undefined columns selected"错误。

解决方案

方案1:手动PCA后训练

将响应变量合并到PCA处理后的数据集,再用正确公式训练:

# 合并响应变量到PCA处理后的训练集
trainPC_with_response <- cbind(trainPC, type = training$type)
# 训练模型
modelFit <- train(type~., method="glm", data=trainPC_with_response)

方案2:使用caret内置preProcess参数

修正公式写法,直接引用数据框内的列名:

# 正确使用内置PCA预处理
modelFit <- train(type~., method="glm", preProcess="pca", data=training)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 02:56:11