P-R曲线与ROC曲线

  • 一、什么是P-R曲线?
  • 二、什么是ROC曲线?
  • 三、P-R曲线与ROC曲线有什么用?
  • 三、绘制P-R曲线代码

一、什么是P-R曲线?

  • 要知道什么是P-R曲线,首先,我们要先了解P和R分别代表什么意思。

“P”是“precision”,代表准确率。
“R”是“recall”,代表召回率。
而要计算准确率和召回率,我们要先了解一下混淆矩阵。↓↓↓

实际 \ 预测
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曲线了。
以召回率(recall)为横轴,以准确率(precision)为竖轴,绘制而成的曲线就为P-R曲线了。

二、什么是ROC曲线?

  • ROC (Receiver Operating Characteristic Curve):受试者工作特征。

类似P-R曲线,根据学习器的预测结果(概率)对样例排序,并逐个作为正例进行预测,以“假正例率(False Positive)”为横轴,“真正例率(True Positive)”为纵轴可得到ROC曲线。

三、P-R曲线与ROC曲线有什么用?

我们可以利用曲线来比较不同二分类模型之间性能的优劣。

  • 主要有三种方法:
    1.用曲线与坐标轴围成的面积作比较,这个面积也叫AUG值,我们一般认为AUG值大的模型性能更优。

    2.取出P=R的值作为平衡点,我们一般认为平衡点大的模型性能更优。

    3.计算F1= 2 * P * R / (P + R),F1值越大的模型越稳定。

三、绘制P-R曲线代码

import matplotlib.pyplot as plt
import numpy as npif __name__=='__main__':TP=np.array([5,4,4,4,4,3,3,2,2,1])FN=np.array([0,1,1,1,1,2,2,3,3,4])FP=np.array([5,2,2,0,0,0,0,0,0,0])P=TP/(TP+FP)R=TP/(TP+FN)plt.plot(R, P)plt.xlabel('Recall')plt.ylabel('Precision')plt.title('P-R')plt.show()

机器学习笔记(一)P-R曲线与ROC曲线相关推荐

  1. Sklearn机器学习——ROC曲线、ROC曲线的绘制和AUC面积、运用ROC曲线找到最佳阈值

    目录 1 ROC曲线 2 ROC曲线的绘制 2.1 Sklearn中的ROC曲线和AUC面积 2.2 利用ROC曲线找到最佳阈值 1 ROC曲线 上篇博客介绍了ROC曲线的概率和阈值还有SVM实现概率 ...

  2. 机器学习:python绘制P-R曲线与ROC曲线

    Python绘制P-R曲线与ROC曲线 查准率与查全率 P-R曲线的绘制 ROC曲线的绘制 查准率与查全率   P-R曲线,就是查准率(precision)与查全率(recall)的曲线,以查准率作为 ...

  3. 机器学习中的性能指标:精度、召回率,PR曲线,ROC曲线和AUC,及示例代码

    机器学习中的性能指标:精度.召回率.PR曲线,ROC曲线和AUC 精度.召回率 基本概念 F-Score 度量曲线 PR曲线 ROC曲线 PR曲线和ROC曲线的比较 AUC 精度.召回率 基本概念 可 ...

  4. 机器学习模型性能评估(二):P-R曲线和ROC曲线

    上文简要介绍了机器学习模型性能评估的四种方法以及应用场景,并详细介绍了错误率与精度的性能评估方法.本文承接上文,继续介绍模型性能评估方法:P-R曲线和ROC曲线.                   ...

  5. 机器学习性能度量(1):P-R曲线与ROC曲线,python sklearn实现

    最近做实验要用到性能度量的东西,之前学习过现在重新学习并且实现一下. 衡量模型泛化能力的评价标准,这就是性能度量.性能度量反应了任务需求,在对比不同模型的能力时,使用不同的性能度量往往会导致不同的评判 ...

  6. 机器学习之支持向量机SVM之python实现ROC曲线绘制(二分类和多分类)

    目录 一.ROC曲线 二.TP.FP.TN.FN 三. python绘制ROC曲线(二分类) 1.思路 2.关键代码 3.完整代码 四. python绘制ROC曲线(多分类) 五.参考文献 一.ROC ...

  7. 百面机器学习 #2 模型评估:0102 精确率与召回率,假阳性与真阳性率,PR曲线和ROC曲线

    文章目录 1. P-R(Precision-Recall)曲线 F1 score 2. 平方根误差的局限性 3. ROC曲线 ROC曲线绘制 4. AUC predict Positive predi ...

  8. 一文详尽混淆矩阵、准确率、精确率、召回率、F1值、P-R 曲线、ROC 曲线、AUC 值、Micro-F1 和 Macro-F1

    文章目录 二分类的评价指标 一.混淆矩阵与 TP.TN.FP.FN 二.准确率.精确率.召回率.F1值 三.P-R 曲线 四.ROC 曲线.AUC 值 五.P-R曲线和ROC曲线有什么区别,如何选择? ...

  9. P-R曲线与ROC曲线使用总结

    P-R曲线与ROC曲线总结 作者:jliang https://blog.csdn.net/jliang3 1.P-R曲线 1)实际预测时二分类的四种情况 真阳性/真正类(True Positive, ...

最新文章

  1. 无边框窗体和用户控件以及权限
  2. mysql创建行_如何在MySQL中创建行生成器?
  3. 为什么0的补码形式只有一种?
  4. 关于lombok插件的使用,强大的简化代码工具
  5. ABP理论学习之仓储
  6. 在linux学习中遇到的问题
  7. TFS在项目中Devops落地进程(上)
  8. Excel中插入VBA宏处理
  9. PHP多种序列化/反序列化的方法 (转载)
  10. 用apache的httpclient发请求和接受数据
  11. 《剑指Offer》解题目录(更新完毕)
  12. linux 高性能日志,linux日志系统
  13. V 语言强势登顶 GitHub TOP1,欲取 Go 而代之?
  14. 程序哲学how to make love,简称 html
  15. matlab的combuilder系列-matlab下做com组件 zzfrom SMTH bbs
  16. 问答列表html,HTML这个样子的图文列表怎么写
  17. @RequiresRoles使用
  18. ST-Link资料02_ST-Link固件介绍,及固件命名规则
  19. 【LTE】Qualcomm LTE Packets log 分析(一)LTE Access Stratum Log Analysis 1_PSS 2_RACH
  20. 数据分析师需要学习什么?

热门文章

  1. 如何建设一个属于自己的网站
  2. Android Studio查看数据库插件
  3. 40件 圆圈logo - 企业logo设计 - logo公司
  4. java redis队列_redis队列实现高并发怎么用?Java如何使用redis队列解决高并发?
  5. 经典仿句100例_精美句子仿写100例
  6. JDBC操作步骤和JDBC事务
  7. 013:魔兽世界之一:备战
  8. [MySQL优化案例]系列 — slave延迟很大优化方法
  9. 计算机绘出一条虚线算法步骤,国外利用计算机算法将有色线编织成经典绘画
  10. Cisco Packet Tracer的交换机的STP技术 (生成树)