1 问题
如何利用python设计程序,绘制ROC曲线。
2 方法
绘制ROC曲线主要基于python 的sklearn库中的两个函数,roc_curv和auc两个函数。roc_curv 用于计算出fpr(假阳性率)和tpr(真阳性率)auc用于计算曲线下面积,输入为fpr、和tpr
代码清单 1
# 导包
import numpy as np
import matplotlib.pyplot as plt
from sklearn.metrics import roc_curve, auc
# 计算
fpr, tpr, thread = roc_curve(y_test, y_score)
roc_auc[i] = auc(fpr, tpr)
# 绘图
plt.figure()
lw = 2
plt.plot(fpr, tpr, color='darkorange',
lw=lw, label='ROC curve (area = %0.2f)' % roc_auc)
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.savefig('roc.png',)
plt.show()
3 结语
本文介绍了用python实现绘制ROC曲线,并且进行了拓展,使该程序能应用于更多相似的问题。ROC曲线可以用来评估分类器的输出质量。 ROC曲线Y轴为真阳性率,X轴为假阳性率。这意味着曲线的左上角是“理想”点——假阳性率为0,真阳性率为1。 上述的理想情况实际中很难存在,但它确实表示面积下曲线(AUC)越大通常分类效率越好。 ROC曲线的“陡度”也很重要,坡度越大,则越有降低假阳性率,升高真阳性率的趋势。 ROC曲线通常用于二元分类中研究分类器的输出(也可在多分类中使用,需要对标签进行二值化【比如ABC三类,进行分类时将标签进行二值化处理[A(1)、BC(0)】、【B(1)、AC(0)】