概念汇总
以下表格中的指标和概念汇总,主要用于评价机器学习中模型的优劣,详细解释见下面的【概念解析】部分。
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 = 0时,表示预测框没有覆盖到目标,即完全没有预测成功;
IoU = 1时,表示预测框和实际框之间100%重合,表明完全预测成功且没有一点误差;
通常在实际工程项目中,设定IoU的阈值为0.5,即交并比 > 50%时,可以认为机器预测到了目标,通常,我们也可以通过设定不同的阈值,得到不同的模型,然后再通过不同的ROC曲线、F1值等参数来确定最优化模型。
2. TP TN FP FN
这里T和F分别是True和False的缩写;P和N分别是Positive和Negative的缩写图片引自: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。
4. Precision
精准率
精确率用于描述在所有预测为正的样本中,预测正确的比例,在有的翻译中,Precision也被称为查准率。
查准率针对的是预测,顾名思义,查准率主要用来判断“查的准不准”,其依据是查出的正例占所有正例预测的比率。
5. Recall
召回率
和精确率不同,Precison针对的是预测,Recall针对的是样本。召回率表示在所有正例的样本中,有多少被预测/检测了出来,所以在有的翻译中,Recall也被称为查全率。
查全率针对的是样本,即对样本而言,有多少比例的正例样本在预测中被检出。
最优目标是希望查准率和查全率都接近100%,但通常这二者的关系是负相关,具体可以参考下面的【应用拓展】小节。
6. F1-score
F1 score是围绕Recall和Precision衍生出来的一个参考值,公式 = Precision和Recall的调和平均值
其数值大小通常接近二者中的较小数、当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曲线:
图片引自:周志华《机器学习》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率(真正例率)。结合图示更清晰:
TPR分子:TP,即预测为正例,实际为正理例(预测正确);
TPR分母:所有正例样本 = TP + FN
FPR分子:FP,即预测为正例,实际为负例(预测错误);
FPR分母:所有负例样本数 = FP + TN
可以看出,TPR实际上就 = Recall查全率,FPR实际上就 = Precision查准率,只是两者X轴和Y轴次序相反
和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。
看一个例子,假设VOC数据集中,分别有person,train,cat,dog...总计20个分类类别,测试集有1000张图片,则针对其中某一类,譬如cat类,我们计算其平均精准率AP即可用:,为什么是1000张图片的Precision累加?因为每一张图都是潜在的待分类图片,可能包含20个类别中的1~多个分类,且可能包含这些分类下的1~n个bounding box,故对于某个分类,单独一张图片有需要独立计算其精准度。
11.mAP
Mean Average Precision均值平均精准率 = 所有类别的AP值累加求和/类别数
有了AP的概念,mAP/Mean Average Precision就很好理解了,还是借用上面20个分类的例子,20个分类的AP均值
拓展—查准率和查全率
Precision和Recall的概念起源于信息检索领域,也在机器学习也被大量使用(聚类、二分类、多分类任务),为了能对Precision查准率和Recall查全率以及PR曲线、F1 score等有更深入地了解,我们介绍其一下在信息检索(Information Retrieval)领域里的应用,然后再看一下其在机器学习二分类问题中的应用。
信息检索IR
信息检索IR系统,顾名思义根据提供的部分信息/关键词来检索相关内容/文档,类似搜索引擎,根据关键词搜索相关网页一样,每篇网页都可以看做是一个文档。
那么IR 系统的目标是:
- 准确:所有返回的文档必须都是和关键词相关的,无用/不相关文档越少越好
- 高效:所有相关文档都应该在检索后被返回,即返回的相关文档越全越好
转化为机器学习中的测试任务,IR系统可以通过如下指标进行评估:
- Precision查准率: 在检索出的所有文档中即有多少比例%的相关文档
- Recall查全率: 即检索出的相关文档占所有相关文档的比例%
更正式地:
我们给定文档集合,如果表示一次检索中的返回的文档集合,且;表示一次检索中所有相关文档的集合,且
查准率Precision可以表示为:查全率Recall可以表示为:
此时,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曲线:
机器学习二分类
现在假设我们有个二分类的机器学习预测任务,目标是准确找出1000个人中的10个癌症患者。这里设定癌症为正例、正常为负例,样本总数为1000。那么对于一次预测事件,除了评估其准确率性Accuracy以外,我们还需要评估Precision查准率和Recall查全率。
假设一种情况:模型A预测能力很差,对于每个样本,都判定其为正常,那么预测的Acc也能达到990/1000 = 99%,显然不能仅靠Acc来判断此模型的好坏。所以我们需要引入Precision和Recall
查准率:查准率Precision = 要求我们查出来的尽可能准确,即在所有正例预测中,确实得了癌症的样本比例尽可能高,因为最好不要把健康样本,误预测成癌症样本。
查全率:查全率要求我们查出正例的比例尽可能高,因为不希望遗漏每一个癌症样本,而没检测出来。
下面,我们看一下极端情况和正常情况下的模型,计算它们的查准率查全率,以及评估是否为最优模型。
极端情况:
当引入查准率和查全率后,模型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值如下表格: