【机器学习理论】—mAP 查全率 查准率 IoU ROC PR曲线 F1值

概念汇总

以下表格中的指标和概念汇总,主要用于评价机器学习中模型的优劣,详细解释见下面的【概念解析】部分。

1.IoU/Intersection over Union 交并比
2.TP TN FP FN T=True;F=False;P=Positive;N=negative
3.Accuracy 准确率
4.Precision 精确率/查准率
5.Recall 召回率/查全率
6.F1-score F1值
7.Precision-Recall曲线 PR曲线
8.Receiver Operating Characteristic曲线 ROC曲线
9.AUC(Area Under ROC Curve) AUC值(ROC曲线下面积)
10.AP/Average Precision 平均精准率
11.mAP/Mean Average Precision 均值平均精准率

概念解析

1. IoU

IoU,中文译为交并比,是一种测量在特定数据集中检测相应物体准确度的一个标准,通常用于目标检测预测框(bounding box)之间准确度的一个度量(预测框和实际目标框)。交并比,其实直接看名字就能猜出其含义,表示两个框之间交集的面积/并集的部分。下图能更清晰地展示其含义:

iou_equation.png
iou_equation.png

IoU = 0时,表示预测框没有覆盖到目标,即完全没有预测成功;
IoU = 1时,表示预测框和实际框之间100%重合,表明完全预测成功且没有一点误差;
通常在实际工程项目中,设定IoU的阈值为0.5,即交并比 > 50%时,可以认为机器预测到了目标,通常,我们也可以通过设定不同的阈值,得到不同的模型,然后再通过不同的ROC曲线、F1值等参数来确定最优化模型。

2. TP TN FP FN

这里T和F分别是True和False的缩写;P和N分别是Positive和Negative的缩写
屏幕截图_1.png
屏幕截图_1.png

图片引自:The Relationship Between Precision-Recall and ROC Curves (ICML2006)

针对预测和样本,有以下一些属性:

T-Ture;F-False 表示预测结果的正确性,T表示预测正确,F表示预测错误;
P-positive;N-negative 表示预测的正负性,P表示预测为正样本,N表示预测为负样本;

TP——True Positive 真正例,表示样本为正,预测值为正——预测正确T
FP——False Positive 假正例,表示样本为负,预测值为正——预测错误F
FN——False Negative 假负例,表示样本为正,预测值为负——预测错误F
TN——True Negative 真负例,表示样本为负,预测值为负——预测正确T

positive negative在中文中可用1和0、阳性阴性、正例负例、正例反例表示,意思都一样

3. Accuracy

准确率
用于判定预测结果的准确程度,即预测正确的总数/样本总数。
预测正确又分为两种情况:样本为正、预测为正和样本为负、预测为负,即TP+TN。
Accuracy = \frac{TP+TN}{TP+FP+FN+TN}

4. Precision

精准率
精确率用于描述在所有预测为正的样本中,预测正确的比例,在有的翻译中,Precision也被称为查准率
查准率针对的是预测,顾名思义,查准率主要用来判断“查的准不准”,其依据是查出的正例占所有正例预测的比率。
Precision = \frac{TP}{TP+FP}

5. Recall

召回率
和精确率不同,Precison针对的是预测,Recall针对的是样本。召回率表示在所有正例的样本中,有多少被预测/检测了出来,所以在有的翻译中,Recall也被称为查全率
查全率针对的是样本,即对样本而言,有多少比例的正例样本在预测中被检出。

Recall = \frac{TP}{TP+FN}

最优目标是希望查准率和查全率都接近100%,但通常这二者的关系是负相关,具体可以参考下面的【应用拓展】小节。

6. F1-score

F1 score是围绕Recall和Precision衍生出来的一个参考值,公式 = Precision和Recall的调和平均值

F1 = \frac{2}{\frac{1}{recall}+\frac{1}{precision}} = \frac{2×recall×precision}{recall+precision}其数值大小通常接近二者中的较小数、当recall = precision时,F1 = recall = precision,如果F1值较高,说明recall和precision都较高,我们希望取到较高的F1值。

7. PR曲线

Precision-Recall curve,即PR曲线,是在Precision查准率和Recall查全率概念上衍生出的曲线,X轴为Recall,Y轴为Precision。如下图A,B,C三个模型,绘制出的PR曲线:


