一文读懂Accuracy,precision,recall

首先,需要区分四个概念:TP(True Positive,真阳性),TN(True Negative,真阴性),FP(False Positive,假阳性)以及FN(False Negetive,假阴性)。
举例:有10个人来检测糖尿病,其中1,3,5号有糖尿病,剩下的没有,即1,3,5号为正样本,2,4,6,7,8,9,10为负样本。
我们的糖尿病系统检测结果是,1,3,6号有糖尿病,剩下的没有。

  • TP:在这10个人中,1号和3号被检测为正样本,同时检测正确,因此TP就等于2;
  • TN:2,4,7,8,9,10号被检测为负样本,同时检测也是正确的,因此TN就是6
  • FP:6号病人,虽然被检测为正样本,但是检测结果是错的,因此FP是1
  • FN:5号病人, 虽然被检测为负样本,但是检测结果也是错的,FN就是1.

1. 准确率(Accuracy)

准确率计算了预测正确的样本数,占总样本数的比例:
Accuracy = n_correct / n_total = (TP + TN) / (TP + TN + FP + FN)

  • 局限性:
    当两类样本数量很不均衡时,accuracy就不能很好的反映模型的性能了。比如,总样本中,负样本占95%,那么即使模型将所有样本都预测成负样本,accuracy还是可以高达95%。但是显然,这个模型是不具备正确区分两类样本的能力的。

2. 精度(Precision)和召回(Recall)

考虑模型返回的前N个正样本,

  • 精度计算了这N个返回的正样本中,预测正确的比例:
    Precision = TP / N = TP / (TP + FP) .
  • 召回计算了这N个返回的正样本中预测正确的样本数,占真正总的正样本数的比例:
    Recall = TP / (TP + FN)
    通常,为了使精度变高,模型会趋于保守,只有非常肯定某个样本是正样本时,才将其作为正样本输出,但是这样会使得很多相对不肯定的正样本被错误判断为负样本,从而降低召回。因此,精度和召回不能只考虑单一的一方面,这也就有了P-R曲线:
  • P-R曲线 综合考虑了精度与召回,其横轴是召回,纵轴是精度。通过调节阈值,大于该阈值的为正样本,小于该阈值的为负样本,使得召回可以从0,0.1,0.2一直取到1,计算出每个召回对应的精度,就可以画出一条曲线,称为P-R曲线。下图的b和c就是两个P-R曲线,可以看到,随着recall不断增加,precision是在下降的。
  • F1值是另一个综合考虑精度和召回的指标,其计算公式为:
    F1 = 2PR/(P+R),也就是精度和召回的调和平均值。

3. ROC曲线

  • ROC曲线全称Receiver Operating Characteristic Curve(受试者工作特征曲线)。其横坐标为FPR(False Positive Rate,假阳性率),纵坐标为TPR(True Positive Rate,真阳性率)。计算方法为:
    FPR = FP / (FP + TN) = FP / Neg,
    TPR = TP / (TP + FN) = TP / Pos = Recall.
    绘制ROC曲线的方法与P-R曲线类似,通过调节阈值,绘制出不同的FPR及其对应的TPR。
  • AUC指的是ROC曲线下的面积大小,通过对ROC曲线进行积分,就可以计算得到AUC。AUC取之在0.5~1之间(如果小于0.5,把正负样本预测对调一下就行了),AUC越大,表明模型把真正的正样本排的越靠前,相应的性能就越好。

4. ROC曲线和P-R曲线比较

如下图,ac是ROC曲线,bd是P-R曲线,可以看到,ROC曲线的横纵坐标走势是相同的,而P-R曲线则是反着的。
不管是Precision,还是Recall,其实P-R曲线只考虑了正样本(预测对多少个正样本,以及找出来多少正样本),而ROC曲线即考虑了正样本(TPR,找出来多少正样本),也考虑到了负样本(找错了多少负样本)。当正负样本比例发生变化时,P-R曲线的形状会发生较大的变化,而ROC曲线则比较稳定。
因此,ROC曲线能够更加稳定的反映模型本身的好坏,适用于更多的场景。但是,当希望观测到特定数据集上的表现时,P-R曲线则可以更直观的反映其性能。

5. COCO中的mAP

这个问题困扰我好久了,今天终于搞得差不多了。检测(或者实例分割)中的mAP,也就是mean Average Precision,其实跟二分类的AP很像。不同之处在于,检测结果不仅要给出bounding box,还要给出类别;第二,bounding box跟ground truth的框不可能完全重合,需要定义怎样算预测对了,怎样算预测错了。

  • AP, AP@X
    我们用预测的框和gt的IoU(交并比)来衡量预测的正确性,设置一个阈值(比如0.5),如果IoU大于0.5,则认为这个框预测对了,作为正样本输出(True);否则,就是负样本(False)。
    假设某一类一共有5个ground truth object,我们预测出了10个框,将这些框按照置信度(检测网络一般每个框会输出一个置信度)排序,结果如下:

    第一个框,预测正确,此时precision就是1,recall是1/5=0.2.
    到第三个框,预测错误,此时precision是2/3=0.67,recall是2/5=0.4,
    。。。
    这样,我们可以得到一系列recall对应的precision,画出它的P-R曲线。这里又一个对precision进行修正的过程,也就是下图的绿色折线。将每个Recall r对应的precision,修正为recall大于等于r时,能达到的最大的precision。

从recall=0,到recall=1,将这11个precision加起来求平均,就是这一类的average precision。



所有类的AP平均,得到的就是IoU阈值为0.5的AP,即AP@50。有的地方也把这个值称为mAP,需要看具体语境。

  • mAP
    上面我们得到的是某一个IoU作为阈值的AP,也就是AP@X。以0.5作为起点,0.05步长,0.95终点,我们可以得到0.5, 0.55, 0.6, 。。。, 0.95一共10个值,将这10个值分别作为IoU阈值,就能得到AP@50, AP@55, 。。。,AP@95.
    mAP = (AP@50+AP@55+...+AP@95)/10
    这个结果,对应的就是下表里的AP。
    YOLOv3

    更详细的关于mAP的介绍,可以参考https://zhuanlan.zhihu.com/p/55575423,写得挺好的。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 225,677评论 6 524
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,772评论 3 408
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 173,108评论 0 370
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,378评论 1 303
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,394评论 6 403
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,807评论 1 315
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 42,127评论 3 432
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 41,136评论 0 281
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,693评论 1 328
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,703评论 3 349
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,810评论 1 357
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,400评论 5 352
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 43,130评论 3 341
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,532评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,707评论 1 278
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,412评论 3 383
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,892评论 2 368

推荐阅读更多精彩内容