P-R曲线深入理解
P-R曲线深入理解
负 | 正 | |
负 | TN | FP |
正 | FN | TP |
把正例正确分类为正例,表示为TP(true positive),把正例错误分类为负例,表示为FN(false negative),
把负例正确分类为负例,表示为TN(true negative), 把负例错误分类为正例,表示为FP(false positive)
精确率和召回率可以从混淆矩阵中计算而来,precision = TP/(TP + FP), recall = TP/(TP +FN)
那么P-R曲线是怎么来的呢?
算法对样本进行分类时,都会有置信度,即表示该样本是正样本的概率,比如99%的概率认为样本A是正例,1%的概率认为样本B是正例。通过选择合适的阈值,比如50%,对样本进行划分,概率大于50%的就认为是正例,小于50%的就是负例。
通过置信度就可以对所有样本进行排序,再逐个样本的选择阈值,在该样本之前的都属于正例,该样本之后的都属于负例。每一个样本作为划分阈值时,都可以计算对应的precision和recall,那么就可以以此绘制曲线。那很多书上、博客上给出的P-R曲线,都长这样
当然,这种曲线是有可能的。但是仔细琢磨就会发现一些规律和一些问题。
根据逐个样本作为阈值划分点的方法,可以推敲出,recall值是递增的(但并非严格递增),随着划分点左移,正例被判别为正例的越来越多,不会减少。而精确率precision并非递减,二是有可能振荡的,虽然正例被判为正例的变多,但负例被判为正例的也变多了,因此precision会振荡,但整体趋势是下降。
另外P-R曲线肯定会经过(0,0)点,比如讲所有的样本全部判为负例,则TP=0,那么P=R=0,因此会经过(0,0)点,但随着阈值点左移,precision初始很接近1,recall很接近0,因此有可能从(0,0)上升的线和坐标重合,不易区分。如果最前面几个点都是负例,那么曲线会从(0,0)点开始逐渐上升。
曲线最终不会到(1,0)点。很多P-R曲线的终点看着都是(1,0)点,这可能是因为负例远远多于正例。
最后一个点表示所有的样本都被判为正例,因此FN=0,所以recall = TP/(TP + FN) = 1, 而FP = 所有的负例样本数,因此precision = TP/(TP+FP) = 正例的占所有样本的比例,故除非负例数很多,否则precision不会为0.
因此,较合理的P-R曲线应该是(曲线一开始被从(0,0)拉升到(0,1),并且前面的都预测对了,全是正例,因此precision一直是1,)
另外,如果有个划分点可以把正负样本完全区分开,那么P-R曲线就是整个1*1的面积。
总之,P-R曲线应该是从(0,0)开始画的一条曲线,切割1*1的正方形,得到一块区域。

