python绘制插值曲线_如何在python中用插值绘制精确召回曲线?

这段代码展示了如何使用Python进行精度与召回率曲线的优化,通过反向迭代删除精度中的下降点,并根据BennettBrown的方法绘制垂直和水平线。示例中创建了一个随机样本,然后对精度进行修剪,最后用matplotlib库绘制了修剪后的精度与召回率曲线,同时显示了原始曲线作为对比。
摘要由CSDN通过智能技术生成

可以执行反向迭代来删除precision中增加的部分。然后,根据Bennett Brown对vertical & horizontal lines in matplotlib的回答,可以绘制垂直线和水平线。

下面是一个示例代码:import numpy as np

import matplotlib.pyplot as plt

#just a dummy sample

recall=np.linspace(0.0,1.0,num=42)

precision=np.random.rand(42)*(1.-recall)

precision2=precision.copy()

i=recall.shape[0]-2

# interpolation...

while i>=0:

if precision[i+1]>precision[i]:

precision[i]=precision[i+1]

i=i-1

# plotting...

fig, ax = plt.subplots()

for i in range(recall.shape[0]-1):

ax.plot((recall[i],recall[i]),(precision[i],precision[i+1]),'k-',label='',color='red') #vertical

ax.plot((recall[i],recall[i+1]),(precision[i+1],precision[i+1]),'k-',label='',color='red') #horizontal

ax.plot(recall,precision2,'k--',color='blue')

#ax.legend()

ax.set_xlabel("recall")

ax.set_ylabel("precision")

plt.savefig('fig.jpg')

fig.show()

结果是:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值