如何快速将我的 H2O 预测转换为 data.frame
How to convert my H2O prediction to a data.frame in a fast way
我在一个大型数据集上使用 H2O,它有 800 万行和 10 列。我使用 h2o.randomForest 训练了我的 randomForest。该模型训练良好,预测也正确。现在我想将我的预测转换为 data.frame。我这样做了:
A2=h2o.predict(m1,Tr15_h2o)
pred2=as.data.frame(A2)
但它太慢了,需要很长时间。有没有更快的方法将 H2o 转换为 data.frame 或 data.table?
当导出到预测数据帧或将它们转换为其他类型需要很长时间时,我们已经看到大型预测数据集存在这个问题。我现在打开了下面的JIRA进行跟踪:
是的,使用 data.table::fread
可以打开一些新选项来加快速度。键入 h2o:::as.data.frame.H2OFrame
以查看包含选项或 H2O 发行说明的少量 R 源代码。还请尝试 dev 中最新的 fread
,它从昨天开始是并行的。
一旦用户报告成功,我们就可以默认打开默认设置。
这里有一些代码演示了如何在后端使用 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)
。
我在一个大型数据集上使用 H2O,它有 800 万行和 10 列。我使用 h2o.randomForest 训练了我的 randomForest。该模型训练良好,预测也正确。现在我想将我的预测转换为 data.frame。我这样做了:
A2=h2o.predict(m1,Tr15_h2o)
pred2=as.data.frame(A2)
但它太慢了,需要很长时间。有没有更快的方法将 H2o 转换为 data.frame 或 data.table?
当导出到预测数据帧或将它们转换为其他类型需要很长时间时,我们已经看到大型预测数据集存在这个问题。我现在打开了下面的JIRA进行跟踪:
是的,使用 data.table::fread
可以打开一些新选项来加快速度。键入 h2o:::as.data.frame.H2OFrame
以查看包含选项或 H2O 发行说明的少量 R 源代码。还请尝试 dev 中最新的 fread
,它从昨天开始是并行的。
一旦用户报告成功,我们就可以默认打开默认设置。
这里有一些代码演示了如何在后端使用 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)
。