1

我正在尝试在 R 中使用 H2O 的逻辑回归来集成随机森林。但是,以下代码中出现错误消息:

> localH2O = h2o.init()
    Successfully connected to http://137.0.0.1:43329/ 

    R is connected to the H2O cluster: 
        H2O cluster uptime:         3 hours 11 minutes 
        H2O cluster version:        3.2.0.3 
        H2O cluster name:           H2O_started_from_R_toshiba_jvd559 
        H2O cluster total nodes:    1 
        H2O cluster total memory:   0.97 GB 
        H2O cluster total cores:    4 
        H2O cluster allowed cores:  2 
        H2O cluster healthy:        TRUE 

    > 
    > # defining the training data and set data for H2O

    > 
    > training_frame <- as.h2o(localH2O, muestra.fullarbol)
      |=========================================================================================| 100%
    > validation_frame <- as.h2o(localH2O, test.fullarbol)
      |=========================================================================================| 100%
    > 
    > yn <- "ex"
    > xn <- names(datafullarbol[,-c(1,2,3,9,10,11,12,17,19,20,21,22,23,24,29,31,32,33,34,35,36,47)])
    > 
    > 
    > 
    > 
    > learner <- c("h2o.glm.wrapper", "h2o.randomForest.wrapper")
    > metalearner <- "SL.glm"
    > family <- "binomial"
    > 
    > fit <- h2o.ensemble(x=xn, y=yn,training_frame = training_frame, family = family, 
    + learner = learner, metalearner = metalearner,cvControl = list(V = 5))
      |=========================================================================================| 100%
    [1] "Cross-validating and training base learner 1: h2o.glm.wrapper"
      |=========================================================================================| 100%
    [1] "Cross-validating and training base learner 2: h2o.randomForest.wrapper"
      |=========================================================================================| 100%
    Error in h2o.cbind(predlist) : 
      `h2o.cbind` accepts only of H2OFrame objects

显然我的参数是正确给出的,但如你所见,消息:h2o.cbind accepts only of H2OFrame objects appears。错误的原因可能是什么?

4

1 回答 1

1

看起来您可能正在使用旧版本的 h2o 或 h2oEnsemble 包。H2O 数据框的对象类曾经被调用H2OFrame,现在它只是被调用Frame,并且h2o.cbind正在寻找一个类型为 的对象H2OFrame

您可以通过将 h2o 和 h2oEnsemble 软件包更新到最新版本来解决此问题,如下所示:

# The following two commands remove any previously installed H2O packages for R.
if ("package:h2o" %in% search()) { detach("package:h2o", unload=TRUE) }
if ("h2o" %in% rownames(installed.packages())) {remove.packages("h2o") }

# Now we download, install and initialize the latest stable release of the *h2o* package for R.
install.packages("h2o", type="source", repos=(c("http://h2o-release.s3.amazonaws.com/h2o/rel-slater/5/R")))
library(h2o)

然后按如下方式更新您的 h2oEnsemble:

library(devtools)
install_github("h2oai/h2o-3/h2o-r/ensemble/h2oEnsemble-package")

您始终可以在http://h2o.ai/download/找到 H2O 的最新稳定(或前沿)版本。

于 2015-10-15T21:01:48.230 回答