You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R语言caret包获取测试集ROC曲线及ROC面积(AUC)的方法

caret模型测试集ROC与AUC获取方法

1. 加载依赖包

需要使用pROC包完成ROC相关计算,先完成加载:

# 未安装先执行安装
# install.packages("pROC")
library(pROC)

2. 生成测试集预测概率

计算ROC需要正类的预测概率,不要直接输出分类结果:

# 输出测试集各类别的预测概率
test_pred_prob <- predict(model_knn, newdata = test, type = "prob")
# 提取测试集真实标签
test_true_label <- test$target

3. 计算AUC并绘制ROC曲线

# 生成ROC对象,默认取概率矩阵第二列为正类概率,可根据你的类别名调整列索引/列名
# 若需明确指定正负类,可添加levels参数:levels = c("负类名称", "正类名称")
roc_test <- roc(response = test_true_label, predictor = test_pred_prob[, 2])

# 输出测试集AUC值
auc(roc_test)

# 绘制测试集ROC曲线
plot(roc_test, 
     main = "KNN模型测试集ROC曲线",
     col = "#2c7fb8",
     lwd = 2,
     print.auc = TRUE) # 可直接开启print.auc参数在图上显示AUC值

补充说明

  • 计算ROC时的正负类顺序需要和模型训练时twoClassSummary识别的顺序保持一致,否则会出现AUC值小于0.5的异常情况,可通过调整roc函数的levels参数修正
  • 如果需要对比多个模型的测试集表现,只需重复上述预测、计算ROC的步骤,在同一张画布上绘制多条ROC曲线即可

内容的提问来源于stack exchange,提问作者user16971617

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 03:15:10