分类评价指标、目标检测评价指标(AUC,IOU,mAP等)

定位准确率

IOU

定位准确率可以通过检测窗口与我们自己标记的物体窗口的重叠度,即交并比,即Intersection-Over-Union(IOU)进行度量。设标记窗口为 A ,检测窗口为 B ,则 IOU 的计算公式如下:
I O U = A ⋂ B A ⋃ B IOU=\frac{A\bigcap B}{A\bigcup B} IOU=ABAB
其中分子部分表示 A 与 B 窗口的重叠部分面积,分母部分表示 A 与 B
窗口的面积总和。显而易见,IOU 的值在[0,1]之间,同时 IOU 越接近 1
表示两个窗口重叠部分越多,定位准确度也就越好,反之则越差。

识别精度

算法对样本进行分类时,都会有置信度,即表示该样本是正样本的概率,比如99%的概率认为样本A是正例,1%的概率认为样本B是正例。通过选择合适的阈值,比如50%,对样本进行划分,概率大于50%的就认为是正例,小于50%的就是负例。

假设分类目标只有两类,计为正例(positive)和负例(negtive)分别是:
1)True positives(TP): 被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数(样本数);
2)False positives(FP): 被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数;
3)False negatives(FN):被错误地划分为负例的个数,即实际为正例但被分类器划分为负例的实例数;
4)True negatives(TN): 被正确地划分为负例的个数,即实际为负例且被分类器划分为负例的实例数。

预测类别
YES(Positive)NO(Negative)总计
实际类别YES(Ture)TPFNP(实际为YES)
NO(False)FPTNN(实际为NO)
总计P’(被分为YES)N’被分为NOP+N

precision

precision,即精确率、精度查准率,计算公式为:预测为正实际为正 / 预测为正,希望所有的预测中都是正样本,该值越大越好,1为理想状态:
precision=TP/(TP+FP);

recall

recall,即召回率查全率。计算公式为:预测为正实际为正 / 所有正样本数,希望拿到全的正样本,该值越大越好,1为理想状态:
Recall=TP/(TP+FN)=TP/P;

accuracy

accuracy,即准确率,所有预测结果与实际结果一样的样本/所有样本:
accuracy=(TP+TN)/(TP+TN+FP+FN)

F1-score(F值)

F值 = 正确率 * 召回率 * 2 / (正确率 + 召回率)
为了解决准确率和召回率冲突问题,引入了F1分数,将precision 和recall合成一个指标,越大越好。

AP

AP, 即 Average Precision即平均精确度。AP通常用于计算平均的检测精度,用于衡量检测器在每个类别上的性能好坏。

mAP

mAP,即Mean Average Precision,即平均AP值,是对多个验证集个体求平均AP值,作为 object dection中衡量检测精度的指标。

P-R曲线、AP值

P-R曲线,即以precision和recall作为纵、横轴坐标的二维曲线。越凸越右上方效果越好。通过选取不同阈值时对应的精度和召回率画出总体趋势,精度越高,召回越低,当召回达到1时,对应概率分数最低的正样本,这个时候正样本数量除以所有大于等于该阈值的样本数量就是最低的精度值。P-R曲线围起来的面积就是AP值,面积越大,识别精度也就越高,AP值越高,反之越低。

为什么pr曲线没有类似auc的正负样本鲁棒性。
PR曲线画的过程也是从高到低排列预估分,移动阈值指针,只不过PR曲线计算的不是(FPR,TPR)对,计算的是(Recall,Precision)对,Precision和Recall的计算如下。PR的横坐标,就是AUC的纵坐标,根据auc的分析,正样本随机减少一半,PR横坐标不变。TP会减少一半,FP却保持不变,因此总体precision会变小。同理,正样本随机增加,也会影响PR,所以PR不具有正负样本数分布不均匀的鲁棒性。
在这里插入图片描述

在这里插入图片描述
根据逐个样本作为阈值划分点的方法,可以推敲出,recall值是递增的(但并非严格递增),随着阈值越来越小,正例被判别为正例的越来越多,不会减少。而精确率precision并非递减,有可能是振荡的,虽然正例被判为正例的变多,但负例被判为正例的也变多了,因此precision会振荡,但整体趋势是下降。一般来说,precision和recall是鱼与熊掌的关系,往往召回率越高,准确率越低。
在不考虑预测样本量为0的情况下:
如果最前面几个点都是负例,那么曲线会从(0,0)点开始逐渐上升,随着阈值越来越小,precision初始很接近1,recall很接近0,因此有可能从(0,0)上升的线和坐标重合,不易区分。
如果最前面几个点都是正例,那么曲线会从(0,1)逐渐下降。
曲线最终不会到(1,0)点。很多P-R曲线的终点看着都是(1,0)点,这可能是因为负例远远多于正例。

在目标检测中,每一类都可以根据 recall 和 precision绘制P-R曲线,AP就是该曲线下的面积,mAP就是所有类AP的平均值。

FP Rate(FPR)

false positive占整个negative的比例,就是说原本是negative 预测为positive的比例,越小越好。

TP Rate(TPR):

