Precision/Recall、ROC/AUC、AP/MAP等概念区分
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等概念区分的更多相关文章
- 目标检测的评价标准mAP, Precision, Recall, Accuracy
目录 metrics 评价方法 TP , FP , TN , FN 概念 计算流程 Accuracy , Precision ,Recall Average Precision PR曲线 AP计算 A ...
- 评价指标整理:Precision, Recall, F-score, TPR, FPR, TNR, FNR, AUC, Accuracy
针对二分类的结果,对模型进行评估,通常有以下几种方法: Precision.Recall.F-score(F1-measure)TPR.FPR.TNR.FNR.AUCAccuracy 真实结果 1 ...
- 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/ ...
- 模型评测之IoU,mAP,ROC,AUC
IOU 在目标检测算法中,交并比Intersection-over-Union,IoU是一个流行的评测方式,是指产生的候选框candidate bound与原标记框ground truth bound ...
- ROC AUC
1.什么是性能度量? 我们都知道机器学习要建模,但是对于模型性能的好坏(即模型的泛化能力),我们并不知道是怎样的,很可能这个模型就是一个差的模型,泛化能力弱,对测试集不能很好的预测或分类.那么如何知道 ...
- 一文让你彻底理解准确率,精准率,召回率,真正率,假正率,ROC/AUC
参考资料:https://zhuanlan.zhihu.com/p/46714763 ROC/AUC作为机器学习的评估指标非常重要,也是面试中经常出现的问题(80%都会问到).其实,理解它并不是非常难 ...
- 评价目标检测(object detection)模型的参数:IOU,AP,mAP
首先我们为什么要使用这些呢? 举个简单的例子,假设我们图像里面只有1个目标,但是定位出来10个框,1个正确的,9个错误的,那么你要按(识别出来的正确的目标/总的正确目标)来算,正确率100%,但是其实 ...
- 查准与召回(Precision & Recall)
Precision & Recall 先看下面这张图来理解了,后面再具体分析.下面用P代表Precision,R代表Recall 通俗的讲,Precision 就是检索出来的条目中(比如网页) ...
- Classification week6: precision & recall 笔记
华盛顿大学 machine learning :classification 笔记 第6周 precision & recall 1.accuracy 局限性 我们习惯用 accuracy ...
随机推荐
- [笔记]Python的调试器pudb简易教程
Linux下运行python脚本,pudb是一个不错的调试器. 语法高亮,断点,调用栈,命令行,都有了,如下图. [安装] pip install pudb [使用] pudb xxx.py [快捷键 ...
- GIT学习笔记(4):远程分支
GIT学习笔记(4):远程分支 远程分支 远程分支是什么 远程分支是对远程仓库中的分支的索引.它们是一些无法移动的本地分支:只有在GIT进行网络交互时才会更新.远程分支就是书签,提醒着你上次连接远程仓 ...
- 杭电1021Fibonacci Again
地址:http://acm.hdu.edu.cn/showproblem.php?pid=1021 题目: Problem Description There are another kind of ...
- 一般处理程序中 C#中对象转化为Json对象
namespace: Newtonsoft.Json; context.Response.ContentType = "application/text"; 注:这里为什么不是 J ...
- MapReduce:给出children-parents(孩子——父母)表,要求输出grandchild-grandparent(孙子——爷奶)表
hadoop中使用MapReduce单表关联案例: MapReduce:给出children-parents(孩子——父母)表,要求输出grandchild-grandparent(孙子——爷奶)表. ...
- 分布式链路监控与追踪系统Zipkin
1.分布式链路监控与追踪产生背景2.SpringCloud Sleuth + Zipkin3.分布式服务追踪实现原理4.搭建Zipkin服务追踪系统5.搭建Zipkin集成RabbitMQ异步传输6. ...
- Autofac property injection
https://autofaccn.readthedocs.io/en/latest/register/prop-method-injection.html Property and Method I ...
- truncate delete 与 drop的区别
一张表几亿条数据.根据task_id删除几千万. delete删除后查询,发现查询速度还是没有变快.explain查看 rows并没有发生变化.查询速度肯定也不会变化.原因? truncate del ...
- Hibernate -- 对象关系映射基础
- hdu 5768 Lucky7 中国剩余定理+容斥+快速乘
Lucky7 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem D ...