知行编程网知行编程网  2022-09-11 23:00 知行编程网 隐藏边栏  166 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于Python如何画P-R曲线的相关知识,包括P R BP,以及短P一R间期这些编程知识,希望对大家有参考作用。

如何在 Python 中绘制 P-R 曲线


Python如何画P-R曲线

Python生成P-R图需要安装第三方库

matplotlib



numpy



sklearn

推荐学习《
》。


P-R曲线的生成方法:

根据学习器的预测结果对样本进行排序。第一个是学习者认为最有可能是正例的样本,最后一个是最不可能是正例的样本。按照这个顺序,样本被一个一个地预测为正例。然后每次可以计算当前的查全率和查准率,将查全率画在横轴,查准率在纵轴,得到的查准率曲线就是P-R曲线。

即预测每个样本为正例的概率,然后根据预测概率对所有样本进行排序,再将排序后的样本依次预测为正例,从而得到每次预测的召回率和准确率。将样本依次作为正例的过程,实际上是在逐步降低样本为正例的概率阈值。通过降低阈值,更多的样本将被预测为正例,这将提高召回率。相对准确率可能会下降,随着后期负样本的增加,召回率缓慢增加甚至不增加,准确率下降较快。

sklearn的计算过程与定义相反,按照概率从小到大递增的顺序计算precision和recall,对precision和recall分别加1和0。

#coding:utf-8
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import precision_recall_curve
from sklearn.utils.fixes import signature
plt.figure("P-R Curve")
plt.title('Precision/Recall Curve')
plt.xlabel('Recall')
plt.ylabel('Precision')
#y_true为样本实际的类别,y_scores为样本为正例的概率
y_true = np.array([1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0, 0, 0])
y_scores = np.array([0.9, 0.75, 0.86, 0.47, 0.55, 0.56, 0.74, 0.62, 0.5, 0.86, 0.8, 0.47, 0.44, 0.67, 0.43, 0.4, 0.52, 0.4, 0.35, 0.1])
precision, recall, thresholds = precision_recall_curve(y_true, y_scores)
#print(precision)
#print(recall)
#print(thresholds)
plt.plot(recall,precision)
plt.show()

如何在 Python 中绘制 P-R 曲线

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享