学习如何使用接收者操作特征(ROC)曲线评估二元分类器。Ultralytics 探索真实阳性率(TPR)与假阳性率(FPR)之间的权衡关系。
接收者操作特征(ROC)曲线是评估二元分类模型性能的基础图形工具。在机器学习领域,它通过可视化方式呈现模型在所有可能决策阈值下灵敏度与特异性之间的权衡关系。与准确率这类单值指标不同——当数据集失衡时这类指标可能产生误导——ROC曲线能全面展现分类器在识别正样本标准逐渐严格或宽松时的行为模式。这种可视化对运用监督学习技术的工程师至关重要,可据此确定特定应用场景下的最优工作点。
要理解ROC曲线,必须关注其绘制的两个参数:真阳性率(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 提供了集成的模型评估与部署工具。
区分ROC曲线与其他评估工具至关重要: