1.4.5 ROC与AUC
1.4.5 roc与auc
roc(receiver operating characteristic,受试者工作特征)曲线是以真阳性率为纵坐标、假阳性率为横坐标绘制的曲线。它是反映灵敏性和特效性连续变量的综合指标。一般认为roc越光滑说明分类算法过拟合的概率越低,越接近左上角说明分类性能越好。auc(area under the receiver operating characteristic)曲线就是量化衡量roc分类性能的指标,如图1-33所示,物理含义是roc曲线的面积,auc越大越好。
图1-33 roc曲线示例
绘制roc曲线的方法如下:
f_pos, t_pos, thresh = metrics.roc_curve(test_y, pred_y)
auc_area = metrics.auc(f_pos, t_pos)
plt.plot(f_pos, t_pos, 'darkorange', lw=2, label='auc = %.2f' % auc_area)
plt.legend(loc='lower right')
plt.plot([0, 1], [0, 1], color='navy', linestyle='--')
plt.title('roc')
plt.ylabel('true pos rate')
plt.xlabel('false pos rate')
plt.show()
在scikit-learn中,可以使用如下代码获得auc值:
print "auc:"
print metrics.roc_auc_score(test_y, pred_y)
计算获得的auc值为0.70:
auc:
0.696992481203
roc(receiver operating characteristic,受试者工作特征)曲线是以真阳性率为纵坐标、假阳性率为横坐标绘制的曲线。它是反映灵敏性和特效性连续变量的综合指标。一般认为roc越光滑说明分类算法过拟合的概率越低,越接近左上角说明分类性能越好。auc(area under the receiver operating characteristic)曲线就是量化衡量roc分类性能的指标,如图1-33所示,物理含义是roc曲线的面积,auc越大越好。
图1-33 roc曲线示例
绘制roc曲线的方法如下:
f_pos, t_pos, thresh = metrics.roc_curve(test_y, pred_y)
auc_area = metrics.auc(f_pos, t_pos)
plt.plot(f_pos, t_pos, 'darkorange', lw=2, label='auc = %.2f' % auc_area)
plt.legend(loc='lower right')
plt.plot([0, 1], [0, 1], color='navy', linestyle='--')
plt.title('roc')
plt.ylabel('true pos rate')
plt.xlabel('false pos rate')
plt.show()
在scikit-learn中,可以使用如下代码获得auc值:
print "auc:"
print metrics.roc_auc_score(test_y, pred_y)
计算获得的auc值为0.70:
auc:
0.696992481203