H2o问题:分类模型梯度提升和随机森林

H2o issue: classification model gradient boost and random Forrest

我正在尝试预测哥斯达黎加家庭贫困水平预测。 "Target" 列中有 4 个级别,我已经将其转换为因子。但是,我无法查找我的 AUC 或进行网格搜索。我一直遇到这个错误

Error in .h2o.doSafeREST(h2oRestApiVersion = h2oRestApiVersion, urlSuffix = page, :
ERROR MESSAGE:
Invalid argument for sort_by specified. Must be one of: [r2, mean_per_class_accuracy, max_per_class_error, err, total_rows, rmse, accuracy, err_count, logloss, mse, mean_per_class_error]

这不知何故我的模型被设置为回归模型,而不是分类模型 完整代码:

class(train3.na$Target)    
gradientboost=as.h2o(train3.na)
          split=h2o.splitFrame(gradientboost,c(.6,.2),seed=1234)
          train_gb1=h2o.assign(split[[1]],"valid.hex")
          valid_gb1=h2o.assign(split[[2]],"valid.hex")
          test_gb1=h2o.assign(split[[3]],"valid.hex")
          gbm_params <- list(learn_rate = c(0.01, 0.1),
                              max_depth = c(3, 5, 9),
                              sample_rate = c(0.8, 1.0),
                              col_sample_rate = c(0.2, 0.5, 1.0))

          gbm_grid1=h2o.grid("gbm",training_frame = train_gb1,validation_frame = valid_gb1,x=1:51,y=52,
                             grid_id ="gbm_grid1",hyper_parameters=gbm_params, ntrees=30,seed=2000000)

          gbm_gridperf1 <- h2o.getGrid(grid_id = "gbm_grid1",sort_by = "auc",
                                       decreasing = TRUE)

AUC 仅适用于二进制 classification,如果您对多 class classification 指标感兴趣,您可以尝试使用 logloss,例如。

这里是 docs 对 AUC 的描述(您也可以使用这个 link 来了解更多关于哪些指标可以用于 multi-class class化问题):

AUC(ROC 曲线下面积) 此模型指标用于评估二进制 class化模型区分真阳性和假阳性的能力。 AUC 为 1 表示完美的 classifier,而 AUC 为 .5 表示较差的 classifier,其性能并不比随机猜测好。 H2O 使用梯形规则来近似 ROC 曲线下的面积。 H2O 使用梯形规则来近似 ROC 曲线下的面积。 (提示:AUC 通常不是不平衡二元目标的最佳指标,因为大量真阴性可能导致 AUC 看起来膨胀。对于不平衡二元目标,我们推荐 AUCPR 或 MCC。)