python绘制多条pr曲线的代码
时间: 2023-09-05 19:01:48 浏览: 309
main_roc_python_AUC_PR曲线_ROC曲线_
5星 · 资源好评率100%
Python绘制多条PR曲线的代码可以使用matplotlib库实现。下面是一个示例代码:
```python
import matplotlib.pyplot as plt
import numpy as np
# 定义不同类别的真实标签和预测得分
labels = [np.array([1, 0, 1, 1, 0]), np.array([1, 1, 0, 0, 1])]
scores = [np.array([0.8, 0.6, 0.4, 0.3, 0.2]), np.array([0.9, 0.7, 0.5, 0.4, 0.1])]
# 计算每个类别的PR曲线数据
precision = []
recall = []
for i in range(len(labels)):
# 根据预测得分排序
sorted_indices = np.argsort(-scores[i])
sorted_labels = labels[i][sorted_indices]
# 计算累积真正例和累积正例的个数
cum_true_positive = np.cumsum(sorted_labels)
cum_positive = np.arange(1, len(sorted_labels) + 1)
# 计算精确率和召回率
prec = cum_true_positive / cum_positive
rec = cum_true_positive / np.sum(sorted_labels)
# 添加到列表中
precision.append(prec.tolist())
recall.append(rec.tolist())
# 绘制PR曲线
for i in range(len(labels)):
plt.plot(recall[i], precision[i], label='PR Curve {}'.format(i+1))
# 添加标题和图例
plt.title('PR Curves')
plt.xlabel('Recall')
plt.ylabel('Precision')
plt.legend(loc='lower left')
# 显示图形
plt.show()
```
这段代码中,我们定义了两个类别的真实标签和预测得分,并根据它们计算了每个类别的PR曲线数据。然后使用matplotlib库中的plot函数绘制了这些PR曲线,并添加了标题和图例。最后使用show函数展示了图形。
阅读全文