1. Precision和Recall

Precision,准确率/查准率。Recall,召回率/查全率。这两个指标分别以两个角度衡量分类系统的准确率。

例如,有一个池塘,里面共有1000条鱼,含100条鲫鱼。机器学习分类系统将这1000条鱼全部分类为“不是鲫鱼”,那么准确率也有90%(显然这样的分类系统是失败的),然而查全率为0%,因为没有鲫鱼样本被分对。这个例子显示出一个成功的分类系统必须同时考虑Precision和Recall,尤其是面对一个不平衡分类问题。

下图为混淆矩阵,摘自wiki百科

根据上图,Precision和Recall的计算公式分别为:

\[Precision{\rm{ = }}\frac{{{\rm{TP}}}}{{{\rm{TP + FP}}}}\]

\[Recall{\rm{ = }}\frac{{{\rm{TP}}}}{{{\rm{TP + FN}}}}\]

2. ROC (Receiver operating characteristic) 和 AUC(Area Under Curve)

ROC曲线,是以FPR为横轴、TPR为纵轴,衡量二分类系统性能的曲线。从上图得到,FPR=1-敏感度,TPR=敏感度。

那么ROC曲线上的点是如何得到的呢?分类器对分类的置信度一般设为50%,即置信度超过50%认为是正例,低于50%认为是反例。当然不是所有的分类器都能得到分类的置信度,因此不是所有的分类器都能得到ROC曲线。

依次改变这个置信度为10%~100%,会得到一组不同的混淆矩阵,取其中的FPR和TPR值组成坐标,连接这些值,就得到ROC曲线。ROC曲线与X轴围成的图形面积可以作为一个综合衡量指标,即AUC(Area Under Curve,曲线下面积)。AUC越大,曲线就越凸,分类器的效果也就越好。

ROC曲线反映了分类器对正例的覆盖能力和对负例的覆盖能力之间的权衡。

3. AP(Average precision)

在介绍AP之前,先引入Precision-recall曲线概念。Precision-recall曲线(PR曲线)与ROC曲线的区别是横轴和纵轴不同,PR曲线的横轴Recall也就是TPR,反映了分类器对正例的覆盖能力。而纵轴Precision的分母是识别为正例的数目,而不是实际正例数目。Precision反映了分类器预测正例的准确程度。那么,Precision-recall曲线反映了分类器对正例的识别准确程度和对正例的覆盖能力之间的权衡。对于随机分类器而言,其Precision固定的等于样本中正例的比例,不随recall的变化而变化。

与AUC相似,AP就是PR曲线与X轴围成的图形面积,

对于连续的PR曲线,有:\[{\rm{AP = }}\int_0^1 {{\rm{PRdr}}} \]

对于离散的PR曲线,有:\[{\rm{AP = }}\sum\limits_{k = 1}^n {P\left( k \right)} \Delta r\left( k \right)\]

此外,对于网页排序场景,还需要引入MAP(Mean Average Precision),MAP是所有查询结果排序的AP平均。

公式表示为:\[MAP = \frac{{\sum\nolimits_{q = 1}^Q {AP\left( q \right)} }}{Q}\]

其中,Q为查询的总次数。

4. 其他常见指标

Hamming loss(汉明损失),该指标衡量了预测所得标记与样本实际标记之间的不一致程度,即样本具 有标记y但未被识别出,或不具有标记y却别误判的可能性。

例如对于一个多标签问题,某样本的真实标签为1,0,1,预测标签为0,1,1,有2个对1个错,Hamming loss=1/3。此评估指标值越小越好。

one-error,用来计算在测试文件集中,测试结果分类值(取值0~1)最高的标签不在实际分类标签中的文件数。如预测分类值为{0.3,0.8,0.2,0.5},其实际分类标签为{1,0,0,1}时,分类值最高的是第二个标签,但他并不在实际分类标签中,因此one-error评估值是1/4。同样,此评估值越小越好。

coverage,用于计算在整个测试文件集中,实际分类标签在预测分类标签中的最大rank值的平均值。如预测分类标签为{0.3,0.8,0.2,0.5},rank即为{3,1,4,2}。当实际分类标签为{1,0,0,1}时,此测试集的coverage评估值为2。同样,此评估值越小越好。

ranking loss,用于计算预测分类标记与实际分类标记中,rank排名相反的次数。此评估值越小越好。

参考:

1. ROC:https://en.wikipedia.org/wiki/Receiver_operating_characteristic

2. AP/MAP: https://en.wikipedia.org/wiki/Information_retrieval

3. 其他概念:http://www.pluscn.net/?p=1352

