H2o 的交叉验证指标

Cross Validation Metrics for H2o

我很难理解为什么当我使用 h2o 时我的模型上各种指标的输出不同。

例如,如果我使用 'h2o.grid',那么当我查看均值模型 $cross_validation_metrics_summary 时,logloss 度量是 不同的。它与模型$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

此不一致问题已记录并解释 here 并将在未来的版本中解决。 model$cross_validation_metrics_summary 指标是正确的 CV 指标。网格 table 中出现的指标或使用 h2o.logloss(model, xval = TRUE) 等效用函数的指标略有不同,因为它们汇总了 CV 预测,然后计算损失(而不是分别计算 K 折损失,然后取平均值)。这可能会导致轻微的数值差异。