【问题标题】:How does h2o.stackedensemble() compare the training frames used by the base models?h2o.stackedensemble() 如何比较基础模型使用的训练帧?
【发布时间】: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


    【解决方案1】:

    空指针异常是由一个bug引起的,现在master已经修复了。因此,如果您想立即修复,您可以从here 安装夜间构建,或者您可以等待下一个stable release(在接下来的一两周内)。如果这不能解决您的问题,请在此处回复。

    我们对过于严格的基础学习器的训练框架进行了一些额外检查,我们将进一步放宽这些限制(它们最初是为了防止用户意外混合不兼容堆叠的基础模型),但我们将进一步放宽限制。你可以在这个JIRA关注进度。

    【讨论】:

    • 非常感谢艾琳!很高兴看到 h2o 迄今取得的成就!
    猜你喜欢
    • 1970-01-01
    • 2014-02-06
    • 2020-09-15
    • 2022-08-20
    • 2017-08-19
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 2021-09-14
    相关资源
    最近更新 更多