- orino: 经过(0,0)点存在疑问,一开始TP为0,好理解,但此时TP+FP也为0,根据P的定义,此时分子分母都趋于0,这里应该是(0,1)点?(1个月前#9楼)5
- weixin_45141837: 个人也感觉博主写的始终经过(0,0)点有问题,当排序的第一个样本点是负例,PR曲线理当经过(0,0)点没有问题,而后呈现一个上升趋势,若前几个样本点都是负例,上升趋势将会在前几个描点上持续,而后下降;而当排序的第一个样本点是正例时,PR曲线的第一个描点应当是(1/(TP+FN),1)这个点,此时曲线应该不会和y轴有交点。(1个月前#8楼)
- Asunany: 之后根据这些不同的(recall,precision)点,逐点连接,得到PR图?(2个月前#7楼)
- Asunany: 您好,请问“根据逐个样本作为阈值划分点的方法”?是什么意思呢? 我可以理解为,选定不同的阈值,就是选定了不同的confidence score么,划分不同的置信度,然后得到不同的(recall,precision)么? 谢谢(2个月前#6楼)
- kmding: 请问博主,PR曲线的起点会从原点出来吗(2个月前#5楼)1
- ygzyrz: 楼主可以补充一下什么样的PR曲线是好的。期待(5个月前#4楼)
- Lee_Wei4939: 感谢博主,找了这么久也只有你把pr原理讲清楚了,你是看的源码吗(9个月前#3楼)
- h_li24: 写得挺好的,西瓜书里面那个P-R曲线连定义都讲得不清楚(9个月前#2楼)
- XSD995366159: 谢谢博主,不过后面两个图无法显示了。(1年前#1楼)查看回复(1)
机器学习中的ROC和PR曲线以及代码实现
阅读数 2474
转自:https://blog.csdn.net/taoyanqi8932/article/details/54409314引言 在 21Must-KnowDataScienceInterviewQu...博文来自: 别说话写代码的博客
显著性目标检测模型评价指标(二)——PR曲线
阅读数 6037
显著性目标检测模型评价指标之PR曲线原理与实现代码目录显著性目标检测模型评价指标之PR曲线原理与实现代码目录一、PR曲线原理计算方法阈值选取二、Matlab代码著作权归作者所有。商业转载请联系作者获得...博文来自: 乐乐lelele的博客
用于yolo计算mAP和PR曲线使用
10-19显著性检测PR曲线
06-08深度学习,提高分类精度 - keep forward, go, go, go - CSDN博客
6-13
博文 来自: keep forward, go, go, go 深度学习性能提升的诀窍 10-09 阅读...P-R曲线深入理解 weixin_45141837:个人也感觉博主写的始终经过(0,0)点有问...
【性能评估】P-R曲线理解 - qq_30159015的博客 - CSDN博客
11-15
P-R曲线深入理解 - keep forward, go, go, go 04-19 3248 P-R曲线就是精确率precision vs 召回率recall 曲线,以recall作为横坐标轴,precision作为纵坐标...
线性模型(二)之多项式拟合 - keep forward, go, go, go - CSDN博客
6-6
2018年05月23日 22:53:50 keep_forward 阅读数:1029 版权声明: https://blog.csdn.net/b876144622/article/details/80427750 1. 多项式拟合问题 ...
机器学习中的PR曲线和ROC曲线 - This is bill的专属博客 - CSDN博客
11-23
P-R曲线深入理解 - keep forward, go, go, go 04-19 3521 P-R曲线就是精确率precision vs 召回率recall 曲线,以recall作为横坐标轴,precision作为纵坐标轴...
tensorflow保持每次训练结果一致 - keep forward, go, go, go - ...
5-21
博文 来自: 阿华Go,从现在开始的博客 tensorflow 恢复指定层与不同层指定不同...keep_forward 关注 原创 97 粉丝 24 喜欢 34 评论 34 等级: 访问...
用c++API加载python训练好的tensorflow模型 - keep forward, go, ...
11-23
用C++ API训练tensorflow模型 - keep forward, go, go, go 04-16 323 在前面的博客中,已经从源码安装了tensorflow,能够成功编译c++的代码,那么就可以编写c++...
Faster R-CNN画PR曲线
阅读数 3945
参考:https://github.com/rbgirshick/py-faster-rcnn/issues/670在pascal_voc.py里添加几行代码即可:1,文件头部:importmatpl...博文来自: 蚂蚁搬家
Python3绘制P-R曲线(二分类) - 荣耀之路 - CSDN博客
7-8
深度学习模型在各个框架之间转换(待续) - keep forward, go, go, ...
11-10
keep_forward 非学,无以致疑;非问,无以广识 去开通我的Chat快问 添加...P-R曲线深入理解 liwei1205:感谢博主,找了这么久也只有你把pr原理讲清楚了,...
机器学习模型评估混淆矩阵、ROC曲线和AUC以及PR曲线
阅读数 3322
在机器学习中,当我们基于某个业务建立模型并训练后,接下来我们需要评判模型好坏的时候需要基于混淆矩阵,ROC和AUC等来进行辅助判断。混淆矩阵也叫精度矩阵,是用来表示精度评价,为N*N的矩阵,用...博文来自: 幸运的Alina的博客
急求!怎么用matlab绘制pr曲线!
想知道怎么用matlab绘制显著性检测里面的PR曲线monkey:0.gif论坛
ROC曲线和PR(Precision-Recall)曲线
阅读数 1332
在机器学习中,ROC(ReceiverOperatorCharacteristic)曲线被广泛应用于二分类问题中来评估分类器的可信度,但是当处理一些高度不均衡的数据集时,PR曲线能表现出更多的信息,发...博文来自: qq_36955294的博客
深度探讨机器学习中的ROC和PR曲线
阅读数 2万+
引言\quad在21Must-KnowDataScienceInterviewQuestionsandAnswers的文章中,有这类似这样的问题,它问的是Explainwhatprecisionand...博文来自: yqtao的博客
关于YOLOv3对VOC类型数据集的mAP计算与PR曲线的绘制 windows和linux均适用
阅读数 5343
前言本文所做的工作均建立在已经已经用darknet训练好自己的模型的基础上的,不提供与YOLO训练有关的东西(因为别人已经发够多了)。尽量写得傻瓜一些,保持一步一次截图,因为能看这种博客的基本都没啥程...博文来自: qq_33350808的博客
tensorflow冻结部分层,只训练某一层
阅读数 1万+
其实finetune就是这样子的,如何把某些层冻结,然后训练最后一层。那么在tensorflow里如何实现呢?优化的时候,只选择优化特定层的参数即可。如下:-Python代码1#定义优化算子2opti...博文来自: keep forward, go, go, go
PR曲线和F1、ROC曲线和AUC
阅读数 5659
最近阅读机器学习,在评估学习器的性能时,书中提到了P、R、F1值度量和ROC曲线和AUC值度量。P、R、F1预测结果正例反例真实情况正例TP(真正例)FN(假反例)反例FP(假正例)...博文来自: teminusign的博客
Linux也可以这样美——Ubuntu18.04安装、配置、美化-踩坑记
阅读数 14万+
开篇前几天Ubuntu18.04LTS稳定版发布了,这也是将官方作为一个长期维护的版本,从ubuntu17.10开始,官方又开始使用gnome作为默认的桌面环境,这也给我们增加了更多可以div的地方,...博文来自: 丶legend的博客
Python 为目标检测任务绘制 ROC 和 PR 曲线
阅读数 4291
需要两个分别记录检测结果和标准答案的.txt文件,记录格式与FDDB的要求相同,即...imagenameinumberoffacesinthisimage=imfacei1facei2...face...博文来自: Xingyb14的博客
周志华机器学习第二章总结及课后答案
阅读数 1233
2.1经验误差与过拟合通常我们把分类错误的样本总数的比例称为错误率(errorrate),即如果在m个样本中有a个样本分类错误,则错误率E=a/m;相应的,1-a/m称为”精度”(accuracy),...博文来自: 物理小乾乾
ROC曲线,PR曲线,F1值和AUC概念解释及举例说明
阅读数 2487
1. ROC曲线和PR(Precision-Recall)曲线的联系2. ROC曲线、PR曲线3. 精确率、召回率、F1值、ROC、AUC各自的优缺点是什么?...博文来自: gslzszj的专栏
Caffe版Faster R-CNN可视化——网络模型,图像特征,Loss图,PR曲线
阅读数 235
可视化网络模型 Caffe目前有两种常用的可视化模型方式:使用Netscope在线可视化 Caffe代码包内置的draw_net.py文件可以可视化网络模型Netscope Netscope能可视...博文来自: weixin_39970417的博客
用c++API加载python训练好的tensorflow模型
阅读数 1380
由于在生产环境,很多情况下没有python的环境,只能用c/c++的环境,而且很多情况下是用python训练好模型后,用c++加载模型运行即可,那么如何才能用c++加载模型并运行呢?这里做一些说明。主...博文来自: keep forward, go, go, go
CLion中使用CMake导入第三方库的方法
阅读数 1万+
由于CLion的工程都是基于CMake来构建的,因此导入第三方库就需要在CMake文件中进行配置。这里把利用CMake导入第三方库的过程记录下来。...博文来自: 大迷毛的LALALAND
MATLAB计算矩阵间的欧式距离(不用循环!)
阅读数 2万+
MATLAB编程题题目描述:从一个NxM的矩阵C中找出与1xM的矩阵P欧氏距离最小的某一行row,要求不能用循环!!!输入:矩阵C(NxM)、矩阵P(1xM)输出:row解题思路:程序:functio...博文来自: henryzhihua
机器学习:准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲线、PR曲线
阅读数 5万+
以下第一部分内容转载自:机器学习算法中的准确率(Precision)、召回率(Recall)、F值(F-Measure)是怎么一回事摘要:数据挖掘、机器学习和推荐系统中的评测指标—准确率(Precis...博文来自: 小太阳~
评价曲线------------ROC和PR
阅读数 1万+
1、百科:ROC曲线指受试者工作特征曲线/接收器操作特性曲线(receiveroperatingcharacteristiccurve),是反映敏感性和特异性连续变量的综合指标,是用构图法揭示敏感性和...博文来自: 深藏功与名
二分类模型评估之 ROC曲线和PR曲线
阅读数 3362
ROC曲线:ROC曲线一系列根据不同的二分类方式(阈值或分界值),以真阳性率TPR(灵敏度)为纵坐标,假阳性率FPR(1-特异度)为横坐标绘制的曲线。...博文来自: 鼹鼠的胡须 的博客
精确率(准确率、查准率、precision)、召回率(查全率、recall)、RoC曲线、AUC面积、PR曲线
阅读数 1万+
1.TP,FP,TN,FNTruePositives,TP:预测为正样本,实际也为正样本的特征数FalsePositives,FP:预测为正样本,实际为负样本的特征数TrueNegatives,TN:...博文来自: sun_shengyun的专栏
python版faster rcnn利用matlab绘制RP曲线
阅读数 2646
在上一篇博客caffe–python版利用训练好模型进行测试中小鱼利用以训练的模型得到测试结果,但只得到测试的accuracy,没有得到想要的precision和recall。然而fasterrcnn...博文来自: zllljf的博客
thymeleaf模板实现html5标签的非严格检查
阅读数 6万+
一、概述最近在springboot项目引入thymeleaf模板时,使用非严格标签时,运行会报错。默认thymeleaf模板对html5标签是严格检查的。二、在项目中加NekoHTML库在Maven中...博文来自: Luck_ZZ的博客
jquery/js实现一个网页同时调用多个倒计时(最新的)
阅读数 59万+
jquery/js实现一个网页同时调用多个倒计时(最新的)nn最近需要网页添加多个倒计时. 查阅网络,基本上都是千遍一律的不好用. 自己按需写了个.希望对大家有用. 有用请赞一个哦!nnnn//jsn...博文来自: Websites
linux上安装Docker(非常简单的安装方法)
阅读数 32万+
最近比较有空,大四出来实习几个月了,作为实习狗的我,被叫去研究Docker了,汗汗!nnDocker的三大核心概念:镜像、容器、仓库n镜像:类似虚拟机的镜像、用俗话说就是安装文件。n容器:类似一个轻量...博文来自: 我走小路的博客
最新文章
个人分类
热门文章
- P-R曲线深入理解
阅读数 17446
- tensorflow冻结部分层,只训练某一层
阅读数 10861
- tensorflow cpu版本安装及卸载
阅读数 8262
- tensorflow 恢复部分参数、加载指定参数
阅读数 7380
- python 数组反转
阅读数 6283
最新评论
- L1正则为什么更容易获得稀疏解
- softmax loss层的求导反...
csuyhb:[reply]liuxiangxxl[/reply] 直观的理解,反向传播算法获得网络的参数(如:权值w和偏置项b)都是通过微积分的链式法则,所以都要依次从后往前分别对a,z求导用于求得w的偏导数(你可以上网查一个激活函数为sigmoid的神经网络反向传播),求得w的偏导数后,用于如梯度下降从而得到最终的w参数。
- softmax loss层的求导反...
qq_33359911:[reply]leading123[/reply] 也没错,那个i等于j,从第一项那儿来的,写成i也行
- softmax loss层的求导反...
leading123:[reply]oqqENvY12[/reply] 写错了,应该是-yj+pj*sum(y)
- python中运算符除法"...
abcde520906:写的有错误啊,希望楼主能够改一下。
-
10