三分类roc曲线代码
时间: 2023-08-15 18:07:25 浏览: 104
分类器的ROC曲线
3星 · 编辑精心推荐
以下是一个用Python编写的三分类ROC曲线的示例代码:
```python
import numpy as np
from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt
# 生成随机的分类标签和概率
y_true = np.random.randint(0, 3, size=100) # 真实标签
y_prob = np.random.rand(100, 3) # 概率预测,每个样本对应三个类别的概率
# 计算每个类别的ROC曲线和AUC值
fpr = dict()
tpr = dict()
roc_auc = dict()
for i in range(3):
# 将多分类标签转换为二分类标签
y_true_binary = np.where(y_true == i, 1, 0)
# 计算ROC曲线和AUC值
fpr[i], tpr[i], _ = roc_curve(y_true_binary, y_prob[:, i])
roc_auc[i] = auc(fpr[i], tpr[i])
# 绘制ROC曲线
plt.figure()
colors = ['blue', 'red', 'green']
for i in range(3):
plt.plot(fpr[i], tpr[i], color=colors[i],
label='Class {0} (AUC = {1:0.2f})'
''.format(i, roc_auc[i]))
plt.plot([0, 1], [0, 1], color='black', 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('Multi-class ROC Curve')
plt.legend(loc="lower right")
plt.show()
```
这段代码使用了`sklearn.metrics.roc_curve`和`sklearn.metrics.auc`函数来计算每个类别的ROC曲线和AUC值,并使用`matplotlib.pyplot`库绘制了多分类的ROC曲线。你可以根据自己的数据和需求进行修改和适配。
阅读全文