ROC曲线和PR曲线,AP,mAP

本文详细介绍了ROC曲线和PR曲线在两类分类任务中的应用,包括TPR、FPR、Precision和Recall等概念。ROC曲线评估分类器性能,AUC作为衡量标准。PR曲线适用于稀有事件检测,更关注正样本的召回和精度。AP(Average Precision)考虑了结果排序,而mAP是多个类别AP的平均,常用于物体检测性能评估。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ROC曲线

对于两类分类任务,y的值可以为1或0,为1时称为正样本(positive),在医学上称为阳,为0时称为负样本(False),在医学上称为阴。
在这里插入图片描述
TP:y的值为1,y^为1,预测值和真值都为1,称为true positive
TN:y的值为0,y^为0,预测值和真值都为0,称为true negtive
FP:y的值为0,y^为1,预测值为1,,真值为0,称为false positive
FN:y的值为1,y^为0,预测值为0,真值都为1,称为false negtive
N+:总样本中正样本的数目
N-:总样本中负样本的数目
N+^:预测结果中有多少预测为正样本的数目
N-^:预测结果中有多少预测为负样本的数目
在这里插入图片描述
Precison=TP/N+^, 精度、准确率:预测结果为真的样本中真正为真的比例
TPR/Recall=TP/N+ 召回率:预测结果召回了多少真正的真样本
真阳率:有多少真正的正样本被预测为真。
FPR=FP/N_ 假阳率:预测结果中将多少假的样本预测成了真的
F1分数:Precision和Recall调和平均值
F1=2(Prescision*Recall)/(Precison+Recall)

Matthews相关系数用一个值综合混淆矩阵,度量真是值与预测值之间的相关性,定位为:
MCC=(TPTN-FPFN)/sqrt((TP+FP)(TP+FN)(TN+FP)(TN+FN))
分母中任意一对括号相加之和如果为0,那么整个MCC的值就为0
MCC的值在[-1, 1]之间
1:分类器是完美的
0:分类器是随机分类器
-1: 分类器是最差的,所有预测结果和实际相反
在这里插入图片描述

在这里插入图片描述

上面我们讨论给定阈值τ的TPR(真阳率)和FPR(假阳率)

  • 如果不是只考虑一个阈值t,而是在一些列阈值上运行检测器,并画出TPR和FPR为阈值t的隐式函数,得到ROC曲线。
    在这里插入图片描述

例:根据文章特征?(文章长度、作者的数目、作者之前投递给该杂志的文章数据、…),判断该文章是否会杂志被接收。

  • 测试样本数目:500,其中250篇被接收(红色),250被拒绝(蓝色)。
  • 现有一个分类器1,给定文章特征,输出该文章被接收的概率。下图为分类器1输出的被接收概率概率对应的正样本数目和负样本数目。
    在这里插入图片描述

