了解如何使用接收者操作特征 (ROC) 曲线评估二元分类器。探索 Ultralytics YOLO26 中的 TPR 与 FPR 权衡。
接收者操作特征 (ROC) 曲线是用于评估二元分类模型性能的基本图形工具。在机器学习 (ML) 领域,它可视化了模型在所有可能的决策阈值下,灵敏度与特异性之间的权衡。与准确率等单一值指标不同,如果数据集不平衡,这些指标可能会产生误导,而 ROC 曲线则提供了分类器行为的全面视图,因为识别正例的标准变得或松或严。这种可视化对于利用监督学习技术的工程师来说至关重要,以便为其特定用例确定最佳操作点。
要理解ROC曲线,需要查看相互绘制的两个参数:真阳性率(TPR)和假阳性率(FPR)。
该曲线展示了一种动态关系:当您降低 置信度 阈值以捕获更多正例(增加 TPR)时,您必然会增加错误标记负例的风险(增加 FPR)。一个完美的分类器将达到图表的左上角,表示 100% 的灵敏度和 0% 的误报。一个进行随机猜测的模型将表现为从左下到右上的对角线。整体性能通常由 曲线下面积 (AUC) 总结,其中 1.0 的值代表完美。
在 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 曲线与其他评估工具至关重要:

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