【问题标题】:How to convert my H2O prediction to a data.frame in a fast way如何快速将我的 H2O 预测转换为 data.frame
【发布时间】:2017-08-09 11:43:34
【问题描述】:

我在一个大型数据集上使用 H2O,有 800 万行和 10 列。我使用 h2o.randomForest 训练了我的 randomForest。该模型训练得很好,预测也正常工作。现在我想将我的预测转换为 data.frame。我这样做了:

A2=h2o.predict(m1,Tr15_h2o)
pred2=as.data.frame(A2)

但它太慢了,需要很长时间。有没有更快的方法来进行从 H2o 到 data.frame 或 data.table 的转换?

【问题讨论】:

    标签: performance dataframe h2o


    【解决方案1】:

    这里有一些代码演示了如何在后端使用 data.table 包,以及我的 macbook 上的一些基准测试:

    library(h2o)
    h2o.init(nthreads = -1, max_mem_size = "16G")
    hf <- h2o.createFrame(rows = 10000000)
    
    options("h2o.use.data.table"=FALSE)  #no data.table
    system.time(df <- as.data.frame(hf))
    # user  system elapsed 
    # 224.387  13.274 272.252
    
    options("datatable.verbose"=TRUE)
    options("h2o.use.data.table"=TRUE)  # use data.table
    system.time(df2 <- as.data.frame(hf))
    # user  system elapsed 
    # 50.686   4.020  82.946
    

    如果您打开此选项,您可以在使用 data.table 时获得更详细的信息:options("datatable.verbose"=TRUE)

    【讨论】:

    • 如何在python中设置options("datatable.verbose"=TRUE)???
    【解决方案2】:

    当导出到预测数据框或将它们转换为其他类型需要很长时间时,我们已经看到大型预测数据集存在这个问题。我现在打开了以下 JIRA 来跟踪它:

    https://0xdata.atlassian.net/browse/PUBDEV-4166

    【讨论】:

    • 感谢您的快速响应。希望这个问题也能这么快解决。 :)
    【解决方案3】:

    是的,有一些新选项可以使用data.table::fread 来加快速度。键入 h2o:::as.data.frame.H2OFrame 以查看包含选项的少量 R 源代码,或 H2O 发行说明。也请尝试来自dev 的最新fread,它现在与昨天平行。

    一旦用户报告成功,我们可以默认打开默认设置。

    【讨论】:

      猜你喜欢
      • 2020-09-03
      • 2011-07-02
      • 2019-04-04
      • 2020-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      • 2011-09-23
      相关资源
      最近更新 更多