【发布时间】:2020-11-05 09:18:28
【问题描述】:
我在使用 h2o.stackedensemble() 构建 ensemble 时发现了一些有趣的事情。
训练帧是R中的数据帧,我先将其导入到h2o中:
df.h2o = as.h2o(df, destination_frame='df.h2o)
然后我用 df.h2o 构建了一个 glm。
后来我不小心再次运行了导入命令 (df.h2o = as.h2o(df, destination_frame='df.h2o)) 并使用 df.h2o 构建了一个 boosting 模型。
虽然这两个模型是使用相同的种子、交叉验证折叠和实际上相同的训练框架构建的,但事实证明我无法使用 h2o.stackedensemble(); 混合它们;它返回一条错误消息“错误:java.lang.NullPointerException”。我做了一些故障排除,得出的结论是,因为我两次导入了相同的数据帧,所以 h2o 认为这两个基础模型是使用不同的训练帧构建的。
谁能告诉我 h2o.stackedensemble() 如何比较基础模型使用的训练帧?它实际上是检查训练帧的内容还是只是使用创建帧时内部生成的一些 id?当有很多基础模型时,它们必须在不同的会话中构建、保存和重新加载是很常见的,这使得上述情况不可避免。
谢谢。
【问题讨论】:
标签: java h2o ensemble-learning