假设取阈值为概率阈值0.5: 判断140篇文章被拒绝,360篇文章被接收。线右边共有235个红色样本,125个被接受,10个被拒绝, ??? = 235/250 = 0.94,??? =125/250 = 0.5 ,对应ROC曲线上的点?, ? ((0.5,0.94) 。

  • 假设取阈值为概率阈值0.8: 判断50篇文章被接收,450篇被拒绝。线的右边有50个红色样本,线的右边有0个蓝色样本均接收, ??? = mGkmG ,??? = 0,对应ROC曲线上的点?, ? = (0, 0.2)。

现有一个分类器2,给定文章特征,输出该文章被接收的概率。下图为分类器2输出的被接收概率对应的正样本数目和负样本数。
在这里插入图片描述

  • 假设取阈值为概率阈值0.6: 线的右边有200个红色样本,线的右边有0个蓝色样本, ??? =200/250 =0.8,??? = 0,对应ROC曲线上的点?, ? =(0, 0.8)。

特征

  • ROC曲线越偏左上角表示分类器性能越好。
  • AUC (Area Under Curve):ROC曲线下的面积,取值在[0.5,1.0],0.5表示随机猜测分类器,1表示完美分类器。
  • ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。

PR曲线

Precision and Recall (PR曲线):用于稀有事件检测,如目标检测、信息检索、推荐系统。

  • 负样本非常多(?_很大),因此??? = ??⁄?_很小,比较TPR和FPR没有太大意义(ROC曲线中只有左边很小一部分有意义)

只讨论正样本(N+,N+^)
Precision and Recall (PR曲线):阈值变化时的P和R。

  • Precison=TP/N+^, 精度、准确率:预测结果为真的样本中真正为真的比例
  • TPR/Recall=TP/N+ 召回率:预测结果召回了多少真正的真样本
    在这里插入图片描述
    特征
    PR曲线越往往右上角越好。

AP

  • Precision只考虑了返回结果中相关文档的数目,没有考虑文档之间的顺序。
  • 对一个搜索引擎或推荐系统而言,返回的结果是有序的,且越相关的文档越靠前越好,于是有了AP( Average Precision )的概念。
  • AP: 对不同召回率点上的精度进行平均:
    在这里插入图片描述

mAP

平均AP(Mean Average Percision, mAP):多个AP的平均
• 物体检测中经常用mAP评价模型性能:多个物体类别的AP的平均

### YOLOv8 模型评估中的曲线图汇总 在目标检测任务中,YOLOv8 使用多种评估指标来衡量模型性能。这些评估指标通常通过绘制不同类型的曲线来进行可视化分析。以下是几种常见的用于展示 YOLOv8 性能的曲线图表: #### 1. PR 曲线 (Precision-Recall Curve) PR 曲线展示了精确率(Precision) 召回率(Recall)之间的关系,在不同的置信度阈值下计算得出。这条曲线有助于理解模型在不同决策边界下的表现[^1]。 ```python import matplotlib.pyplot as plt def plot_pr_curve(precisions, recalls): plt.figure(figsize=(8, 6)) plt.plot(recalls, precisions, marker='.') plt.xlabel('Recall') plt.ylabel('Precision') plt.title('Precision vs Recall curve') plt.grid(True) plt.show() ``` #### 2. ROC 曲线 (Receiver Operating Characteristic Curve) ROC 曲线显示了真正类率(TPR) 对假正类率(FPR),同样是在变化分类器工作点的情况下获得的一系列点组成的轨迹。AUC(Area Under the Curve) 是该曲线下面积的一个量化评价标准。 ```python from sklearn.metrics import roc_curve, auc fpr, tpr, _ = roc_curve(y_true, y_scores) roc_auc = auc(fpr, tpr) plt.figure(figsize=(8, 6)) plt.plot(fpr, tpr, color='darkorange', lw=2, label=f'ROC curve (area = {roc_auc:.2f})') plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--') plt.xlim([0.0, 1.0]) plt.ylim([0.0, 1.05]) plt.xlabel('False Positive Rate') plt.ylabel('True Positive Rate') plt.title('Receiver operating characteristic example') plt.legend(loc="lower right") plt.show() ``` #### 3. mAP@IoU 曲线 (Mean Average Precision at different IoU thresholds) mAP 是指平均精度均值,而 IoU 表示交并比(IoU), 这种方式可以更全面地反映模型对于物体定位准确性的影响。当考虑多个类别时,则会取所有类别的 AP 的算术平均作为最终得分。 ```python def plot_map_iou_curve(iou_thresholds, map_values): plt.figure(figsize=(8, 6)) plt.plot(iou_thresholds, map_values, '-o') plt.xticks(iou_thresholds) plt.xlabel('IOU Threshold') plt.ylabel('mAP Score') plt.title('mAP score across IOU threshold') plt.grid(True) plt.show() ``` 以上三种图形提供了从不同角度审视 YOLOv8 模型性能的方法,帮助研究者更好地理解优化算法效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值