2015-12-14 12 views
2

При попытке запустить пример на H2OEnsemble, найденном на http://learn.h2o.ai/content/tutorials/ensembles-stacking/index.html из Rstudio, появляется следующая ошибка:h2oensemble Ошибка в значении [[3L]] (cond): аргумент «training_frame» должен быть допустимым H2O H2OFrame или id

Error in value[3L] : argument "training_frame" must be a valid H2O H2OFrame or id

после определения ансамбля

fit <- h2o.ensemble(x = x, y = y, 
        training_frame = train, 
        family = family, 
        learner = learner, 
        metalearner = metalearner, 
        cvControl = list(V = 5, shuffle = TRUE)) 

Я установил последнюю версию как h2o и h2oEnsemble, но проблема остается. Я прочитал здесь `h2o.cbind` accepts only of H2OFrame objects - R, что соглашение об именах в h2o изменено с течением времени, но я предполагаю, что установка последней версии обоих этих проблем больше не будет проблемой.

Любые предложения?

library(readr) 
library(h2oEnsemble) # Requires version >=0.0.4 of h2oEnsemble 
library(cvAUC) # Used to calculate test set AUC (requires version >=1.0.1 of cvAUC) 
localH2O <- h2o.init(nthreads = -1) # Start an H2O cluster with nthreads = num cores on your machine 





# Import a sample binary outcome train/test set into R 
train <- h2o.importFile("http://www.stat.berkeley.edu/~ledell/data/higgs_10k.csv") 
test <- h2o.importFile("http://www.stat.berkeley.edu/~ledell/data/higgs_test_5k.csv") 
y <- "C1" 
x <- setdiff(names(train), y) 
family <- "binomial" 

#For binary classification, response should be a factor 
train[,y] <- as.factor(train[,y]) 
test[,y] <- as.factor(test[,y]) 


# Specify the base learner library & the metalearner 
learner <- c("h2o.glm.wrapper", "h2o.randomForest.wrapper", 
       "h2o.gbm.wrapper", "h2o.deeplearning.wrapper") 
metalearner <- "h2o.deeplearning.wrapper" 


# Train the ensemble using 5-fold CV to generate level-one data 
# More CV folds will take longer to train, but should increase performance 
fit <- h2o.ensemble(x = x, y = y, 
        training_frame = train, 
        family = family, 
        learner = learner, 
        metalearner = metalearner, 
        cvControl = list(V = 5, shuffle = TRUE)) 
+0

Интересно, что используются обертки, такие как h2o.randomForest.wrapper. все остальные операторы h2o также работают, но как только вы используете h2o.ensemle, код возвращает эту ошибку. Это как-то связано с проверкой рамки. Когда у меня будет немного позже, я создам проблему с jira. – phiver

+0

@phiver большое спасибо. Может ли это быть связано с этим? «Похоже, что вы можете использовать либо старую версию пакета h2o, либо h2oEnsemble. Класс объекта фрейма данных H2O назывался H2OFrame, а теперь он называется Frame, а h2o.cbind ищет объект типа, H2OFrame ". является одним из комментариев к проблеме cbind во второй ссылке – Lod

+0

, выпущенной в [Jira] (https://0xdata.atlassian.net/browse/PUBDEV-2481). Его уже подбирают. – phiver

ответ

3

Эта ошибка была недавно введена массовым поиском/заменой имени класса, созданного кодом h2o R. Это изменение было непреднамеренно применено и к папке кода ансамбля (где в настоящее время мы используем ручное управление вместо автоматических тестов, которое скоро будет автоматическим, чтобы предотвратить подобное). Я исправил ошибку.

Чтобы исправить, переустановить h2oEnsemble пакет из GitHub:

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

Благодарим за сообщение! Для более быстрого ответа, размещайте ошибки и вопросы здесь: https://groups.google.com/forum/#!forum/h2ostream