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。)
我正在尝试预测哥斯达黎加家庭贫困水平预测。 "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。)