H2O GLM模型:当运行相同的验证数据时,保存的MOJO的预测非常不同

时间:2017-11-20 10:43:50

标签: h2o

我在R中使用H2O(版本3.14)构建了一个GLM模型。请注意,训练数据包含整数,还有许多NA,我使用MeanImputation来处理它们。

glm <- h2o.glm(         
    training_frame = train.truth,        
    x=getColNames(train.truth),
    y="isFemale",                 
    family = "binomial",
    missing_values_handling = "MeanImputation",
    seed = 1000000) 

然后我使用验证数据集来查看perf,而Precision对我来说很好看:

h2o.performance(glm, newdata=valid.truth)%>% h2o.confusionMatrix()

Confusion Matrix (vertical: actual; across: predicted)  for max f1 @ threshold = 0.529384526696015:
           0     1    Error         Rate
0      41962   300 0.007099   =300/42262
1        863 13460 0.060253   =863/14323
Totals 42825 13760 0.020553  =1163/56585

然后我将模型保存为MOJO:

h2o.download_mojo(glm, path="models/mojo", get_genmodel_jar=TRUE)

我将验证DF导出到CSV文件:

dt.valid <- data.table(as.data.frame(valid.truth))
write.table(dt.valid, row.names = F, na="", file="models/test.csv")

我尝试使用保存的mojo通过在我的Linux shell上运行来执行相同的预测:

java -cp h2o-genmodel.jar hex.genmodel.tools.PredictCsv \
    --mojo GLM_model_R_1511161743608_15 \
    --decimal --mojo GLM_model_R_1511161743608_15.zip \
    --input ../test.csv --output output.csv

然而,结果很可怕。所有记录都被预测为0,这与我在R中运行模型时得到的记录非常不同。

我被困在这一天,但我无法弄清楚出了什么问题。任何人都可以对此有所了解吗?

0 个答案:

没有答案