一、原理讲解

P-R曲线就是精确率precision vs 召回率recall 曲线,以recall作为横坐标轴,precision作为纵坐标轴。首先解释一下精确率和召回率。

解释精确率和召回率之前,先来看下混淆矩阵,

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.

二、通过PR曲线判断分类器性能


如果一个学习器的P-R曲线被另一个学习器的P-R曲线完全包住,则可断言后者的性能优于前者,例如上面的A和B优于学习器C。但是A和B的性能无法直接判断,我们可以根据曲线下方的面积大小来进行比较,但更常用的是平衡点或者是F1值。平衡点(BEP)是P=R时的取值,如果这个值较大,则说明学习器的性能较好。而F1 = 2 * P * R /( P + R ),同样,F1值越大,我们可以认为该学习器的性能较好。

补充

  1. ROC曲线(类似于PR曲线的另一种曲线)中,越接近左上角的曲线越好
  2. AUC (Area under Curve):ROC曲线下的面积,介于0.1和1之间,作为数值可以直观的评价分类器的好坏,值越大越好。
    AUC = 1,是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器。
    0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
    AUC = 0.5,跟随机猜测一样(例:丢铜板),模型没有预测价值

参考说明

版权声明:本文为CSDN博主「keep_forward」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/b876144622/article/details/80009867

作者:李_颖Biscuit
链接:https://www.jianshu.com/p/ac46cb7e6f87
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

PR曲线原理及通过曲线判断分类器优劣相关推荐

  1. AUC是什么?AUC的的意义是什么?AUC的判断分类器优劣标准是什么?AUC如何计算?

    AUC是什么?AUC的的意义是什么?AUC的判断分类器优劣标准是什么?AUC如何计算? metrics.roc_auc_score metrics.roc_curve AUC就是曲线下面积,在比较不同 ...

  2. 分类器MNIST交叉验证准确率、混淆矩阵、精度和召回率(PR曲线)、ROC曲线、多类别分类器、多标签分类、多输出分类

    本博客是在Jupyter Notebook下进行的编译. 目录 MNIST 训练一个二分类器 使用交叉验证测量精度 混淆矩阵 精度和召回率 精度/召回率权衡 ROC曲线 多类别分类器 错误分析 多标签 ...

  3. det曲线_11565 P-R、ROC、DET 曲线及 AP、AUC 指标全解析(上)

    机器学习中,最「简单」的一种任务就是二分类任务了.比如,说话人验证(speaker verification)就是一个二分类任务:判断一句话是否是给定说话人说的.再比如,信息检索(informatio ...

  4. Bezier曲线原理及实现代码(c++)

    一.原理: 贝塞尔曲线于1962年,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计.贝塞尔曲线最初由 Paul de Casteljau 于 ...

  5. Bezier曲线原理

    一.原理: 贝塞尔曲线于1962年,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计.贝塞尔曲线最初由Paul de Casteljau 于1 ...

  6. Bezier曲线原理—动态解释

    Bezier曲线原理 贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线.一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖 ...

  7. 贝塞尔曲线原理(简单阐述)

    贝塞尔曲线原理(简单阐述) https://www.cnblogs.com/hnfxs/p/3148483.html 原理和简单推导(以三阶为例): 设P0.P02.P2是一条抛物线上顺序三个不同的点 ...

  8. python 贝塞尔曲线,贝塞尔曲线原理分析及其Android的实现

    本文主要内容为贝塞尔曲线原理解析并用 SurfaceView 实现其展示动画 关于SurfaceView 的使用,大家可以看我的上一篇文章 Android:SurfaceView 的使用(附代码模板) ...

  9. Bezier曲线原理及其代码实现

    Bezier曲线原理及实现代码(c++) 一.原理: 贝塞尔曲线于1962年,由法国工程师皮埃尔?贝塞尔(Pierre B?zier)所广泛发表,他运用贝塞尔曲线来为汽车的主体进行设计.贝塞尔曲线最初 ...

最新文章

  1. python程序设计课程设计二级减速器_机械工程专业的本科生应该自学哪些知识?...
  2. cas 连接oracle,Oracle 生成系统数据导入测试系统及smarteam 连接更改
  3. linux网卡IO,浅谈Linux 网络 I/O 模型简介(图文)
  4. Systemd 入门教程之命令篇
  5. java 比较器类_java常用类——比较器
  6. 服务器怎么做虚拟空间,服务器怎么做虚拟空间
  7. python 图片文字转换成word_如何把图片文字转换成word文字?
  8. 程序员如何准备简历以及面试的要求
  9. containers和overlay2占用磁盘过大
  10. 鸟哥的Linux私房菜(基础篇)中涉及的所有网址
  11. 栈和队列以及线性表的区别
  12. Coarse-Grain Fine-Grain Coattention Network for Multi-Evidence Question Answering
  13. 多媒体计算机网络机房方案,学校多媒体教室及计算机机房实施方案-20210612094112.docx-原创力文档...
  14. python数据处理方法汇总
  15. 2018思辨与创新章末测试答案
  16. 央企数字化服务转型之道
  17. 生存战争-中阶模拟量电路板视频学习记录
  18. 中学计算机课 打字教案,计算机课教案.doc
  19. 字符串中各类字符数的统计
  20. springboot,vue电影院售票系统

热门文章

  1. GDT践行记录19周
  2. 阿里式公益有何不同?从阿里文学益读活动说起
  3. Python+Vue计算机毕业设计蓝巷智慧社区z16m1(源码+程序+LW+部署)
  4. vue的prop 以及 watch使用一些问题
  5. 科研必备:医药卫生与人口健康领域开放共享数据库——国家人口健康科学数据中心
  6. 进苹果商店显示无法连接服务器,苹果商店提示无法连接怎么回事_苹果商店打不开连接不上如何解决-win7之家...
  7. 小程序毕设作品之微信预约订座小程序毕业设计(4)开题报告
  8. Dubbo-qibai
  9. 服务器主板最多插多少块CPU,双路主板能不能只用一块CPU?
  10. 先行“蜀道”, 四川农信核心系统分布式转型