【问题标题】:`h2o.cbind` accepts only of H2OFrame objects - R`h2o.cbind` 只接受 H2OFrame 对象 - R
【发布时间】:2016-01-09 06:50:19
【问题描述】:

我正在尝试在 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。错误的原因可能是什么?

【问题讨论】:

    标签: r machine-learning h2o ensemble-learning


    【解决方案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 版本。

    【讨论】:

    • 欢迎来到 SO,Erin L :)
    • 请不要不要使用答案来询问提问者的回复,而是使用 cmets;
    • 谢谢,我会更新我的答案,这样它就不会要求回复了。此解决方案应该可以解决问题。
    猜你喜欢
    • 2012-11-19
    • 2011-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    相关资源
    最近更新 更多