PR曲线实则是以precision(精准率)和recall(召回率)这两个为变量而做出的曲线,其中recall为横坐标,precision为纵坐标。设定一系列阈值,计算每个阈值对应的recall和precision,即可计算出PR曲线各个点。

precision=tp / (tp + fp)

recall=tp / (tp + fn)

可以用sklearn.metrics.precision_recall_curve计算PR曲线

from sklearn.metrics import precision_recall_curve
y_true = [0, 0, 1, 1]
y_score = [0.1, 0.4, 0.35, 0.8]precision, recall, thresholds = precision_recall_curve(y_true, y_score)
print(precision)
print(recall)
print(thresholds)
"""
[0.66666667 0.5 1. 1.]
[1.  0.5 0.5 0. ]
[0.35 0.4  0.8 ]
"""

其中y_true是正确标签,y_score是概率输出值,thresholds是阈值,当y_score>=thresholds,则预测为正样本,当y_score<thresholds,则预测为负样本。注意,输出的precision和recall最后一个值分别为1和0,并且没有对应的阈值。该例子中,正样本实际数量为2个,负样本实际数量为2个。

  • 当index=0,thresholds[index]=0.35,此时预测的标签为[0,1,1,1],tp=2,fp=1,fn=0,所以precision=0.67,recall=1
  • 当index=1,thresholds[index]=0.4,此时预测的标签为[0,1,0,1],tp=1,fp=1,fn=1,所以precision=0.5,recall=0.5
  • 当index=2,thresholds[index]=0.8,此时预测的标签为[0,0,0,1],tp=1,fp=0,fn=1,所以precision=1,recall=0.5

python计算PR曲线sklearn.metrics.precision_recall_curve相关推荐

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

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

  2. python画PR曲线(precision-recall曲线)

    使用python画precision-recall曲线的代码是: sklearn.metrics.precision_recall_curve(y_true, probas_pred, pos_lab ...

  3. 【SLAM十四讲】ch11 回环检测 词袋法实验 得出相似分数后计算PR曲线 VPR实验 编辑中

    [SLAM十四讲]ch11 回环检测 词袋法实验 得出相似分数后计算PR曲线 [SLAM十四讲]ch11 回环检测 词袋法实验 得出相似分数后计算PR曲线 DBow3库安装 ch11编译 ch11 词 ...

  4. python画pr曲线代码_利用Python中的numpy包实现PR曲线和ROC曲线的计算

    闲来无事,边理解PR曲线和ROC曲线,边写了一下计算两个指标的代码.在 python 环境下,sklearn里有现成的函数计算ROC曲线坐标点,这里为了深入理解这两个指标,写代码的时候只用到numpy ...

  5. 02_混淆矩阵、准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F值(F-Measure) +Roc曲线和PR曲线+sklearn中分类模型评估API+ 自己补充整理

    此博文参考: 关于ROC绘制参考博文: https://blog.csdn.net/u011630575/article/details/80250177 Python+ROC相关的博文: https ...

  6. python画pr曲线_python 画函数曲线示例

    python 画函数曲线示例 如下所示: import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 2 * np.pi ...

  7. python 画pr曲线

    roc曲线: python 画roc曲线_jacke121的专栏-CSDN博客 import _pickle as cPickle import matplotlib.pyplot as pltxxx ...

  8. python画pr曲线代码_Yolov3测试图及绘制PR曲线,yoloV3,map,和,画

    训练指令:./darknet.exe detector train data/obj.data yolo-obj.cfg darknet53.conv.74 | tee train_yolov3.lo ...

  9. python混淆矩阵函数_Python sklearn.metrics模块混淆矩阵常用函数

    from sklearn import metrics 1.accuracy_score(y_true, y_pred, normalize=True, sample_weight=None) 参数分 ...

最新文章

  1. [Big Data - Kafka] kafka学习笔记:知识点整理
  2. python argparse库_python标准库之argparse
  3. 程序员应知——团队精神(转)
  4. 商品和服务税收分类编码表_如何设置客户编码和商品编码?(附操作图)
  5. instance的用法 php,php面向对象之instanceof关键字的用法
  6. java连接zookeeper_java 学习笔记(四) java连接ZooKeeper
  7. Win32 控件篇(2)
  8. 如何控制表格的宽度_利用Word制作表格,这些实用技巧一定要知道!制作表格更加快捷...
  9. js的异常捕获try和catch语句
  10. 在线中英文符号转换工具
  11. phpFreeChat 2.0.0 发布,Web 聊天室
  12. 数据库事务日志已满的解决办法
  13. java speex转码_微信Speex转wav,Speex to wav
  14. transforms的使用方法
  15. 情人节的自娱自乐——情书事件
  16. Linux系统架构概述
  17. 魔数(magic number)
  18. 基于ShineBlink物联网开发板和机智云平台开发的“针对短期内宠物无人照顾的智能宠物屋”系统
  19. 为什么鲍尔默现在说要辞职?
  20. 变年轻特效是什么软件?快把这些软件收好

热门文章

  1. java在画布上画出变量_急..JAVA 在画布上画拖动滚动条可扩大缩小的长方形
  2. extjs2.0 ie8 下拉树_ExtJs下拉树的实现
  3. redis和mysql数据不一致_高并发下为什么 redis 和数据库不一致?怎么解决?
  4. Spring Cloud Alibaba基础教程:Sentinel Dashboard中修改规则同步到Apollo
  5. 论文浅尝 - ICML2020 | 拆解元学习:理解 Few-Shots 任务中的特征表示
  6. 论文浅尝 - WSDM20 | 基于弱监督及逐步推理的多关系知识图谱问答
  7. 垃圾分类智能化-垃圾分类机器人
  8. Barra 结构化风险模型实现(1)——沪深300指数的风格因子暴露度分析
  9. Android官方开发文档Training系列课程中文版:性能优化建议
  10. 【数据挖掘】数据预处理