美文网首页DeepAI
【机器学习理论】—mAP 查全率 查准率 IoU ROC PR曲

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

作者: Sunflow007 | 来源:发表于2020-03-08 23:10 被阅读0次

    概念汇总

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

    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.pngiou_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.png1573991422668-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.png26bc1ea381424262b9d966c63f418661.png 通常,越接近点(1,1)IR系统表现越好。和ROC曲线类似,我们也可以计算PR曲线下的面积,Area under P/R Curve(AUPR),面积越接近1则表现越优秀,如下图:
    010ded77e8d0454b99f0cafd3d962613.png010ded77e8d0454b99f0cafd3d962613.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

    相关文章

      网友评论

        本文标题:【机器学习理论】—mAP 查全率 查准率 IoU ROC PR曲

        本文链接:https://www.haomeiwen.com/subject/mzesdhtx.html