R运行randomForest时报错non-numeric argument to binary operator求助
R randomForest模型运行报错解决方案
错误根因
- 核心问题是响应变量
play没有被设置为因子类型,randomForest函数默认将其判定为数值型变量执行回归任务,但play实际为分类变量(仅包含是否打球等少数分类取值),回归计算过程中需要对响应变量做数值运算,所以触发报错。 - 两条警告信息均为该问题的前置提示:第一条提示响应变量唯一取值≤5,询问是否确认做回归;第二条提示无法对非数值型的响应变量计算均值,返回NA。
修复方案
- 运行模型前先将
play列转换为因子类型,指定这是分类任务的响应变量:weather$play <- as.factor(weather$play) - 再运行原模型代码即可正常执行:
model <- randomForest(play ~ ., data = weather, ntree = 500, mtry = 4, importance = TRUE)
- 原代码行末尾的保存模型注释建议单独拆分,避免代码和注释同行引发不必要的解析异常,保存模型可单独执行:
saveRDS(model, "play_golf_model.rds")
验证操作
转换变量类型后运行class(weather$play),确认返回结果为factor后再训练模型即可。
内容的提问来源于stack exchange,提问作者NinjaSteve 1
相关产品推荐
相关产品推荐

