【true positive,false positive,true negative,false negative】的几个解释 ||| ROC Curve and AUC

前言:


TP:True positive

FP:False positive

TN:True negative

FN:False  negative

【true positive,false positive,true negative,false negative】的几个解释 ||| ROC Curve and AUC_第1张图片

(从下文【解释1】中整理而来的图解)


上述四个名词广泛应用于各种领域。召回率(Recall),精确率(Precision),平均正确率(AP),交除并(IoU)是【object detection】领域的几个性能的衡量指标,其中 AP 取决于 Recall and Precision 组成的曲线,而 Recall and Precision 的计算与上述四个名词息息相关,公式分别如下所示:

这里写图片描述

这里写图片描述


本文主要找了几个比较受益的相关资料整理于此,之后也会根据自己慢慢学习过程中的理解进一步完善这篇博文。



解释1:摘抄至)http://blog.csdn.net/syoung9029/article/details/56276567



本文主要摘抄参考资料中的实例:大雁与飞机

假设现在有这样一个测试集,测试集中的图片只由大雁和飞机两种图片组成,如下图所示: 


【true positive,false positive,true negative,false negative】的几个解释 ||| ROC Curve and AUC_第2张图片

假设你的分类系统最终的目的是:能取出测试集中所有飞机的图片,而不是大雁的图片。现在做如下的定义: 


True positives : 飞机的图片被正确的识别成了飞机。 
True negatives: 大雁的图片没有被识别出来,系统正确地认为它们是大雁。 
False positives: 大雁的图片被错误地识别成了飞机。 
False negatives: 飞机的图片没有被识别出来,系统错误地认为它们是大雁。


假设你的分类系统使用了上述假设识别出了四个结果,如下图所示: 

【true positive,false positive,true negative,false negative】的几个解释 ||| ROC Curve and AUC_第3张图片

那么在识别出的这四张照片中: 

True positives : 有三个,画绿色框的飞机。 
False positives: 有一个,画红色框的大雁。


没被识别出来的六张图片中: 
True negatives : 有四个,这四个大雁的图片,系统正确地没有把它们识别成飞机。 
False negatives: 有两个,两个飞机没有被识别出来,系统错误地认为它们是大雁。


Precision 与 Recall 的计算:

Precision其实就是在识别出来的图片中,True positives所占的比率: 
这里写图片描述
其中的n代表的是(True positives + False positives),也就是系统一共识别出来多少照片 。 
在这一例子中,True positives为3,False positives为1,所以Precision值是 3/(3+1)=0.75。 
意味着在识别出的结果中,飞机的图片占75%。


Recall 是被正确识别出来的飞机个数与测试集中所有飞机的个数的比值: 
这里写图片描述
Recall的分母是(True positives + False negatives),这两个值的和,可以理解为一共有多少张飞机的照片。 
在这一例子中,True positives为3,False negatives为2,那么Recall值是 3/(3+2)=0.6。 
意味着在所有的飞机图片中,60%的飞机被正确的识别成飞机。



解释2:摘抄至)http://blog.51cto.com/simon/73395


False positive和False negative这两个词广泛出现在各种领域,就计算机领域来说,通常出现在与安全有关的技术资料中,是什么意思呢?我们来分析一下。
 
首先,两个词的共有部分是False,假的,拿流行话来说叫不靠谱。那后面的词是什么意思呢?
 
Positive的中文意思是“确实的;积极的,肯定的;正的,阳性的”,我们暂时用阳性这个词好了。这个词在医学上用得多,通常不是好消息,阳性代表有病或者有病毒,如乙肝病毒的检测,HIV的检测。如果某个人的HIV检测结果为阳性,那这个人一定痛苦极了,甚至可能没有勇气继续活在这个世界上。正要准备自杀时,接到了医院的电话,说报告弄错了,这就是False Positive。 “医生啊,你是上帝派来玩我的吗?”
 
Negative的中文意思与Positive刚好相反,是“否定的;消极的;负的;底片;负数”,False Negative为假阴性,如果一个爱滋病毒感染者的HIV检测报告呈阴性,就这是一个False Negative事件。
 
再来说说FP和FN在计算机领域中的意思,我喜欢把它们译为“误报”和“漏报”。
对于计算机防病毒软件来说,和医院里的病毒检测是一个意思,因此,一个防病毒软件把没有感染病毒的文件报告为感染了病毒,这就是“误报”。相反,如果没有检测出系统中的存在的病毒,这就是“漏报”。 世界上没有任何一款防病毒产品敢说自己没有“误报”和“漏报”的情况存在(如果你看到哪个厂商这样宣传自己的产品,替我鄙视它,当然了,如果该防病毒产品被设计为将一切文件视为无毒文件,则它没有误报的情况,或者将一切文件视为带毒文件,则它没有漏报,真有这样的东西吗?)。不断有新的病毒产生,防病毒软件相对于病毒来说,比较被动。如果单纯地使用己知病毒定义来检测病毒,就容易产生“漏报”。如果结合一些前摄性的,基于行为监测的手段来检测病毒,就容易产生“误报”。
 
类似地,防火墙对入侵行为的检测,也存在以上两种情况。如果把正常的资源访问判断为入侵行为并加以阻止,就是“误报”。如果没有发现某个入侵行为,没有对其进行响应,就是“漏报”。 世界上没有任何一款防火墙产品敢说自己没有“误报”和“漏报”的情况存在(如果你看到哪个厂商这样宣传自己的产品,替我鄙视它,当然了,如果该防火墙产品被设计为将一切访问行为视为正常访问,则它没有误报的情况,或者将一切访问行为视为入侵行为,则它没有漏报,真有这样的东西吗?)。安全策略定义得过于严格,就容易产生“误报”,过于宽松,就容易产生“漏报”。
 
那么,安全产品的设计者,希望自己的产品误报率低一些还是漏报率低一些呢?很多厂商会希望自己产品的误报率低一些,因为误报行为相对漏报而言更加明显,容易被用户感知到,且一旦出现,可能会造成较大的影响,赛门铁克的误杀事件就是一个典型的例子。所以,在选择安全产品时,不要简单地认为误报率低的产品就是可靠的产品,它的低误报率往往是用高漏报率换来的。

ROC Curve and AUC:https://blog.csdn.net/ice110956/article/details/20288239

ROC空间将伪阳性率(FPR)定义为 X 轴,真阳性率(TPR)定义为 Y 轴。ROC曲线上的一个点对应一个阈值,遍历所有的阈值,得到ROC曲线。

标量值AUC:ROC曲线所覆盖的区域面积。AUC越大,分类器分类效果越好。

(详情请参考标题所附链接)


你可能感兴趣的:(【日积月累】)