r h2o.deeplearning: ошибка при использовании весов - «weights_column» должен иметь тип символа, но должен быть числовым - PullRequest
1 голос
/ 11 апреля 2019

Я пытался добавить веса точек данных в мои анализы с помощью h2o.deeplearning.

следующий код

library(h2o)
x <- rnorm(1000)
y <- x-x^2+rnorm(1000,sd=0.2)
w <- vector(length=1000)      #weights vector
w[] <- 1
dfx <- data.frame(x,y,w)
h2o.init()
dfx <- as.h2o(dfx)

H <- h2o.deeplearning(x = 1, y = 2,training_frame=dfx,weights_column = 3, hidden=c(5,4))

дает

Error in .h2o.checkAndUnifyModelParameters(algo = algo, allParams = ALL_PARAMS,  : 
"weights_column" must be of type character, but got numeric.

Подстановка weights_column '3' вместо 'w' дает тот же результат. Я попробовал as.character (w), но это определенно не понравилось.

Подстановка weights_column с помощью dfx [, 3] или dfx $ w дает:

Error in args$x_ignore[!(weights_column == args$x_ignore)] : 
  invalid subscript type 'environment'

Из-за этой ошибки я почесал голову, поскольку кажется, что она отличается от того, как это реализовано в любой другой модели. Google не нашел ссылок на эту ошибку, и документация не дает дальнейших объяснений.

1 Ответ

0 голосов
/ 11 апреля 2019

Хорошо, я решил это смущающе быстро после отправки этого вопроса.Тем не менее, это стоит сохранить для других с подобными проблемами.

weights_column должен быть указан name столбца в h2o.data.frame.Т.е. он должен быть заключен в кавычки.Это не может быть другой объект h2o или индекс столбца.Следующий код работает.

library(h2o)
x <- rnorm(1000)
y <- x-x^2+rnorm(1000,sd=0.2)
w <- vector(length=1000) #weights vector
w[] <- 1
dfx <- data.frame(x,y,w)
h2o.init()
dfx <- as.h2o(dfx)


H <- h2o.deeplearning(x = 1, y = 2,training_frame=dfx,weights_column = "w", hidden=c(5,4))
...