评估指标中IoU/precision/recall/tp/fp/fn/tn的个人理解
来源:互联网 发布:painter2018 mac破解 编辑:程序博客网 时间:2024/04/27 18:03
在物体检测和图像分割领域的评价体系中,IoU/precision/recall这几个评价指标被广泛应用,读过相应的代码之后会发现由此引出tp/fp/fn/tn的概念。通过查找相关资料,对这几个概念做一个整理。
先说tp/fp/fn/tn这四个最基本的概念,上图:
从这张图就可以很清楚知道这四个的概念,分别为
tp:True Positive
fp:False Positive
fn:False Negative
tn:True Negative
怎么理解呢?
我们都知道,在文本检索工作中要想检索到我们想要的有用的信息,我们需要从既包含我们想要的信息(称为relevant elements)又包含我们不想要的信息(称为irrelevant elements)的整体中,用检索工具(可以看成建立的模型)进行检索,得到的结果分成两部分,一部分是有用的信息(称为True positive,代码中常简写为tp),另一部分是无用的信息(称为False Positive,代码中常简写为fp)。于是剩下的fn和tn就能理解了。在物体检测和图像分割领域道理类似。
接下来就要利用这四个东西搞事情了!(准确的说是三个,tn一般不用)
IoU:以下是一个测量IoU的实例:
http://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection/
IoU简单来讲就是模型产生的目标区域和原来标记区域的交并比。可理解为得到的结果与GroundTruth的交集比上它们之间的并集,即为IoU 值。利用上面的几个概念,得到
IoU=∑tp/(∑fn+∑tp+∑fp),求和(∑)是因为程序中一般将tp/fn/fp都看做单个信息。
精确率precision=∑tp/(∑tp+∑fp),也就是搜索结果中有用的部分占所有搜索结果的比重。
召回率recall=∑tp/(∑fn+∑tp),也就是搜索结果中有用的部分占信息空间中所有有用的部分的比重。
然后举个栗子说明以上三个家伙怎么算,比如主人家里有12只狗和几只猫,主人随便牵出8只,其中5只狗3只猫,那么问题来了。先给张表:
总共的:{12dogs+some cats},
牵出的:{8=5dogs+3cats},
于是相关的relevant(fn+tp) = 12,搜索的retrieved(tp+fp) = 8;
relevant∩retrieved (tp) = 5(dogs);
fp=3
fn=12-5=7
辣么,IoU=tp/(fn+tp+fp)=5/(7+5+3)=5/15
precision=tp/(tp+fp)=5/8
recall=tp/(fn+tp)=5/12
维基百科中给出的precision和recall的公式:
最后附上评估指标的全家福:
全家福中的内容都能在维基百科中找到。
参考:https://en.wikipedia.org/wiki/Precision_and_recall
- 评估指标中IoU/precision/recall/tp/fp/fn/tn的个人理解
- FN、FP、TN、TP、precision、recall
- 准确率precision 召回率recall tp tn fp fn
- TP TN FP FN
- TP FN FP TN
- TP FP TN FN
- 机器学习中的Presicison&Recall&Accuracy, FP&TP&FN&TN
- TP, TN, FP and FN
- 分类的评判标准:TP、TN、FP、FN
- 论文中的FN FP TN TP
- TP、TN、FP、FN解释说明
- TP FN FP TN ROC !! mAP计算
- 行人检测评估:从TP、FP、TN、FN到ROC曲线、miss rate
- 目标检测中Recall、Precision和IOU
- Recall Precision IoU
- 敏感度、特异性:TP TN FP FN sensitivity Accuracy
- 一个实例说明Tp,Fp,Fn,Tn,mAP
- 机器学习中Precision,Recall的理解
- 世界未解之谜之----------Android Gradle
- JVM系列五:JVM监测&工具[整理中]
- easymock快速入门
- 靠自己,二流大学并不差
- 对PX4固件中的mavlink添加自定义数据包_mavgenerate转换工具(exe版)
- 评估指标中IoU/precision/recall/tp/fp/fn/tn的个人理解
- 数组以及程序格式
- 使用Tomcat建立基于主机名的虚拟主机
- 简单c之模拟实现mem类函数
- 如何查看exe或dll调用了什么dll
- [JZOJ3754]【NOI2014】魔法森林
- jvm内存监控工具jconsole配置与内存溢出分析
- 面向对象设计的SOLID原则
- Javascript异步编程