在此代码的基础上画出ROC曲线该怎么写
时间: 2024-02-25 21:57:42 浏览: 29
为了画出ROC曲线,你可以首先使用sklearn.metrics模块中的roc_curve函数计算出每个标签的ROC曲线数据(假正率、真正率和阈值)。然后,使用matplotlib.pyplot模块中的plot函数绘制出每个标签的ROC曲线。最后,可以使用matplotlib.pyplot模块中的legend、xlabel和ylabel函数添加图例和坐标轴标签。以下是一个可能的代码示例:
```python
from sklearn.metrics import roc_curve, auc
import matplotlib.pyplot as plt
# 在测试集上预测每个标签的概率
y_prob = model.predict_proba(X_test)
# 计算每个标签的ROC曲线数据
fpr = {}
tpr = {}
roc_auc = {}
for i in range(n_classes):
fpr[i], tpr[i], _ = roc_curve(y_test[:, i], y_prob[:, i])
roc_auc[i] = auc(fpr[i], tpr[i])
# 绘制每个标签的ROC曲线
plt.figure(figsize=(8, 8), dpi=300)
colors = ['blue', 'red', 'green', 'orange', 'purple'] # 指定每个标签的颜色
for i, color in zip(range(n_classes), colors):
plt.plot(fpr[i], tpr[i], color=color, lw=2,
label='ROC curve of class {0} (area = {1:0.2f})'
''.format(i, roc_auc[i]))
# 绘制对角线(随机猜测的ROC曲线)
plt.plot([0, 1], [0, 1], 'k--', lw=2)
# 添加图例和坐标轴标签
plt.legend(loc="lower right")
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.show()
```
在这个示例中,我们首先使用model.predict_proba函数在测试集上预测每个标签的概率。然后,使用循环计算每个标签的ROC曲线数据,包括假正率(fpr)、真正率(tpr)和曲线下面积(roc_auc)。接下来,使用循环和matplotlib.pyplot模块中的plot函数绘制每个标签的ROC曲线,并使用matplotlib.pyplot模块中的legend、xlabel和ylabel函数添加图例和坐标轴标签。最后,使用matplotlib.pyplot模块中的show函数显示绘制的ROC曲线。