屏幕截图.png
屏幕截图.png

图片引自:周志华《机器学习》C2.3 P31页

我们可以通过PR曲线,找到最优化的模型。比较上图A和C模型,很容易比较出A模型更优,对于模型的PR曲线来说,如果这条曲线能包住另一条模型曲线,则可以肯定这条曲线下的模型更优秀(因为其完全覆盖了模型C,故可以轻易取到PR值都接近理想话(1,1)的点)但当模型的PR图有交叉时,就不太容易通过肉眼比较了,譬如这里A和B。
对于模型PR曲线有交叉的情况,我们可以考察其F1值,F1值越大,模型越优!(因为通常F1值越高,反应到图像上,表明此模型曲线围绕X轴覆盖的面积更大,而面积越接近1,表明F和P两者都很高)上图A和B模型,模型A的F1>模型B的F1值,故模型A更优秀。

8. ROC曲线

Receiver Operating Characteristic curve,即ROC曲线,译为:受试者工作特征曲线。ROC曲线起源于“二战”,是一个用于敌机检测的雷达信号分析技术,后来应用到了医疗检测、心理学等领域,1989年被引入机器学习领域。在ROC曲线中,X轴为FPR(假正例率),Y轴为TPR(真正例率)。其中FPR是False Positive Rate缩写,即FP率(假正例率),TPR是True Positive Rate的缩写,即TP率(真正例率)。结合图示更清晰:

1573991422668-096fb9a5-5b16-4d6b-9837-a07d7b16b183.png
1573991422668-096fb9a5-5b16-4d6b-9837-a07d7b16b183.png

TPR分子:TP,即预测为正例,实际为正理例(预测正确);
TPR分母:所有正例样本 = TP + FN

FPR分子:FP,即预测为正例,实际为负例(预测错误);
FPR分母:所有负例样本数 = FP + TN

可以看出,TPR实际上就 = Recall查全率,FPR实际上就 = Precision查准率,只是两者X轴和Y轴次序相反

图片引自:周志华《机器学习》C2.3 P34页.png
图片引自:周志华《机器学习》C2.3 P34页.png

和PR曲线类似,如果一个模型曲线将另一条模型曲线“完全包住”,则可以断定此模型性能更优!否则,还是需要通过ROC曲线围X轴的面积来确定模型优劣,此面积即AUC(Area Under ROC Curve)

9. AUC

AUC,即Area Under ROC Curve,表示ROC曲线中,曲线和X轴围成的面积,通常比较两个模型的AUC大小,AUC大者,表明其面积大,更接近1,模型的TPR和FPR两者都相对较高,模型更优。

10.AP

Average Precision平均精准率 = (某一个类别)每个样本的精确率求和/样本总数N。

AP = \frac{\sum{Precision}}{N}

看一个例子,假设VOC数据集中,分别有person,train,cat,dog...总计20个分类类别,测试集有1000张图片,则针对其中某一类,譬如cat类,我们计算其平均精准率AP即可用:AP_{cat}= \frac{\sum_{i=1}^{1000} {Precision_i}}{1000},为什么是1000张图片的Precision累加?因为每一张图都是潜在的待分类图片,可能包含20个类别中的1~多个分类,且可能包含这些分类下的1~n个bounding box,故对于某个分类,单独一张图片有需要独立计算其精准度。

11.mAP

Mean Average Precision均值平均精准率 = 所有类别的AP值累加求和/类别数
mAP = \frac{\sum{AP}}{N_{class}}有了AP的概念,mAP/Mean Average Precision就很好理解了,还是借用上面20个分类的例子,20个分类的AP均值mAP_{voc} = \frac{\sum_{i=1}^{20}{AP_i}}{20}


拓展—查准率和查全率

Precision和Recall的概念起源于信息检索领域,也在机器学习也被大量使用(聚类、二分类、多分类任务),为了能对Precision查准率和Recall查全率以及PR曲线、F1 score等有更深入地了解,我们介绍其一下在信息检索(Information Retrieval)领域里的应用,然后再看一下其在机器学习二分类问题中的应用。

信息检索IR

信息检索IR系统,顾名思义根据提供的部分信息/关键词来检索相关内容/文档,类似搜索引擎,根据关键词搜索相关网页一样,每篇网页都可以看做是一个文档。

