使用python画precision-recall曲线的代码是:

sklearn.metrics.precision_recall_curve(y_true, probas_pred, pos_label=None, sample_weight=None)

以上代码会根据预测值和真实值,并通过改变判定阈值来计算一条precision-recall典线。

注意:以上命令只限制于二分类任务

precision(精度)为tp / (tp + fp),其中tp为真阳性数,fp为假阳性数。

recall(召回率)是tp / (tp + fn),其中tp是真阳性数,fn是假阴性数。

参数:

  • y_true:array, shape = [n_samples]:真实标签。如果标签不是{-1,1}或{0,1},那么pos_label应该显式给出。
  • probas_pred:array, shape = [n_samples] :正类的预测概率或决策函数
  • pos_label:int or str, default=None:正类标签。当pos_label=None时,如果y_true为{- 1,1}或{0,1},则pos_label设置为1,否则将报错。

返回值:

  • precision:array, shape = [n_thresholds + 1]:精度,最后一个元素是1。
  • recall:array, shape = [n_thresholds + 1]:召回率,最后一个是0
  • thresholds:array, shape = [n_thresholds <= len(np.unique(probas_pred))]:用于计算精度和召回率的决策函数的阈值

例子:

import numpy as np
from sklearn.metrics import precision_recall_curve
y_true = np.array([0, 0, 1, 1])
y_scores = np.array([0.1, 0.4, 0.35, 0.8])
precision, recall, thresholds = precision_recall_curve(y_true, y_scores)
>>> precision
array([0.66666667, 0.5, 1., 1.])
>>> recall
array([1., 0.5, 0.5, 0.])
>>> thresholds
array([0.35, 0.4, 0.8])

sklearn.metrics.average_precision_score则计算预测值的平均准确率(AP: average precision)。该分数对应于presicion-recall曲线下的面积。该值在0和1之间,而且更高更好。

sklearn.metrics.average_precision_score(y_true, y_score, average='macro', pos_label=1, sample_weight=None)

参数:

y_true:array, shape = [n_samples] or [n_samples, n_classes]

二元真实标签或二元标签指示器

y_score:array, shape = [n_samples] or [n_samples, n_classes]

目标分数,可以是正类的预测概率,置信度,或者无阈值决策

average:string, [None, ‘micro’, ‘macro’ (default), ‘samples’, ‘weighted’]

pos_label:int or str (default=1)

返回值:

average_precision:float

举例:

import numpy as np
from sklearn.metrics import average_precision_score
y_true = np.array([0, 0, 1, 1])
y_scores = np.array([0.1, 0.4, 0.35, 0.8])
average_precision_score(y_true, y_scores)
# 0.83...

python画PR曲线(precision-recall曲线)相关推荐

  1. matlab drawnow连成曲线,precision recall曲线Matlab实现

    在用哈希进行检索时,常会用到precision recall曲线对其性能进行定量评价.precision recall的定义在信息检索评价指标中已做了详细说明,这里再记录一下precision rec ...

  2. PR(precision recall curve)曲线是什么?PR曲线如何绘制?为什么Precision和Recall是矛盾体、此消彼长?为什么提出F1指标?

    PR(precision recall curve)曲线是什么?PR曲线如何绘制?为什么PR是矛盾体.此消彼长?为什么提出F1指标? sklearn.metrics.precision_recall_ ...

  3. 图片检索matlab程序,图像检索:precision recall曲线Matlab实现

    在用哈希进行检索时,常会用到precision recall曲线对其性能进行定量评价.precision recall的定义在信息检索评价指标中已做了详细说明,这里再记录一下precision rec ...

  4. python 画pr曲线

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

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

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

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

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

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

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

  8. 用python画熊猫-如何用安德鲁曲线绘制熊猫数据帧?

    我有以下熊猫数据帧:df = pd.read_csv("path/file/file.csv", header=0, sep=",", names=[" ...

  9. 【python】使用sklearn画PR曲线,计算AP值

    import numpy as np import matplotlib.pyplot as plt from sklearn.metrics import precision_recall_curv ...

最新文章

  1. 关于log4net日志写入mysql数据库记录
  2. 微软官方工具MediaCreationTool制作U盘Windows10启动盘教程
  3. 双网卡服务器SOCKET编程指定客户端通信网卡
  4. 一次解决libgcc_s.so.1 must be installed for pthread_cancel to work的经历
  5. dealloc 的水,很深?
  6. 永磁交流伺服电机的工作原理与更换新编码器后的常规零位校正方法
  7. Linux文件系统及属性
  8. day19 java数组的常用算法和排序
  9. vue-cli 该如何正确打包iconfont?
  10. python是由哪个人创造的文字_楔形文字是由什么人创造的
  11. HDAO one error
  12. autojs开发的多功能工具箱,源码量大慢慢消化,功能非常多
  13. ANU COMP1100 Lab1简介
  14. VS2019怎么没有C++的窗体应用模板_简历中常被忽视的「自我评价」,怎么写?
  15. GO+ 教程总览(二)
  16. tensorflow 1.13.1 requires wheel>=0.26, which is not installed. After October 2020 you may exper
  17. 如何让考核成为盈利工作?
  18. 鸿蒙手机录音,录音应用的隐藏功能,90%的人不知道?
  19. 委以重用的意思_干部选拔、提拔、重用、进一步使用,帮你理清这些词的准确意义...
  20. 传智播客上海校区“大神季”腾讯课堂各学科公开课直播地址!

热门文章

  1. 知识图谱论文阅读(二十)【WWW2020】Heterogeneous Graph Transformer
  2. ICLR2020 | 如何判断两个神经网络学到的知识是否一致
  3. 文本分类问题不需要ResNet?小夕解析DPCNN设计原理(上)
  4. 领域应用 | 知识图谱的技术与应用
  5. 2018 年,NLP 研究与应用进展到什么水平了?
  6. 【Java】列表、集合、哈希表和可变参数
  7. 知识图谱最新权威综述论文解读:知识表示学习部分
  8. SpringBoot防止重复请求,重复表单提交超级简单的注解实现
  9. LVS入门篇(五)之LVS+Keepalived实战
  10. select样式的重写