R 再次加载h2o随机森林模型对象后无法对测试数据评分

R 再次加载h2o随机森林模型对象后无法对测试数据评分,r,random-forest,h2o,R,Random Forest,H2o,我正在使用R中的h2o包来构建随机森林模型。我的任务要求我在以后重复对测试数据打分,因此我将随机林模型对象保存如下 save("D:/model_random_forest.RData") 为了对数据进行评分,我稍后在内存中再次加载模型对象,如下所示 load("D:/model_random_forest.RData") 但是当我使用 scores <- h2o.predict(model_random_forest, test_data) 当我使用R包来构建模型时,整个保存、

我正在使用
R
中的
h2o
包来构建随机森林模型。我的任务要求我在以后重复对测试数据打分,因此我将随机林模型对象保存如下

save("D:/model_random_forest.RData")
为了对数据进行评分,我稍后在内存中再次加载模型对象,如下所示

 load("D:/model_random_forest.RData")
但是当我使用

scores <- h2o.predict(model_random_forest, test_data) 
当我使用R包来构建模型时,整个保存、加载和评分方法都很好,但在这里却以某种方式失败了。有人能提供一个解决方案吗?我不能每次都重新构建模型,因为我想获得一些数据


H2o连接似乎很好,因为当新构建的模型仍然存在于内存中时,评分会顺利进行

H2O模型对象与R对象不同。H2O模型对象存储在H2O集群中,在R中,您只能看到对它的引用,它看起来像正常的R模型。因此,如果您保存R会话并稍后重新启动它,那么您可能会在不同的H2O集群上运行,该集群没有R会话引用的模型

解决方案是通过
H2O.saveModel
/
H2O.saveModel
方法保存/加载H2O模型

例如:

model <- h2o.randomForest(...)
model_path <- h2o.saveModel(
        object = model, 
        path = "/tmp/mymodel", 
        force = TRUE)

print(model_path)
模型
model <- h2o.randomForest(...)
model_path <- h2o.saveModel(
        object = model, 
        path = "/tmp/mymodel", 
        force = TRUE)

print(model_path)