true positive 占整个positive 的比例。

AUC

为何AUC为何会对正负样本数分布不均匀情况鲁棒
AUC是ROC曲线与横坐标围成的面积;随机的选一个正样本和一个负样本,模型打分正样本高于负样本的概率。
AUC对采样不敏感,在样本分布不变的情况下,正样本占比10%和占比50%计算的AUC结果差异不大,怎么解释呢?随机拿一个正样本,模型预估为score1,因为是随机采样,小于score1的负样本和大于score1的负样本比例不会变化,反之也是。
在这里插入图片描述
随便造一组数据,包括N正样本,N负样本,1表示实际的正样本,0表示实际的负样本。假设我们按照模型预测的分数从左到右排序如下(N=12):

Sequence A:1,1,1,1,0,1,1,1,0,1,1,0,1,0,0,1,0,0,0,1,0,0,0,0
预估分从左到右递减
Sequence B:1,1 ,1,1 ,0,1,1 ,1,0,1 ,1,0,1,0,0,1,0,0,0,1 ,0,0,0,0

在ROC上画点求曲线围的面积时,会计算2N个(FPR,TPR)对。如果正例数随机减少了一半,变为N/2,样本总数就是3N/2​,分开看一下FPR和TPR是如何变化的。

FPR:分母不会变,还是N,分子FP表示把负样本预估成正例的个数,对于阈值指向的任何一个样本,预估分大于等于该样本对应预估分的负样本,原来有多少,现在还是有多少,可以看一下Sequence A和Sequence B中标红的样本点,其FP均是5。所以,正样本数随机减少了一半后,依据剩余点计算的FPR是没有任何变化的,也就是说ROC曲线上点的横坐标没有任何变化。

TPR:TPR的分母变为N/2,那么整个TPR就会变为原来的两倍?当然不是,因为分子TP也会变为原来的1/2,TP表示把正样本预估成正例的个数,由于我们是随机删掉一半正样本,所以阈值指向的任何一个样本点对应的预估分,大于等于该预估分的正样本数也会随机删掉一半,可以看一下Sequence A和Sequence B中标红的样本点,其TP之前是11,现在是5,近似缩小一半。所以,正样本数随机减少了一半后,依据剩余点计算的TPR是没有变化的,也就是说ROC曲线上点的纵坐标没有变化。
总结一下,2N个样本,正样本数随机减少了一半后,样本总数变为3N/2,这3N/2个样本计算得到的(FPR,TPR)和以前一样,所以ROC曲线还是没有变,只不过用来画ROC曲线的点减少了N/2。同理,把正样本数增多,得到的结果也是一样的。因此正负样本数不均匀和正负样本数均匀得到的ROC曲线很相似,这就是AUC为何会对正负样本数不均匀情况鲁棒的原因。
那么,如何破坏AUC,让他失效呢,也很简单,至少有如下两个方法:
1、不随机采样。就上面举例来说,不随机地删掉正样本,就会对AUC产生影响。
2、样本数很少。这样很难画出预期的ROC曲线,AUC自然也不准。
什么情况下auc较大?
正负样本的gap越大,AUC越大,如果正负样本完全分开,且特征充分,那么理论上AUC能达到1.0。
点击和转化/购买两个行为,一般谁的AUC更高?在AUC相同的情况下,那个的线上表现更好?
正常情况下点击的AUC比转化/购买的AUC低,原因是点击的成本更低,或者说决策成本更低,决策路径更短,看懂了稍微有点兴趣就会点击,可能是因为标题中一个词很吸引人或者刚好听朋友说过相关。但是购买/转化正好相反,需要付出的成本更大,决策路径更长,所以更能反应用户的真实兴趣。就是GAP更大,所以AUC更高。

但是相同AUC,点击会比转化/购买表现更好,首先点击的数据量更充足,模型训练更充分。另外转化/购买受场外印象因素较多,比如别人的建议,自己的预算,网上评测等,这些都是没有办法表示在模型中的。所以决策链路长,就会导致中间信息丢失的多,线上AUC表现不好。
如果一个AUC高的模型上到线上反而表现不如老的AUC低的怎么办
首先第一个防止特征穿越,比如我们用请求时间序列类特征,或者用户的当日点击数之类,可以对比新老模型特征,一般问题出在特征上的可能性最大。
GAUC:Group AUC & UAUC
线上排序的时候,线上预估只考虑当前用户的召回list中的顺序问题,而训练的时候我们是整个训练样本的顺序,对于这种情况阿里论文中曾经设计过一个group AUC,意思是只考虑每个用户的排序AUC的均值,公式如下。
在这里插入图片描述
离线AUC上涨,WUAUC下跌;上线后,WUAUC涨了;实验ABTEST组里的平均播放时长下跌明显,什么原因?
在离线条件下使用过往日志训练,无论我们如何改动模型,我们是无法改变用户当时产出的样本数量的;而线上我们会直接影响用户的impression数量;设本来就播放很少的用户群体为A,设本来就播放很多的用户群体为B,当模型上线后,假设A群体uAUC没怎么变化但是出于某些原因看的更少了,那么A类用户在WUAUC计算中占比更低,假设B群体uAUC没怎么变化但是处于某些原因看的更多了,那么B用户在WUAUC中占比更高;结果就是在计算用户全体平均时长的时候下跌明显,但是模型在线评估WUAUC上涨。

