加载gbm.step生成的gbm模型后调用predict函数报错的求助
问题原因
- 加载模型的新R会话未加载
gbm包:predict.gbm是gbm包提供的专属预测方法,若会话中未加载该包,R无法识别gbm类对象的预测逻辑,触发报错。 - 训练与加载模型时
gbm包版本不兼容:不同版本的gbm包对模型对象的结构定义可能存在差异,导致加载后的模型无法匹配当前版本的预测方法。
解决方案
1. 加载模型前/后先加载gbm包
在新会话中执行:
library(gbm) M <- readRDS("Mymodel.rds") TestDF$pred <- predict(M, TestDF, n.trees=M$gbm.call$best.trees, type="response")
2. 直接指定gbm包的预测方法
无需显式加载包,直接调用专属方法规避依赖问题:
M <- readRDS("Mymodel.rds") TestDF$pred <- gbm::predict.gbm(M, TestDF, n.trees=M$gbm.call$best.trees, type="response")
3. 统一训练与加载的gbm包版本
- 先在原训练会话中查看版本:
packageVersion("gbm") - 在新会话中安装对应版本(以版本
2.1.8为例):
install.packages("gbm", version="2.1.8", repos="http://cran.us.r-project.org")
安装完成后再加载模型执行预测。
内容的提问来源于stack exchange,提问作者Jerome
相关产品推荐
相关产品推荐

