首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >xgboost -> java.lang.NullPointerException的R h2o.predict中出现错误

xgboost -> java.lang.NullPointerException的R h2o.predict中出现错误
EN

Stack Overflow用户
提问于 2017-06-30 22:30:09
回答 1查看 573关注 0票数 2

首先,感谢您在h2o中实现XGBoost!

不幸的是,我无法从从磁盘加载的h2o xgboost模型中进行预测(我相信您可以理解这是非常令人沮丧的)。

我使用的是h2o的最新稳定版本,即3.10.5.2 &我使用的是R客户端。

我在下面提供了一个例子,可以让你重现这个问题。

提前感谢

代码语言:javascript
复制
### Start h2o
    require(h2o)
    local_h2o = h2o.init()

### Source the base data set
    data(mtcars)
    h2o_mtcars = as.h2o(x = mtcars,destination_frame = 'h2o_mtcars')   

### Fit a model to be saved
    mdl_to_save = h2o.xgboost(model_id = 'mdl_to_save',y = 1,x = 2:11,training_frame = h2o_mtcars) ##This class doesnt work
    #mdl_to_save = h2o.glm(model_id = 'mdl_to_save',y = 1,x = 2:11,training_frame = h2o_mtcars) ##This class works

### Take some reference predictions
    ref_preds = h2o.predict(object = mdl_to_save,newdata = h2o_mtcars)

### Save the model to disk
    silent = h2o.saveModel(object = mdl_to_save,path = 'INSERT_PATH',force = TRUE)

### Delete the model to make sure there cant be any strange locking issues
    h2o.rm(ids = 'mdl_to_save')

### Load it back up 
    loaded_mdl = h2o.loadModel(path = 'INSERT_PATH/mdl_to_save')

### Score the model
### The h2o.predict statement below is what causes the error: java.lang.NullPointerException
    lod_preds = h2o.predict(object = loaded_mdl,newdata = h2o_mtcars)
    all.equal(ref_preds,lod_preds)
EN

回答 1

Stack Overflow用户

发布于 2018-01-08 01:09:24

在我写这篇文章的时候(2018年1月),这仍然是xgboost的一个bug。有关详细信息,请参阅this ticket

同时,您可以以pojomojo文件的形式下载模型

代码语言:javascript
复制
h2o.download_pojo(model, path = "/media/somewhere/tmp")

不幸的是,加载回模型并不那么容易,但是您可以使用以下函数通过json将新数据传递给已保存的pojo模型:

代码语言:javascript
复制
h2o.predict_json()

但是,新数据必须以json格式提供。

有关详细信息,请参阅this question

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44848861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档