首页 > 解决方案 > 将目标帧分配给 h2o.ai 中的预测

问题描述

我喜欢使用 R 进行机器学习的 h2o.ai。https: //cran.r-project.org/web/packages/h2o/h2o.pdf

我喜欢随机森林,但我在循环中做出几千个预测。它正在用这样的东西向我的记忆中发送垃圾邮件:

h2o.ai 中的预测帧名称列表

我不能把它们都留在记忆中。我正在使我非常好的计算机非常努力地工作。这意味着它没有能力一次将所有球保持在空中。

如果我可以为预测分配一个目标帧名称,那么每个新的都会覆盖旧的。

在对象上执行“h2o.predict”时如何分配目标帧名称?

我尝试过但不起作用的事情:

h2o.predict(object = rf.hex, newdata = test.hex, predictions_frame = "predict.hex")
h2o.predict(object = rf.hex, newdata = test.hex, destination_frame = "predict.hex")
h2o.predict(object = rf.hex, newdata = test.hex, model_id = "predict.hex")

标签: variable-assignmenth2opredict

解决方案


我没有办法知道。

但作为替代方案,在您的循环中,您可以调用h2o.rm()from 的返回值h2o.predict()。也值得打电话h2o.gc()。就像是:

for(data in alldata){
  # ... prepare newdata
  p = h2o.predict(model, newdata)
  # ... do something with p here
  h2o.rm(p)
  h2o.rm(newdata)  # If also not needed any more
  h2o.gc()
}

旁白:你说“我在一个循环中做出几千个预测”。假设它们都针对同一个模型,请记住您可以将它们批量化,并在单个数据框中给出所有数千个预测newdata。一次调用h2o.predict()1000 个条目比进行 1000 个h2o.predict()调用要高效得多,一次只调用一个newdata条目。


推荐阅读