python绘制ROC曲线(多分类)
时间: 2023-10-08 07:04:35 浏览: 72
在Python中绘制ROC曲线(多分类)可以使用scikit-learn库中的函数。以下是绘制ROC曲线的示例代码:
```python
from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt
# y_test是测试集中的真实标签,y_score是预测得分
fpr = dict()
tpr = dict()
roc_auc = dict()
n_classes = len(np.unique(y_test))
for i in range(n_classes):
fpr[i], tpr[i], _ = roc_curve(y_test[:, i], y_score[:, i])
roc_auc[i] = auc(fpr[i], tpr[i])
# 计算微平均ROC曲线和面积
fpr["micro"], tpr["micro"], _ = roc_curve(y_test.ravel(), y_score.ravel())
roc_auc["micro"] = auc(fpr["micro"], tpr["micro"])
# 绘制ROC曲线
plt.figure()
lw = 2
plt.plot(fpr[2], tpr[2], color='darkorange',
lw=lw, label='ROC curve (area = %0.2f)' % roc_auc[2])
plt.plot([0, 1], [0, 1], color='navy', lw=lw, 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 example')
plt.legend(loc="lower right")
plt.show()
```
在这个例子中,我们假设有三个类别,因此需要绘制三个ROC曲线。首先,我们使用`roc_curve`函数计算每个类别的假阳性率(FPR)、真阳性率(TPR)和阈值。然后,我们使用`auc`函数计算每个类别的ROC曲线下面积。最后,我们绘制每个类别的ROC曲线和微平均ROC曲线。
阅读全文