Я использую 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 не применяет отрицательные смещения.Это правильно?Какова будет причина для этого?Означает ли это также, что отрицательные смещения не используются при создании модели?Как бы я обойти эту проблему?В будущем мне нужно будет построить более глубокие модели обучения с различными распределениями и отрицательными смещениями.
Спасибо за любые советы, спасибо.