我在Rstudio版本0.99.447中运行h2o包。我运行版本10.9.5 OSX。
我想按照本教程的步骤在R中设置本地群集:http://blenditbayes.blogspot.co.uk/2014/07/things-to-try-after-user-part-1-deep.html
第一步似乎不是问题。似乎是一个问题是将我的数据框转换为适当的h2o对象。
library(mlbench)
dat = BreastCancer[,-1] #reading in data set from mlbench package
library(h2o)
localH2O <- h2o.init(ip = "localhost", port = 54321, startH2O = TRUE) #sets up the cluster
dat_h2o <- as.h2o(localH2O, dat, key = 'dat') #this returns an error message
上述语句as.h2o导致以下错误消息
Error in as.h2o(localH2O, dat, key = "dat") :
unused argument (key = "dat")
如果我删除“key”参数,让数据驻留在机器生成的名称下的H2O键值存储中,则会出现以下错误消息。
Error in .h2o.doSafeREST(conn = conn, h2oRestApiVersion = h2oRestApiVersion,
Unexpected CURL error: Empty reply from server
This问题与我的问题相同,但解决方案会让我遇到同样的错误。
有没有人有过这个问题的经验?我不完全确定如何处理这个问题。
答案 0 :(得分:10)
自从H2O-Classic的最后一次稳定发布以及H2O-3.0的最新稳定版本以来,将框架从R导入H2O的语法已经发生了变化。我相信你使用的是H2O-3.0版本,这意味着函数中的一些参数已经改变了,模糊的关键&#34;参数已更改为&#34; destination_frame&#34;。
H2O-3.0的行为会有所不同,因为它会注意前5列是R数据帧中的有序因子;目前我们还没有办法保留分类列的订单。但是,要重现与http://blenditbayes.blogspot.co.uk/2014/07/things-to-try-after-user-part-1-deep.html上发布的结果相同的结果,您现在必须将该帧作为CSV写入磁盘并将其导入H2O。
library(mlbench)
dat = BreastCancer[,-1] #reading in data set from mlbench package
library(h2o)
localH2O <- h2o.init(ip = "localhost", port = 54321, startH2O = TRUE)
#dat_h2o <- as.h2o(dat, destination_frame = 'dat')
## Will return a "Provided column type c("ordered", "enum") is unknown." error
pathToData <- paste0(normalizePath("~/Downloads/"), "/dat.csv")
write.table(x = dat, file = pathToData, row.names = F, col.names = T)
dat_h2o <- h2o.importFile(path = pathToData, destination_frame = "dat")
对于没有有序因子列的R data.frames,您只需使用h2o_frame <- as.h2o(object = df)
class(df)
为data.frame
。
答案 1 :(得分:1)
试试这个。它对我有用。
## S3 method for class 'data.frame'
dat.hex <- as.h2o(dat, destination_frame = "dat.hex", ...)
答案 2 :(得分:0)
我也遇到了同样的问题。在我的情况下,Mac OSX mavericks上的问题JAVA_HOME env变量指向旧的Java版本6.我的解决方案是在h2o google groups stream here
答案 3 :(得分:0)
BreastCancer数据框有5个ord.factors和5个因子。正如Amy Wang所写,你必须将因子转换为数字。如果您不想将数据写入光盘然后再次读取数据,可以使用sapply()转换它们。
## Format data with no factor
data(BreastCancer, package = 'mlbench') # Load data from mlbench package
dat <- BreastCancer[, -1] # Remove the ID column
dat[, c(1:ncol(dat))] <- sapply(dat[, c(1:ncol(dat))], as.numeric) # Convert factors into numeric
## Start a local cluster with default parameters
library(h2o)
localH2O <- h2o.init(ip = "localhost", port = 54321, startH2O = TRUE)
## Convert Breast Cancer into H2O
dat.h2o <- as.h2o(dat, destination_frame = "midata")
答案 4 :(得分:0)
你应该尝试:
dat_h2o <- as.h2o(dat)
或者:
dat <- as.data.frame(dat)
dat_h2o <- as.h2o(dat)
希望这有帮助!