那么IR 系统的目标是:

  • 准确:所有返回的文档必须都是和关键词相关的,无用/不相关文档越少越好
  • 高效:所有相关文档都应该在检索后被返回,即返回的相关文档越全越好

转化为机器学习中的测试任务,IR系统可以通过如下指标进行评估:

  • Precision查准率: 在检索出的所有文档中即有多少比例%的相关文档
  • Recall查全率: 即检索出的相关文档占所有相关文档的比例%

更正式地:
我们给定文档集合C,如果X表示一次检索中的返回的文档集合,且X\subseteq C;Y表示一次检索中所有相关文档的集合,且Y\subseteq C
查准率Precision可以表示为:P = \frac{|X\cup Y|}{|X|}查全率Recall可以表示为:R = \frac{|X\cup Y|}{|Y|}

此时,P和R就成了IR任务中需要同时考虑的两个因素,于是乎我们可以画出PR曲线的关系图来找到一个点使得IR系统的表现最好——即P和R同时越接近1越好。不过,查准率和查全率不能同时为1,
思考一下极端情况:
如果我希望Recall = 1,即所有相关文档都能被检索出来,我们可以一次返回所有的文档(数量=|C|);但是由于返回了大量文档,那么相关性就无法保证了,于是Precision会变低;
如果我希望Precision = 1,即返回的文档都是100%相关,那么我可以使得返回的文档数尽量小(譬如只返回1个相关性最高的文档,但是返回数量小,Recall就会很小);
于是,需要在Recall和Precision中取得均衡,方法就是通过PR曲线找到适宜的点。

现在,我们用i表示检索出的文档总数,i的取值范围:[0,|C|]让i 从0~|C|,然后可以画出如下PR曲线:

26bc1ea381424262b9d966c63f418661.png
26bc1ea381424262b9d966c63f418661.png
通常,越接近点(1,1)IR系统表现越好。和ROC曲线类似,我们也可以计算PR曲线下的面积,Area under P/R Curve(AUPR),面积越接近1则表现越优秀,如下图:
010ded77e8d0454b99f0cafd3d962613.png
010ded77e8d0454b99f0cafd3d962613.png

机器学习二分类

现在假设我们有个二分类的机器学习预测任务,目标是准确找出1000个人中的10个癌症患者。这里设定癌症为正例、正常为负例,样本总数为1000。那么对于一次预测事件,除了评估其准确率性Accuracy以外,我们还需要评估Precision查准率和Recall查全率。
假设一种情况:模型A预测能力很差,对于每个样本,都判定其为正常,那么预测的Acc也能达到990/1000 = 99%,显然不能仅靠Acc来判断此模型的好坏。所以我们需要引入Precision和Recall

查准率:Precision = \frac{TP}{TP+FP}查准率Precision = 要求我们查出来的尽可能准确,即在所有正例预测中,确实得了癌症的样本比例尽可能高,因为最好不要把健康样本,误预测成癌症样本。
查全率:Recall = \frac{TP}{TP+FN}查全率要求我们查出正例的比例尽可能高,因为不希望遗漏每一个癌症样本,而没检测出来。

下面,我们看一下极端情况和正常情况下的模型,计算它们的查准率查全率,以及评估是否为最优模型。
极端情况:
当引入查准率和查全率后,模型A(对每个样本都判定为正常)TP = 0,即查准率Precision = 0;查全率Recall =0,显然是一个不合格的模型。
当然,如果有个模型B,对每个样本都判定其为正例(得了癌症),那么其TP = 10,FP = 990,FN=0,即查准率 = TP/(TP+FP) = 1%,查全率Recall = TP/(TP+FN) = 100%。虽然其查全率很高,但是查准率接近0,显然也不是我们想要的模型。

正常情况:
假设这里有三组正常的模型,A1、A2和A3,它们的P值(查准率)、R值(查全率)、F1值如下表格:

屏幕截图_1.png
屏幕截图_1.png
那么,对我们来说,A1模型是最优选择。因为F1值较高,说明其查准率查全率总体来说都较高,不会出现差距过大的情况,所以A1是三个模型中的最优选择

参考:http://mlwiki.org/index.php/Precision_and_Recall

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

推荐阅读更多精彩内容