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

时间:2018-12-06 15:26:41

标签: r gradient random-forest h2o

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

  

.h2o.doSafeREST(h2oRestApiVersion = h2oRestApiVersion,urlSuffix = page,:
  错误消息:
  指定的sort_by参数无效。必须为以下之一:[r2,mean_per_class_accuracy,max_per_class_error,err,total_rows,rmse,准确性,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)

1 个答案:

答案 0 :(得分:0)

AUC仅适用于二进制分类,例如,如果您对多类别分类指标感兴趣,则可以尝试使用对数丢失。

这是docs中对AUC的描述(您也可以使用此链接来了解有关可以用于多类分类问题的度量标准的更多信息):

AUC(ROC曲线下的面积) 此模型度量标准用于评估二进制分类模型能够区分真阳性和假阳性的程度。 AUC为1表示完美的分类器,而AUC为0.5则表示较差的分类器,其性能并不比随机猜测好。 H2O使用梯形法则来近似ROC曲线下的面积。 H2O使用梯形法则来近似ROC曲线下的面积。 (提示:对于不平衡的二进制目标,AUC通常不是最佳的度量标准,因为大量的True Negatives会导致AUC看上去膨胀。对于不平衡的二进制目标,我们建议使用AUCPR或MCC。)