有3组Prediction.csv和labels.csvpython代码:画三个ROC曲线
时间: 2024-02-16 09:00:25 浏览: 81
利用Python画ROC曲线和AUC值计算
5星 · 资源好评率100%
以下是 Python 代码,用于画三个 ROC 曲线,假设三组数据分别为 prediction1.csv、prediction2.csv 和 prediction3.csv,标签数据分别为 labels1.csv、labels2.csv 和 labels3.csv:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve, auc
# 读取数据
y_true1 = np.loadtxt('labels1.csv', delimiter=',')
y_score1 = np.loadtxt('prediction1.csv', delimiter=',')
y_true2 = np.loadtxt('labels2.csv', delimiter=',')
y_score2 = np.loadtxt('prediction2.csv', delimiter=',')
y_true3 = np.loadtxt('labels3.csv', delimiter=',')
y_score3 = np.loadtxt('prediction3.csv', delimiter=',')
# 计算 ROC 曲线和 AUC 值
fpr1, tpr1, _ = roc_curve(y_true1, y_score1)
roc_auc1 = auc(fpr1, tpr1)
fpr2, tpr2, _ = roc_curve(y_true2, y_score2)
roc_auc2 = auc(fpr2, tpr2)
fpr3, tpr3, _ = roc_curve(y_true3, y_score3)
roc_auc3 = auc(fpr3, tpr3)
# 画图
plt.figure(figsize=(8, 6))
plt.plot(fpr1, tpr1, label='ROC curve 1 (area = %0.2f)' % roc_auc1)
plt.plot(fpr2, tpr2, label='ROC curve 2 (area = %0.2f)' % roc_auc2)
plt.plot(fpr3, tpr3, label='ROC curve 3 (area = %0.2f)' % roc_auc3)
plt.plot([0, 1], [0, 1], 'k--')
plt.xlim([-0.05, 1.05])
plt.ylim([-0.05, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver operating characteristic example')
plt.legend(loc="lower right")
plt.show()
```
这段代码首先使用 `np.loadtxt()` 函数从文件中读取数据,然后计算了每个分类器的 ROC 曲线和 AUC 值。最后,将三个 ROC 曲线绘制在同一张图表上,方便比较它们的性能。请确保 prediction.csv 和 labels.csv 文件的格式正确,并且在正确的位置上。
阅读全文