在 R 中训练 XGBoost 模型后,我会看到一个名为的模型对象,xgb它是list of 7。
当我使用 保存模型xgb.save然后使用 重新加载xgb.load时,我会看到一个似乎“较小”的模型对象,它是一个list of 2.
显然我无法共享代码,因为您需要大量的训练数据,所以我真正能展示的只是变量编辑器的图片。
下面是模型对象xgb,它是训练后的原始模型,与模型对象test1是相同模型但保存并重新加载的模型对象:
为什么会发生这种情况?在保存/加载模型时我是否会丢失有价值的信息?
任何帮助表示赞赏。
小智 1
也许晚了,但我遇到了同样的问题并找到了解决方案。
将 xgb-model 保存为“rds”不会丢失任何信息,并且当我测试它时,重新加载的模型 xgb_ 确实会生成与原始 xgb 相同的预测值。希望有帮助!
saveRDS(xgb, "model.rds")
xgb_ <- readRDS("model.rds")
all.equal(xgb, xgb_)
Run Code Online (Sandbox Code Playgroud)