python代码:画三个ROC曲线
时间: 2023-07-09 22:13:53 浏览: 109
以下是 Python 代码,用于画三个 ROC 曲线:
```python
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve, auc
# 生成随机数据
np.random.seed(0)
y_true = np.random.randint(0, 2, size=100)
y_score1 = np.random.rand(100)
y_score2 = np.random.rand(100)
y_score3 = np.random.rand(100)
# 计算 ROC 曲线和 AUC 值
fpr1, tpr1, _ = roc_curve(y_true, y_score1)
roc_auc1 = auc(fpr1, tpr1)
fpr2, tpr2, _ = roc_curve(y_true, y_score2)
roc_auc2 = auc(fpr2, tpr2)
fpr3, tpr3, _ = roc_curve(y_true, y_score3)
roc_auc3 = auc(fpr3, tpr3)
# 画图
plt.figure(figsize=(8, 6))
plt.plot(fpr1, tpr1, label='ROC curve (area = %0.2f)' % roc_auc1)
plt.plot(fpr2, tpr2, label='ROC curve (area = %0.2f)' % roc_auc2)
plt.plot(fpr3, tpr3, label='ROC curve (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()
```
这段代码生成了三个随机的分类器输出(y_score1,y_score2,y_score3),并计算了每个分类器的 ROC 曲线和 AUC 值。最后,将三个 ROC 曲线绘制在同一张图表上,方便比较它们的性能。
阅读全文