AP、mAP、F1 Score、PR曲线、ROC曲线

本文介绍了几种常用的机器学习模型性能评估指标,包括准确度、精确度、召回率、F1分数、平均精度(AP)、平均平均精度(mAP)及接收者操作特性曲线(ROC)。并详细解释了这些指标的意义、计算公式及其应用场景。

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

1. 基础概念

混淆矩阵:
在这里插入图片描述
通过研究该混淆矩阵,可以构造如下几个指标:
(1) Accuracy(准确度):

  • 意义:用于同时衡量分类器对于正负样本的分类正确性。
  • 不足:当测试样本不平衡时,该指标会失去意义。例如:100个样本中负样本占有98个,那么分类器只需将所有样本分为负类即可达到98%的准确度。
  • 公式:accuracy=TP+FNTP+FN+FP+TNaccuracy = \frac{TP + FN}{TP+FN+FP+TN}accuracy=TP+FN+FP+TNTP+FN

(2) Precesion(精确度):

  • 意义:衡量分类器对于正样本的查准率,表示分类器对于正负样本的区分能力。当区分能力强时,容易将部分(与负样本相似度高)正样本排除。
  • 公式:precesion=TPTP+FPprecesion = \frac{TP}{TP+FP}precesion=TP+FPTP

(3) Recall(召回率)、敏感性:

  • 意义:衡量分类器对于正样本的查全率,表示分类器对于正样本的敏感度或覆盖度。当敏感度高时,容易将部分(与正样本相似度高)负样本也判断为正样本。
  • 公式:recall=TPTP+FNrecall = \frac{TP}{TP+FN}recall=TP+FNTP

(4) TNR(真阴性率)、Specificity(特异性):

  • 意义:在医学上,TNR越高,那么误诊率越低,同时漏诊率会变高。
  • 公式:TNR=TNFP+TNTNR=\frac{TN}{FP+TN}TNR=FP+TNTN

(5) FPR(假阳性率)、误诊率:

  • 意义:衡量分类器对于负样本的敏感性。对负样本的敏感性越高,越容易将负样本划分为正样本(FP)。
  • 公式:FPR=FPFP+TN=1−TNRFPR=\frac{FP}{FP+TN}=1-TNRFPR=FP+TNFP=1TNR

2 mAP (Average Precision)

2.1 AP(Average Precision)

2.1.1 Precision与Recall之间的关系:

通常,对于一个二分类问题,分类器可以给出对于每个样本的分类置信度,通过使用对该置信度设定阈值的方式来完成对样本的分类操作。当阈值固定时,如果分类器的precision较高,说明分类器正负样本的区分能力较强,为了保证这种区分上的正确性,就会严格限制条件,牺牲掉一部分正样本,将较难区分的正样本划分为负样本(FN),从而导致recall值下降;同理,当racall值较高时,说明模型对正样本的敏感度较高,能够对正样本形成很好的覆盖,那么为了更多的抓取正样本,就会放宽条件,将一些较难区分的负样本划分为正样本(FP)。从而可以看出,precision和recall两个指标存在一定的trade off,而二者的平衡可以用来衡量一个分类器的性能,我们的目标应该时追求得到两个指标都很高的分类器,就是说分类器能够很好的区分正负样本的同时,还可以将正样本很好的聚集到高置信度范围里,形成高覆盖率

2.1.2 Average Precision:

Average Precision(AP),通过同时考察Precision和Recall两个指标来衡量一个分类器的性能。例如下图所示,假设红色和绿色分别对应样本的真实标签(共20个样本,10个红色、10个绿色),同时一个分类器需要将这些样本分为红、绿两个类别,图中样本点的分布代表了分类器计算出的绿色类别的置信度分布,越靠近圆心置信度越高:
在这里插入图片描述
当设定阈值为0.8时,位于蓝色虚线圈中的样本点为通过分类器计算出的认为是正样本集合,其中分类正确的为5个(绿色),错误2个(红色)。当阈值为0.8时,precision=57precision=\frac{5}{7}precision=75recall=510recall=\frac{5}{10}recall=105;当阈值为0.6时,precision=812precision=\frac{8}{12}precision=128recall=810recall=\frac{8}{10}recall=108。此时可以得到下表:

阈值precisionrecall
0.857\frac{5}{7}75510\frac{5}{10}105
0.6812\frac{8}{12}128810\frac{8}{10}108

按照如上方式,当将阈值从1~0间隔设置时,可以得到多组对应的precision和recall数据对,将这些数据按照横轴为recall、纵轴为precision绘制成图,得到的曲线就是分类器在该数据集上的PR曲线图,然后使用PR曲线下方的面积AUC(Area under Curve)来衡量分类模型的好坏。
通常,随着阈值的下降,recall值会不断增加,同时precision值会不断减小,因此还可以通过将recall值在0~1之间递增取值的方式,当固定一个recall值时(假设为r),找到当recall值大于r时对应的所有precision值中的最大值为r对应的precision,这样,如果recall的曲中有M个,那么就可以找到M个precision值,那么Average Precision就可以定义为:
AP=1M∑i=1MpreiAP = \frac{1}{M}\sum_{i=1}^Mpre_iAP=M1i=1Mprei

2.2 mAP (mean Average Precision)

通常对于测试的每一个类别,都可以得到一个Average Precision值,该值反映了模型对该类别的分类性能。将每个类别的AP值计算均值,就得到了mAP值,该值反映了模型对所有类别的平均分类性能。

3 F1 Score

同时考虑Precision和Recall两个指标,可以更加科学的评价一个分类器的性能。那么使用的方法就是通过F1 Score的方式实现的。因为在本质上,Precision和Recall都是对同一个分类器从不同角度构造出的两个频率类的指标(类似速度),所以在综合两个指标时选择调和平均最为合适,而F1 Score正式对Precision和Recall两个指标的调和平均值(类似平均速度)。
F1=2∗precsion∗recallprecision+recallF1=\frac{2*precsion*recall}{precision+recall}F1=precision+recall2precsionrecall

4 ROC (receiver operating characteristic curve)

将真阳性率(recall)作为纵轴,将假阳性率(1-特异性率)作为横轴绘制。通常,recall增加会使更多的负样本分类为正样本,从而导致假阳性率上升,所以ROC可以理解为分类器对正样本的覆盖敏感性和对负样本的敏感性的权衡。该指标的目的是获得对正样本更高敏感性的同时,降低对负样本的敏感性(本质还是提高区分能力)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值