h2oEnsemble库的作者LeDell博士建议查看h2o-3 GitHub回购中的v1.9,以解决我和其他人遇到的问题,这在这线程中有描述。
这导致了一个不同的错误--在我的例子中,只有未经修改的包装器才能与h2oEnsemble::h2o.ensemble()一起使用。
例如,像这样的学习者会起作用:
learner <- c("h2o.deeplearning.wrapper", "h2o.randomForest.wrapper", "h2o.glm.wrapper") 但任何像这样的习俗:
h2o.glm.2 <- function(..., alpha = 0.5) h2o.glm.wrapper(..., alpha = alpha)
learner <- c("h2o.glm.2")
ens2 <- h2o.ensemble(x = setdiff(colnames(train), "y"),
y = "y",
training_frame = trainHex,
metalearner = "h2o.deeplearning.wrapper",
learner = learner)抛出此错误:
h2o.ensemble(x =setdiff(colname(Train),"y"),y= "y",training_frame = trainHex )中的错误:朴素贝叶斯函数不支持回归,请将此函数从基础学习者中删除
LeDell博士建议通过她在GitHub上的兼容性表确认兼容性,并将进一步的问题转移到StackOverflow (因为他们正在关闭他们的论坛)。
不过,v1.9似乎不在该表中,而且我的H2O集群版本也比这里列出的版本更新。有人知道哪些H2O集群将与R包的v1.9一起工作吗?
> h2o.getVersion()"3.10.0.2“
更新:我尝试升级到3.12和3.13,但是遇到了同样的错误。尽管我确实注意到h2o::h2o.stackedEnsemble()在3.13中工作。
更新:
包作者在评论/更新的问题中建议了3.10.5.2版本。我试着对此进行更新,但不幸的是,问题仍然发生。以下是更新后的集群信息:
> h2o.init(nthreads = -1) 连接成功!R连接到H2O集群: H2O集群正常运行时间:2分28秒H2O集群版本: 3.10.5.2 H2O集群版本年龄: 15天H2O集群名称: hackr H2O群集总节点:1 H2O群集总内存: 16.98 GB H2O群集总核心:24个H2O允许的集群核心: 24 H2O集群健康:真正的H2O连接ip:本地主机H2O连接端口: 54321 H2O连接代理: NA H2O内部安全: FALSE R版本3.4.0修补(2017-05-19 r72713)
不适用于定制学习者:
h2o.glm.2 <- function(..., alpha = 0.5) h2o.glm.wrapper(..., alpha = alpha)
learner <- c("h2o.glm.2", "h2o.deeplearning.wrapper", "h2o.randomForest.wrapper", "h2o.glm.wrapper")
ens <- h2o.ensemble(x = setdiff(colnames(train), "y"),
y = "y",
training_frame = trainHex,
metalearner ="h2o.randomForest.wrapper",
learner = learner)
summary(ens)H2o.ensemble中的错误(x=setdiff(colname(Train),"y"),y= "y",training_frame = trainHex,:朴素贝叶斯函数不支持回归,请将此函数从基本学习者中删除。
但只适用于默认包装器学习者:
learner <- c("h2o.deeplearning.wrapper", "h2o.randomForest.wrapper", "h2o.glm.wrapper")
ens <- h2o.ensemble(x = setdiff(colnames(train), "y"),
y = "y",
training_frame = trainHex,
metalearner ="h2o.randomForest.wrapper",
learner = learner)
summary(ens)R包版本是h2o_3.10.5.2。
发布于 2017-06-29 16:18:07
h2oEnsemble v0.1.9包尚未正式发布,但它位于"h2oEnsemble_v0.1.9“分支这里上。在该分支的自述文件中,更新后的表显示它将与H2O >=3.10.1.*兼容。
看起来您正在做一个回归问题,并试图使用h2o.naiveBayes.wrapper()函数吗?错误消息告诉您不能在回归问题上使用朴素贝叶斯(朴素贝叶斯是一种分类算法,不支持回归)。
使用"h2oEnsemble_v0.1.9“分支版本的h2oEnsemble和最新的稳定版本H2O 3.10.5.2,我可以使用下面的代码复制您的错误,但是您需要做的就是从基本学习者中删除朴素的Bayes模型:
library(h2oEnsemble) # Install from h2oEnsemble_v0.1.9 branch
h2o.init()
# Import a sample binary outcome train/test set into R
train <- h2o.importFile("https://s3.amazonaws.com/erin-data/higgs/higgs_train_5k.csv")
test <- h2o.importFile("https://s3.amazonaws.com/erin-data/higgs/higgs_test_5k.csv")
y <- "response"
x <- setdiff(names(train), y)
family <- "gaussian"
# Specify the base learner library & the metalearner
learner <- c("h2o.glm.wrapper", "h2o.randomForest.wrapper",
"h2o.gbm.wrapper", "h2o.naiveBayes.wrapper")
metalearner <- "h2o.glm.wrapper"
# Train the ensemble
fit <- h2o.ensemble(x = x, y = y,
training_frame = train,
family = family,
learner = learner,
metalearner = metalearner)https://stackoverflow.com/questions/44829663
复制相似问题