如何以快速的方式将我的H2O预测转换为data.frame

时间:2017-03-17 19:23:44

标签: performance dataframe h2o

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

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

但它太慢了,需要永远。有没有更快的方法从H2o转换为data.frame或data.table?

3 个答案:

答案 0 :(得分:4)

以下是一些代码,演示了如何在后端使用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)

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

是的,有一些新选项可以使用data.table::fread启用以加快速度。输入h2o:::as.data.frame.H2OFrame以查看包含选项或H2O发行说明的少量R源代码。还请尝试dev中的fread最新版TRANSFORM First(Responsable.ResponsableAbrege) AS PremierDeResponsableAbrege SELECT wCalendrier.Entite, Entite.DescriptionAbrege, Tache.Tache, Fonction.Abréviation, Module.Module, Fonction.NoFonction, Tache.NoTache, First(wCalendrier.PremierResponable) AS PremierDePremierResponable FROM RecupererResponsable, Fonction INNER JOIN ([Module] INNER JOIN (Équipe INNER JOIN (((wCalendrier INNER JOIN Tache ON wCalendrier.NoTache = Tache.NoTache) INNER JOIN Responsable ON wCalendrier.NoResponsable = Responsable.NoResponsable) INNER JOIN Entite ON wCalendrier.Entite = Entite.Entite) ON (Équipe.NoÉquipe = Responsable.Equipe) AND (Équipe.NoÉquipe = Responsable.Equipe)) ON Module.NoModule = Tache.Module) ON Fonction.NoFonction = Tache.Fonction GROUP BY wCalendrier.Entite, Entite.DescriptionAbrege, Tache.Tache, Fonction.Abréviation, Module.Module, Fonction.NoFonction, Tache.NoTache PIVOT "D" & [Sequence] In ("D1","D2","D3","D4","D5","D6","D7","D8","D9","D10","D11","D12","D13","D14","D15"); ,该版本现在与昨天相同。

用户报告成功后,我们可以默认启用默认设置。