YOLO Vision 2026:
返回 Ultralytics 术语表

Receiver Operating Characteristic (ROC) Curve

了解如何使用受试者工作特征(ROC)曲线评估二分类器。探索 Ultralytics YOLO26 中 TPR 与 FPR 的权衡。

受试者工作特征(ROC)曲线是用于评估二分类模型性能的基本图形工具。在机器学习(ML)领域,它可视化模型在所有可能的决策阈值下灵敏度与特异度之间的权衡。与准确率等单值指标不同,如果数据集存在类别不平衡,准确率可能会产生误导,而 ROC 曲线则全面展示了随着识别正样本的标准变得更加严格或宽松,分类器的表现如何变化。对于使用监督学习技术的工程师来说,这种可视化对于确定特定用例的最佳运行点至关重要。

坐标轴与权衡关系的解读#

要理解 ROC 曲线,需要查看相互对照绘制的两个参数:真阳性率(TPR)和假阳性率(FPR)。

  • **真阳性率(TPR):**该指标通常称为召回率或灵敏度,在 y 轴上表示模型正确识别的实际正样本占比。TPR 较高意味着系统很少漏检目标。
  • **假阳性率(FPR):**该指标绘制在 x 轴上,表示被错误归类为正样本的负样本比例,也称为“误报”。

该曲线展示了一种动态关系:当你降低置信度阈值以捕获更多正样本(提高 TPR)时,也必然会增加错误标记负样本的风险(提高 FPR)。完美的分类器会到达图形的左上角,表示 100% 的灵敏度和 0% 的误报率。进行随机猜测的模型会呈现一条从左下角到右上角的对角线。整体性能通常通过曲线下面积(AUC)进行概括,其中 1.0 表示完美性能。

实际应用#

ROC 曲线上的阈值设置在哪里,完全取决于特定行业应用中错误的代价。

  1. **医学诊断:**在医疗保健领域的 AI中,尤其是在医学图像分析中的肿瘤检测等任务中,漏掉正样本(假阴性)的代价可能危及生命。因此,实践者通常会选择使 TPR 最大化的阈值,即使这会导致 FPR 较高,也就是说,可能会有更多健康患者最初被标记为需要进一步检查。

  2. **金融欺诈检测:**当金融领域的 AI用于监控信用卡交易时,银行必须在安全性与客户体验之间取得平衡。如果系统过于敏感(TPR 较高),就可能拦截合法卡片(FPR 较高),令用户感到不便。分析师使用 ROC 曲线寻找一个平衡的阈值,在捕获大多数欺诈交易的同时,将假阳性控制在可接受的最低水平。

为 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提供了用于模型评估和部署的集成工具。

ROC 与相关概念的比较#

务必将 ROC 曲线与其他评估工具区分开来:

  • **与精确率-召回率(PR)曲线比较:**ROC 将 TPR 绘制为相对于 FPR 的曲线,而精确率-召回率曲线则将精确率绘制为相对于召回率的曲线。当数据集严重不平衡时(例如检测罕见异常),通常更推荐使用 PR 曲线,因为在这类情况下,ROC 曲线有时会呈现过于乐观的结果。
  • 与混淆矩阵比较:混淆矩阵提供的是在某个单一特定阈值下的性能快照。相比之下,ROC 曲线可视化所有可能阈值下的性能,因此在确定最终决策规则之前,它是用于预测建模分析的更广泛工具。

Explore solutions

让我们共同构建 AI 的未来!

开启你的机器学习未来之旅