基尼系数&基尼统计量
因为AUC的取值在0.5-1之间,我们更习惯于一个取值在0-1之间的指标,这时候就有了归一化后的AUC,就是基尼系数或基尼统计量(这里的基尼系数和决策树的不同):
G = 2 ∗ A U C − 1
求解AUC
第一种:
在这里插入图片描述
其中 M、N 分别为正、负样本数。上述公式中的求和是在 M + N 个总样本中,取出 M ∗ N 个正负样本对,然后计算 I ( P 正 , P 负 )
第二种:
在这里插入图片描述
其中 M、N分别为正、负样本数。
rank_{ins_i}是第 i 条样本ins的序号(概率得分从小到大排序,排在第rank 个位置)。
ins_i ∈ 正例表示只把正样本的序号加起来。
RANKAUC

参考:https://blog.csdn.net/Leon_winter/article/details/104673047
https://blog.csdn.net/weixin_41888257/article/details/112849390
https://blog.csdn.net/qq_42363032/article/details/120070512?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_title~default-1.pc_relevant_default&spm=1001.2101.3001.4242.2&utm_relevant_index=4

ROC曲线

ROC曲线的横轴FPR,和纵轴TPR分别定义为:
在这里插入图片描述
所以,FPR和TPR的分母分别是负样本个数和真样本个数,当样本空间确定时,FPR和TPR的分母都是定值。假设我们有M个样本,根据模型预估得到了M个预估分,根据预估分从高到低排序,在设定一个阈值指针,阈值指针从最高分的样本开始向最低分移动,每次移动后,以该阈值指针为分割点,大于等于该阈值指针指向样本预估分的样本,为预测正例,小于的为预测负例,并计算对应的(FPR,TPR)对,这样阈值指针移动完,就得到了M对(FPR,TPR),就可以画ROC曲线了。面积越大越好。
在这里插入图片描述
简单易于理解的例子
某池塘有1400条鲤鱼,300只虾,300只鳖。现在以捕鲤鱼为目的。撒一大网,逮着了700条鲤鱼,200只虾,100只鳖。那么,这些指标分别如下:
精确率 = 700 / (700 + 200 + 100) = 70%
召回率 = 700 / 1400 = 50%
F1值 = 70% * 50% * 2 / (70% + 50%) = 58.3%

不妨看看,如果把池子里的所有的鲤鱼、虾和鳖都一网打尽,这些指标又有何变化:
正确率 = 1400 / (1400 + 300 + 300) = 70%
召回率 = 1400 / 1400 = 100%
F1值 = 70% * 100% * 2 / (70% + 100%) = 82.35%
随着召回率增大,精度

混淆矩阵

在这里插入图片描述

速度

除了检测准确度,目标检测算法的另外一个重要性能指标是速度,只有速度快,才能实现实时检测,这对一些应用场景极其重要。评估速度的常用指标是每秒帧率(Frame Per Second,FPS),即每秒内可以处理的图片数量

题目

下面有关分类算法的准确率,召回率,F1 值的描述,错误的是? C
准确率是检索出相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率 A
召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率 B
正确率、召回率和 F 值取值都在0和1之间,数值越接近0,查准率或查全率就越高 C
为了解决准确率和召回率冲突问题,引入了F1分数 D

参考:
https://blog.csdn.net/b876144622/article/details/80009867
https://blog.csdn.net/linchunmian/article/details/79644300

  • 3
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测中的AP(Average Precision)是一种常用的评价指标,用于衡量目标检测算法在不同类别上的性能。AP的计算方式根据不同的数据集和评价方法可能会有所不同,这里我给出一种常见的计算方式。 首先,需要明确几个概念: - TP(True Positive):检测到的目标被正确地分类为正样本(目标存在)。 - FP(False Positive):检测到的目标被错误地分类为正样本(目标不存在)。 - Precision(精确率):TP与(TP + FP)的比值,表示正确分类为正样本的概率。 - Recall(召回率):TP与(TP + FN)的比值,表示正样本被正确检测出的概率。 - FN(False Negative):目标未被检测到,即目标存在但被错误地分类为负样本(目标不存在)。 AP的计算步骤如下: 1. 对于每个类别,首先按照预测结果的置信度进行排序。 2. 从置信度最高的预测开始,依次计算PrecisionRecall,并绘制Precision-Recall曲线。 3. 通过计算Precision-Recall曲线下的面积(AUC),得到AP值。 AP值越高,表示目标检测算法在对应类别上的性能越好。同时,AP值还可以通过计算多个类别的平均值得到mAP(mean Average Precision),用于综合评估目标检测算法的性能。 需要注意的是,不同数据集和评价方法可能会对AP的计算方式有所调整,因此具体的计算公式可能会有所差异。以上是一种常见的计算方式的解释。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值