我很难理解为什么当我使用h2o时,我模型上各种指标的输出会有所不同。
例如,如果我使用' h2o.grid'当我查看平均模型$ cross_validation_metrics_summary时,logloss度量不同。它与model $ cross_validation_metrics_summary相同。这种差异背后的原因是什么?我应该报告什么?
library(mlbench)
library(h2o)
data(Sonar)
h2o.init() Sonarhex <- as.h2o(Sonar) h2o.grid("gbm", grid_id = "gbm_grid_id0", x = c(1:50), y = 'Class',
training_frame = Sonarhex, hyper_params = list(ntrees = 50, learn_rate = c(.1, .2, .3)), nfolds = 5, seed=1234)
grid <- h2o.getGrid("gbm_grid_id0", sort_by = 'logloss')
first_model = h2o.getModel(grid@model_ids[[1]]) first_model@model$cross_validation_metrics_summary first_model@model$cross_validation_metrics
答案 0 :(得分:2)
此不一致是一个已记录并解释here的问题,将在以后的版本中解决。 model$cross_validation_metrics_summary
指标是正确的CV指标。 Grid表中显示的度量标准或使用像h2o.logloss(model, xval = TRUE)
这样的实用程序函数略有不同,因为它们汇总CV预测然后计算损失(而不是分别计算K折叠的损失然后取平均值) 。这可能导致轻微的数字差异。