使用Python将不同模型得到的ROC曲线画在同一张图中的示例代码
时间: 2024-02-27 20:57:42 浏览: 123
好的,下面提供一个完整的示例代码,假设有两个模型分别为`model1`和`model2`,它们预测的概率值为`y_score1`和`y_score2`,真实标签为`y_true`。
```python
from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt
# 计算 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)
# 画 ROC 曲线
plt.figure(figsize=(8,6), dpi=100)
plt.plot(fpr1, tpr1, color='darkorange', lw=2, label='ROC curve (AUC = %0.2f)' % roc_auc1)
plt.plot(fpr2, tpr2, color='green', lw=2, label='ROC curve (AUC = %0.2f)' % roc_auc2)
plt.plot([0, 1], [0, 1], color='navy', lw=2, linestyle='--')
plt.xlim([0.0, 1.0])
plt.ylim([0.0, 1.05])
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic')
plt.legend(loc="lower right")
plt.show()
```
这里我们使用了`sklearn`库中的`roc_curve`和`auc`函数来计算每个模型的ROC曲线和AUC值,使用`matplotlib`库来画出ROC曲线并将它们显示在同一张图中。你可以根据需要修改代码来适应你的具体情况,比如增加更多模型的ROC曲线。
阅读全文