Receiver Operating Characteristic (ROC) Curve
了解如何使用接收者操作特征 (ROC) 曲线评估二元分类器。通过 Ultralytics YOLO26 探索 TPR 与 FPR 之间的权衡。
接收者操作特征 (ROC) 曲线是一种基础图形工具,用于评估二分类模型的性能。在 机器学习 (ML) 领域,它可视化了模型在所有可能的决策阈值下,灵敏度与特异性之间的权衡。与 准确率 等单一数值指标不同(当数据集不平衡时,单一指标可能会产生误导),ROC 曲线全面展示了分类器在识别正例的标准变得更严格或更宽松时的表现。对于利用 监督学习 技术来确定特定用例最佳工作点的工程师来说,这种可视化至关重要。
Link to this section理解坐标轴与权衡#
要理解 ROC 曲线,必须查看相互对比的两个参数:真正例率 (TPR) 和假正例率 (FPR)。
- 真正例率 (TPR): 通常被称为 召回率 或灵敏度。y 轴上的这一指标衡量了模型正确识别出的实际正例观察值的比例。高 TPR 意味着系统很少遗漏目标。
- 假正例率 (FPR): 绘制在 x 轴上,代表被错误分类为正例的负例比例,也称为“误报”。
该曲线展示了一种动态关系:当你降低 置信度 阈值以捕获更多正例(增加 TPR)时,你不可避免地增加了错误标记负例的风险(增加 FPR)。完美的分类器会达到图表的左上角,表示 100% 的灵敏度和 0% 的误报。进行随机猜测的模型会显示为一条从左下到右上的对角线。整体性能通常由 曲线下面积 (AUC) 来总结,其中 1.0 的值代表完美。
Link to this section实际应用#
在 ROC 曲线上设置阈值的位置完全取决于特定行业应用中错误的成本。
-
医疗诊断: 在 医疗保健 AI 中,特别是针对 医学图像分析 中的肿瘤检测等任务,遗漏正例(假阴性)的成本可能会危及生命。因此,从业者通常会选择使 TPR 最大化的阈值,即使这会导致较高的 FPR,这意味着更多的健康患者可能会被初步标记以进行进一步检查。
-
金融欺诈检测: 当 金融 AI 用于监控信用卡交易时,银行必须平衡安全性和用户体验。如果系统过于敏感(高 TPR),它可能会拦截合法的银行卡(高 FPR),从而让用户感到沮丧。分析师利用 ROC 曲线找到一个平衡的阈值,既能捕获大部分欺诈行为,又能将 假阳性 控制在可接受的最低限度内。
Link to this section生成 ROC 分析的概率#
要绘制 ROC 曲线,你需要原始预测概率,而不仅仅是最终的类别标签。以下示例使用先进的 YOLO26 模型来生成分类得分。
from ultralytics import YOLO
# Load a pretrained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Run inference to get probability distribution
results = model("bus.jpg")
# Access the probability score for the predicted class
# These continuous scores are required to calculate TPR/FPR at different thresholds
print(f"Top Class Index: {results[0].probs.top1}")
print(f"Confidence Score: {results[0].probs.top1conf:.4f}")一旦为验证集收集了这些概率,开发者就可以使用 Scikit-learn 等库来计算曲线点。为了管理数据集并长期跟踪这些指标,Ultralytics Platform 提供了用于模型评估和部署的集成工具。
Link to this sectionROC 与相关概念对比#
区分 ROC 曲线与其他评估工具非常重要:






