h2o.deeplearning без использования отрицательного смещения - PullRequest
0 голосов
/ 11 июня 2019

Я использую h2o.deeplearning для построения моделей Пуассона, поэтому я компенсирую вес экспозиции (мне также необходимо использовать другие значения смещения в будущем).Поскольку они представляют собой журнал чисел, меньших 1, все значения смещения являются отрицательными.

Я заметил, что при оценке отрицательные смещения не используются.

Я использую последнюю версию H2O на CRAN,3.22.1.1.

R версия 3.6.0.

Воспроизводимый пример:

# Setup
set.seed(1234)
install.packages("h2o")
install.packages("insuranceData")
library(h2o)
library(insuranceData)
h2o.init()
h2o.getVersion()  # "3.22.1.1

data(dataCar)
dataCar$log_exposure <- log(dataCar$exposure)
# log_exposure contains negative values
summary(dataCar$log_exposure)

# Build model
dataCar.h2o <- as.h2o(dataCar)
dl <- h2o.deeplearning(x = c("veh_value", "veh_body", "veh_age", "gender", "area", "agecat"),
                       y = "numclaims",
                       training_frame = dataCar.h2o,
                       nfolds = 5,
                       offset_column = "log_exposure",
                       distribution = "poisson",
                       reproducible = TRUE)

# Prediction Scenarios
dataCar_offsetadj <- dataCar[1,]

# Offset 0
dataCar_offsetadj$log_exposure <- 0
pred1 <- h2o.predict(dl, as.h2o(dataCar_offsetadj))
print(pred1)
# 0.1058487

# Offset 1.5
dataCar_offsetadj$log_exposure <- 1.5
pred2 <- h2o.predict(dl, as.h2o(dataCar_offsetadj))
print(pred2)
# 0.4743808  # Different value, as expected

# Offset -1.5
dataCar_offsetadj$log_exposure <- -1.5
pred3 <- h2o.predict(dl, as.h2o(dataCar_offsetadj))
print(pred3)
# 0.1058487  # Same value as offset 0

# Offset -2
dataCar_offsetadj$log_exposure <- -2
pred4 <- h2o.predict(dl, as.h2o(dataCar_offsetadj))
print(pred4)
# 0.1058487  # again, same value

all.equal(pred1, pred3)  # TRUE
all.equal(pred1, pred4)  # TRUE

Я ожидаю, что прогнозы с отрицательными смещениями будут разными.Как и ожидалось, положительное смещение имеет другую оценку.

Похоже, что h2o не применяет отрицательные смещения.Это правильно?Какова будет причина для этого?Означает ли это также, что отрицательные смещения не используются при создании модели?Как бы я обойти эту проблему?В будущем мне нужно будет построить более глубокие модели обучения с различными распределениями и отрицательными смещениями.

Спасибо за любые советы, спасибо.

...