我正在使用函数
gbm.step
: 创建一个提升回归树
M <- gbm.step(data = DF,
gbm.x = c("X1","X2","X3","X4","X5","X6"),
gbm.y = "PresAbs",
family ="bernoulli",
tree.complexity = 3, learning.rate = 0.01, bag.fraction = 0.6,
plot.main = FALSE, verbose = FALSE)
模型运行良好,一旦运行,我就可以对测试数据集进行预测,以使用以下方法验证我的输出:
TestDF$pred <- predict(M, TestDF, n.trees=M$gbm.call$best.trees, type="response")
但是,我也想保存我的模型,以便我可以返回它并做出更多预测。该模型相当大(R studio 说它是一个“大型 gbm”文件,有 41 个元素和 73MB),我使用
saveRDS
: 保存它
saveRDS(M, "Mymodel.rds")
rds 文件很大(237 MB)。我可以在新的 R studio 会话中很好地加载它(使用
readRDS()
),但是当我尝试进行预测时(使用与上面相同的 predict()
函数),我收到以下消息:
Error in UseMethod("predict") :
no applicable method for 'predict' applied to an object of class "gbm"
这对我来说很奇怪,因为我做的唯一不同的事情是加载模型而不是运行它。我希望能够避免每次使用它时都重新运行它,因为计算需要约 2 小时。您是否知道可能导致问题的原因/解决方案是什么?
非常感谢您的帮助!
我找到了解决问题的方法:我需要加载包“gbm”。不知怎的,我在使用函数
gbm.step
后不必加载它(这个函数可能会自己加载它)。希望这可以帮别人省去一些麻烦!