Python如何画P-R曲线
发布时间:2026-06-01 21:57:11

Python如何画P-R曲线?
Python生成P-R图需要安装第三方库matplotlibib、numpy及sklearn。
Python教程推荐学习。
P-生成R曲线的方法:
根据学习器的预测结果对样本进行排序。前面是学习器认为最有可能是例子样本,最后一个是最不可能是例子样本。如果样本按此顺序逐一作为例子预测,则可以每次计算当前的全检查率和准确率,并以全检查率为横轴和准确率为纵轴绘制图纸,获得的准确率-全检查率曲线为P-R曲线。
也就是说,预测每个样本为例的概率,然后根据预测的概率对所有样本进行排序,然后将排序后的样本作为例子进行预测,以获得每个预测的全面检查率和准确率。依次以样本为例的过程实际上是逐渐降低样本为例的概率的域值。通过降低域值,将预测更多样本为例,从而提高全面检查率。相对准确率可能会降低。随着负样本的增加,全面检查率会缓慢甚至没有提高,精度会更快。
相反,sklearn的计算过程和定义是按照概率从小到大增加的顺序计算的,分别为查准率和查全率增加了1和0。
#coding:utf-8
importmatplotlib
importnumpyasnp
importmatplotlib.pyplotasplt
fromsklearn.metricsimportprecision_recall_curve
fromsklearn.utils.fixesimportsignature
plt.figure("P-RCurve")
plt.title('Precision/RecallCurve')
plt.xlabel('Recall')
plt.ylabel('Precision')
#y_true是实际样本类别,y_scores作为样本的概率为例
y_true=np.array(1、1、1、1、1、1、1、1、1、1、1、1、0、0、0、1、0、0、0、0)
y_scores=np.array([0.9、0.75、0.47、0.47、0.55、0.56、0.56、0.62、0.5、0.86、0.86、0.47、0.47、0.47、0.47、0.47、0.47、0.47、0.4、0.5、0.5、0.4、0.5、0.5、0.5
precision,recall,thresholds=precision_recall_curve(y_true,y_scores)
#print(precision)
#print(recall)
#print(thresholds)
plt.plot(recall,precision)
plt.show()
下一篇 Python怎么输出图片且不保存
