混淆矩阵
首先,在试图弄懂ROC和AUC概念之前,你一定要彻底理解混淆矩阵的定义!
混淆矩阵中有着Positive、Negative、True、False的概念,其意义如下:
- 称预测类别为1的为Positive(阳性)
- 预测类别为0的为Negative(阴性)
- 预测正确的为True(真)
- 预测错误的为False(伪)。
对上述概念进行组合,就产生了如下的混淆矩阵:
真正率假正率
然后,由此引出True Positive Rate(真正率)、False Positive Rate(假正率)两个概念:
T
P
R
=
T
P
T
P
+
F
N
TPR = \frac{TP}{TP + FN}
TPR=TP+FNTP
F
P
R
=
F
P
F
P
+
T
N
FPR = \frac{FP}{FP + TN}
FPR=FP+TNFP
仔细看这两个公式,发现其实TPR就是TP除以TP所在的列,FPR就是FP除以FP所在的列,二者意义如下:
TPR的意义是所有真实类别为1的样本中,预测类别为1的比例。
FPR的意义是所有真实类别为0的样本中,预测类别为1的比例。
ROC-AUC
如果上述概念都弄懂了,那么ROC曲线和AUC含义就信手拈来了:
按照定义,AUC即ROC曲线下的面积,而ROC曲线的横轴是FPR,纵轴是TPR,当二者相等时,即 y = x,如下图:
表示的意义是:对于不论真实类别是1还是0的样本,分类器预测为1的概率是相等的。
换句话说,分类器对于正例和负例毫无区分能力,和纯瞎蒙没什么区别,因此一般来说我们认为AUC的最小值为0.5。
理想情况
而我们希望分类器达到的效果是:对于真实类别为1的样本,分类器预测为1的概率(即TPR),要大于真实类别为0而预测类别为1的概率(即FPR),即y>x,因此大部分的ROC曲线长成下面这个样子:
最理想的情况下,既没有真实类别为1而错分为0的样本——TPR一直为1,也没有真实类别为0而错分为1的样本——FPR一直为0,AUC为1,这便是AUC的极大值。