【温故知新】深度学习中各个评价、性能指标

分类器性能度量

真实\预测YESNO合计
YESTP(真正例)FN(假负例)P(实际为YES)
NOFP(假正例)TN(真负例)N(实际为NO)
合计 P ′ \text{P}^{'} P(预测为YES) N ′ \text{N}^{'} N(预测为NO)P+N

Accuracy(准确度)

A c c u r a c y = T P + T N T P + F P + F N + T N Accuracy=\frac{TP + TN}{TP+FP+FN+TN} Accuracy=TP+FP+FN+TNTP+TN
准确率假设不同的分类是同等地位的,例如对猫狗洗好进行分类,问题中并没有对猫和狗有特定的侧重,因此在这里我们只强调于分类的正确度,即准确率。
缺点:
如果假设不成立,例如:真实90%都是YES,那么在预测时全部预测为YES,也可以得到90%的准确度。


Precision(精确率、查准率)

公式:
P r e c i s i o n = T P T P + F P Precision=\frac{TP}{TP+FP} Precision=TP+FPTP


Precision代表的含义就是预测为正例(TP+ FP) 中**真正例(TP)**的比值。即衡量预测有多准确。

缺点:
和Accuracy存在一样的缺点

Recall(召回率、查全率)

公式:
R e c a l l = T P T P + F N Recall=\frac{TP}{TP+FN} Recall=TP+FNTP


Recall代表的含义就是真实为YES(TP+FN) 中为**真正例(TP)**的比值。即衡量预测有多少真实正例被预测为正例(真正例需要被召回)。
缺点:
如果预测都为正例,那么得到Recall是100%的,没有考虑到假正例
或者从推荐、搜索系统角度来看,返回的结果增加(看成正例),那么Recall总是递增的。


Precision和Recall关系

一般来说呢,鱼与熊掌不可兼得。如果你的模型很贪婪,想要覆盖更多的sample,那么它就更有可能犯错。在这种情况下,你会有很高的recall,但是较低的precision。如果你的模型很保守,只对它很sure的sample作出预测,那么你的precision会很高,但是recall会相对低。
于是就有下面综合Precision和Recall的F1指标。


F1-score

公式:
F 1 = 2 ∗ P r e c i s i o n ∗ R e c a l l P r e c i s i o n + R e c a l l F1= 2 * \frac{Precision * Recall}{Precision + Recall} F1=2Precision+RecallPrecisionRecall
F1 综合了precision和recall的特点, 对它们做了一个调和。

PR曲线

在这里插入图片描述
仔细琢磨就会发现一些规律和一些问题。

根据逐个样本作为阈值划分点的方法,可以推敲出,recall值是递增的(但并非严格递增),随着划分点左移,正例被判别为正例的越来越多,不会减少。而精确率precision并非递减,二是有可能振荡的,虽然正例被判为正例的变多,但负例被判为正例的也变多了,因此precision会振荡,但整体趋势是下降。

另外P-R曲线肯定会经过(0,0)点,比如讲所有的样本全部判为负例,则TP=0,那么P=R=0,因此会经过(0,0)点,但随着阈值点左移,precision初始很接近1,recall很接近0,因此有可能从(0,0)上升的线和坐标重合,不易区分。如果最前面几个点都是负例,那么曲线会从(0,0)点开始逐渐上升。

曲线最终不会到(1,0)点。很多P-R曲线的终点看着都是(1,0)点,这可能是因为负例远远多于正例。

最后一个点表示所有的样本都被判为正例,因此FN=0,所以recall = TP/(TP + FN) = 1, 而FP = 所有的负例样本数,因此precision = TP/(TP+FP) = 正例的占所有样本的比例,故除非负例数很多,否则precision不会为0.

AP(Average Precision)

有比较多版本

1. 曲线面积
在这里插入图片描述
AP可以将它看成Precision/Recall曲线下方围成的曲面面积。


2.求和
AP是把准确率在recall值为Recall = {0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1}时(总共11个rank水平上),求平均值:

AP = ∑ recall∈{0,0.1,…,1} Precision(Recall)  * 1/11

这也就是上面求面积的离散形式,积分的定义,deltaRecall * Precision。
而deltaRecall = 1 / 11,这也就是为什么说求曲线面积是求平均值
这种方法英文叫做11-point interpolated average precision。


3.图像处理领域
在图像处理领域,Pascal VOC 2010之后出现一种新的计算方法。首先假设在N个样本中具有M个正样本,也就是对于Top-n的划分过程中,会得到M个Recall值,分别是1/M, 2/M, 3/M, …, M/M。当Top-n中的n不断增大的过程中,每一个Recall值会对应一个范围。如下图:
在这里插入图片描述
对于每一个Recall值,计算出不同的Precision的值,然后取最大值作为该Recall值对应的Precision值(其实就是第一个Precision值),然后将每一个Recall对应的Precision值计算平均值。得到该类别的Precision(AP)。

下方在曲线上计算,实际反映的就是上面描述的,峰值即对应最大Precision值
在这里插入图片描述
在每个”峰值点”往左画一条直线,和上一个”峰值点”的垂直线像交,这样和坐标轴框出来的面积就是AP值。

AP是针对单个类别的

mAP

公式:
m A P = ∑ A P N ( classes ) m A P=\frac{\sum A P}{N(\text {classes})} mAP=N(classes)AP
AP值是衡量一个类别的检测好坏情况的,mAP就是对多个类别的 检测好坏情况进行评估,简单来讲就是将所有类别的AP值进行平 均取值即可。比如现在有两个类别,类别A的AP值为0.5,类别B 的AP值为0.2,那么mAP=(0.5+0.2)/2=0.35

mAP是针对所有类别的

其他

推荐系统指标

参考

P-R曲线深入理解
目标检测之mAP
【深度学习理论】Mean Average Precision 计算
机器学习常见评价指标与优缺点
Mean Average Precision(MAP):平均精度均值

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值