Precision/Recall、ROC/AUC、AP/MAP等概念区分的更多相关文章

  1. 目标检测的评价标准mAP, Precision, Recall, Accuracy

    目录 metrics 评价方法 TP , FP , TN , FN 概念 计算流程 Accuracy , Precision ,Recall Average Precision PR曲线 AP计算 A ...

  2. 评价指标整理:Precision, Recall, F-score, TPR, FPR, TNR, FNR, AUC, Accuracy

    针对二分类的结果,对模型进行评估,通常有以下几种方法: Precision.Recall.F-score(F1-measure)TPR.FPR.TNR.FNR.AUCAccuracy   真实结果 1 ...

  3. TP Rate ,FP Rate, Precision, Recall, F-Measure, ROC Area,

    TP Rate ,FP Rate, Precision, Recall, F-Measure, ROC Area, https://www.zhihu.com/question/30643044 T/ ...

  4. 模型评测之IoU,mAP,ROC,AUC

    IOU 在目标检测算法中,交并比Intersection-over-Union,IoU是一个流行的评测方式,是指产生的候选框candidate bound与原标记框ground truth bound ...

  5. ROC AUC

    1.什么是性能度量? 我们都知道机器学习要建模,但是对于模型性能的好坏(即模型的泛化能力),我们并不知道是怎样的,很可能这个模型就是一个差的模型,泛化能力弱,对测试集不能很好的预测或分类.那么如何知道 ...

  6. 一文让你彻底理解准确率,精准率,召回率,真正率,假正率,ROC/AUC

    参考资料:https://zhuanlan.zhihu.com/p/46714763 ROC/AUC作为机器学习的评估指标非常重要,也是面试中经常出现的问题(80%都会问到).其实,理解它并不是非常难 ...

  7. 评价目标检测(object detection)模型的参数:IOU,AP,mAP

    首先我们为什么要使用这些呢? 举个简单的例子,假设我们图像里面只有1个目标,但是定位出来10个框,1个正确的,9个错误的,那么你要按(识别出来的正确的目标/总的正确目标)来算,正确率100%,但是其实 ...

  8. 查准与召回(Precision & Recall)

    Precision & Recall 先看下面这张图来理解了,后面再具体分析.下面用P代表Precision,R代表Recall 通俗的讲,Precision 就是检索出来的条目中(比如网页) ...

  9. Classification week6: precision & recall 笔记

    华盛顿大学 machine learning :classification  笔记 第6周 precision & recall 1.accuracy 局限性 我们习惯用 accuracy ...

随机推荐

  1. 查询前几条记录 top limit

    SQL Server 数据库中的Top关键字可实现查询数据库表中的前几条数据,但是需要注意的是,Top关键字只能在SQL Server数据库中可以使用,而在MySQL数据库中就要使用具有同样功能的LI ...

  2. python网络编程——SocketServer/Twisted/paramiko模块

    在之前博客C/S架构的网络编程中,IO多路复用是将多个IO操作复用到1个服务端进程中进行处理,即无论有多少个客户端进行连接请求,服务端始终只有1个进程对客户端进行响应,这样的好处是节省了系统开销(se ...

  3. C# Json格式

    using LitJson; //自定义Json类 JsonDataResult jsondata = new JsonDataResult() { Success = false }; HttpCo ...

  4. Nginx进阶-不停服更新

    前言 7*24小时不间断的提供对外服务和产品快速迭代是互联网行业的特征,基于需求所有的发布都不能停止当前对外的服务.本文围绕此话题衍生出,不停服上下线工具实现. 看本文前请先看 Nginx初识 Ten ...

  5. 较常用的Math方法及ES6中的扩展

    记录下与Math有关的常用方法,如:求最大值.最小值等,或者是保留几位数啥的 1.数据 let floatA = 2.325232; let floatB = 2.3456; let temporar ...

  6. 会话控制Cookie的应用

    Cookie是一种由服务器发送给客户端的片段信息,存储在客户端浏览器的内存或者硬盘上,在客户端对服务器的请求中发回它.PHP透明地支持HTTP Cookie.可以利用他在远程浏览器端存储数据并以此来跟 ...

  7. 配置阿里云maven中央库

    <mirrors> <mirror> <id>nexus-aliyun</id> <mirrorOf>*</mirrorOf> ...

  8. C++ 进阶学习 ——模板

    模板和重载类似,比重载更省事 通常有两种形式:函数模板和类模板: 函数模板针对仅参数类型不同的函数: 类模板针对仅数据成员和成员函数类型不同的类. 一个简单的函数模板 template <cla ...

  9. Linux 任务控制(bg job fg nohup &) (转)

    常用命令 & 将指令丢到后台中去执行[ctrl]+z 將前台任务丟到后台中暂停jobs 查看后台的工作状态fg %jobnumber 将后台的任务拿到前台来处理bg %jobnumber 将任 ...

  10. python time 和 datetime 模块的简介

    时间处理 time 和 datetime import timeimport datetimeprint time.time() #时间戳显示为1508228106.49print time.strf ...