【发布时间】:2019-05-29 22:18:45
【问题描述】:
在使用 5 折交叉验证训练我的 XGBoost 模型后,我想了解模型在新数据上的性能。据我了解,模型在每次交叉验证中的表现都在可接受的范围内。
使用 h2o.performance(best_XGBoost, xval = T) 我可以得到交叉验证的混淆矩阵。但是,阈值是基于F1选择的,我想看看使用absolute_mcc选择阈值的性能。
有办法吗?
【问题讨论】:
标签: r h2o confusion-matrix
在使用 5 折交叉验证训练我的 XGBoost 模型后,我想了解模型在新数据上的性能。据我了解,模型在每次交叉验证中的表现都在可接受的范围内。
使用 h2o.performance(best_XGBoost, xval = T) 我可以得到交叉验证的混淆矩阵。但是,阈值是基于F1选择的,我想看看使用absolute_mcc选择阈值的性能。
有办法吗?
【问题讨论】:
标签: r h2o confusion-matrix
h2o.confusionMatrix(object = yourXGBmodelHere,
newdata = yourTestSetHere,
metrics = "absolute_mcc")
fold_ass <- h2o.cross_validation_fold_assignment(model)
cvTrain <- h2o.cbind(data.train, fold_ass)
示例:模型 1 在第一次折叠时的表现:
h2o.confusionMatrix(object=h2o.cross_validation_models(model)[[1]],
newdata=cvTrain[fold_ass == 0, ],
metrics = "absolute_mcc")
NB - 它假设模型经过以下训练:
keep_cross_validation_fold_assignment = TRUE
和
keep_cross_validation_predictions = TRUE。这样你就可以使用:
h2o.cross_validation_fold_assignment(model)
h2o.cross_validation_predictions(model)
h2o.cross_validation_models(model)
【讨论】: