我正在使用h2o
包R
来构建随机森林模型。我的任务需要我在以后重复对测试数据进行评分,因此我将随机森林模型对象保存如下。
save("D:/model_random_forest.RData")
为了对数据进行评分,稍后我将模型对象再次加载回内存中,如下所示
load("D:/model_random_forest.RData")
但是当我使用得分时
scores <- h2o.predict(model_random_forest, test_data)
我收到以下错误
ERROR: Unexpected HTTP Status code: 404 Not Found (url = http://127.0.0.1:54321/3/Predictions/models/DRF_model_R_1442519642868_26/frames/test17_normal.hex_2)
water.exceptions.H2OKeyNotFoundArgumentException
[1] "water.api.ModelMetricsHandler.predict(ModelMetricsHandler.java:203)"
[2] "sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)"
[3] "sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)"
[4] "sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)"
[5] "java.lang.reflect.Method.invoke(Unknown Source)"
[6] "water.api.Handler.handle(Handler.java:58)"
[7] "water.api.RequestServer.handle(RequestServer.java:637)"
[8] "water.api.RequestServer.serve(RequestServer.java:578)"
[9] "water.JettyHTTPD$H2oDefaultServlet.doGeneric(JettyHTTPD.java:617)"
[10] "water.JettyHTTPD$H2oDefaultServlet.doPost(JettyHTTPD.java:565)"
[11] "javax.servlet.http.HttpServlet.service(HttpServlet.java:755)"
[12] "javax.servlet.http.HttpServlet.service(HttpServlet.java:848)"
[13] "org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)"
Error in .h2o.doSafeREST(conn = conn, h2oRestApiVersion = h2oRestApiVersion, :
Object 'DRF_model_R_1442519642868_26' not found in function: predict for argument: model
当我使用 R 包构建模型时,整个保存、加载和评分方法工作正常,但在这里以某种方式失败。有人可以提供解决方案吗?每次我想对一些数据进行评分时,我都无法再次重建模型。
H2o 连接似乎很好,因为当模型是新建的并且仍然存在于内存中时,评分会顺利进行。