library(pROC)
# label: 金标准,0 1 变量
# pred: 模型预测值,连续变量
# 方法一
cal_metrics <- function(label, pred){
roc.p=pROC::roc(label, pred)
if (roc.p$auc>0.5){
cutoff=roc.p$thresholds[which.max(roc.p$sensitivities+roc.p$specificities)]
sensitivity=roc.p$sensitivities[which.max(roc.p$sensitivities+roc.p$specificities)]
specificity=roc.p$specificities[which.max(roc.p$sensitivities+roc.p$specificities)]
df=data.frame(type='positive classification',
auc=round(roc.p$auc,3),cutoff=cutoff,
sensitivity=sensitivity,specificity=specificity)
return(df)
}
else{
cutoff=roc.p$thresholds[which.min(roc.p$sensitivities+roc.p$specificities)]
sensitivity=roc.p$sensitivities[which.min(roc.p$sensitivities+roc.p$specificities)]
specificity=roc.p$specificities[which.min(roc.p$sensitivities+roc.p$specificities)]
df=data.frame(type='negative classification',
auc=1-round(roc.p$auc,3),cu
【R语言】预测模型最合适阈值Cutoff选取及其它指标计算
于 2020-10-31 10:13:34 首次发布
本文介绍了如何使用pROC包在R中评估模型预测的性能,通过计算AUC并确定最佳阈值,分别针对正负样本进行正向和负向分类。通过两个方法展示了如何找到最大化敏感性和特异性组合的cutoff,并提供了关键指标如AUC、敏感性和特异性的计算和报告。

最低0.47元/天 解锁文章
1557





