使用Python对不同模型绘制ROC曲线画在同一张图中
时间: 2024-02-21 14:01:45 浏览: 133
利用Python画ROC曲线和AUC值计算
5星 · 资源好评率100%
好的,可以使用Python中的`matplotlib`和`scikit-learn`库来绘制ROC曲线并画在同一张图中。
首先,我们需要导入需要的库和模型数据:
```python
import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve, auc
# 模型1的预测结果,包括预测标签和预测概率
y_pred_1 = ...
y_score_1 = ...
# 模型2的预测结果,包括预测标签和预测概率
y_pred_2 = ...
y_score_2 = ...
# 真实标签
y_true = ...
```
接着,我们可以使用`roc_curve`函数计算每个模型的FPR和TPR:
```python
# 计算模型1的FPR和TPR
fpr_1, tpr_1, _ = roc_curve(y_true, y_score_1)
# 计算模型2的FPR和TPR
fpr_2, tpr_2, _ = roc_curve(y_true, y_score_2)
```
然后,我们可以使用`auc`函数计算每个模型的AUC:
```python
# 计算模型1的AUC
roc_auc_1 = auc(fpr_1, tpr_1)
# 计算模型2的AUC
roc_auc_2 = auc(fpr_2, tpr_2)
```
最后,我们可以将两个模型的ROC曲线画在同一张图中:
```python
# 绘制ROC曲线
plt.figure()
plt.plot(fpr_1, tpr_1, color='darkorange', lw=2, label='Model 1 (AUC = %0.2f)' % roc_auc_1)
plt.plot(fpr_2, tpr_2, color='green', lw=2, label='Model 2 (AUC = %0.2f)' % roc_auc_2)
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()
```
这样,就可以绘制出两个模型的ROC曲线,并将它们画在同一张图中了。
阅读全文