【机器学习】ROC曲线和AUC面积

  • Post author:
  • Post category:其他


ROC曲线的横坐标轴是FPR(False Positive Rate),纵坐标轴是TPR(True Positive Rate),对应于下面的混淆矩阵(fusion matrix):





T

P

R

=

T

P

T

P

+

F

N

TPR = \frac{TP}{TP+FN}






T


P


R




=



















T


P




+




F


N














T


P























TP指的是正类被分为正类的个数,FN指的是正类被分为负类的个数(错误的负类),所以TP+FN指的就是所有正类的个数,这样这个比值的意义就是

所有正类样本中被正确分类为正类的比值

。结合异常点检测的例子(异常点是正类,正常点是负类)就是,异常点中被正确分为异常点的比值。





F

P

R

=

F

P

F

P

+

T

N

FPR = \frac{FP}{FP+TN}






F


P


R




=



















F


P




+




T


N














F


P

























FP指的是负类被分为正类的个数(错误的正类),TN指的是负类被分为负类的个数,所以FP+TN就是所有负类的个数,这样这个比值的意义就是

所有负类样本中被错误分为正类的比值

。还是结合异常点检测的例子就是,正常点中被错误地分为异常点的比值。

再用在知乎上看到的一句来升华:AUC指的是分类器输出该正样本为正的那个概率值 比 分类器输出该负样本为正的那个概率值 要大的可能性。

因此,总的来说TPR和FPR分别

可以看出TPR和FPR分别是TP和FP在其所在混淆矩阵的所在列的比例。

ROC曲线的作用是

为分类器选择最优阈值

,如一个二分类的分类器对一个样本的的分类score是0.6,阈值设置为大于0.5时分类为正类,那么这个样本就是正类。而如果阈值设置为大于0.7时分类为正类,那么自然这个样本就被分为了负类。这样不同阈值得到的TPR和FPR自然是不一样的,但是总有一个阈值是最合适的。

所以,在ROC曲线中,一般认为

ROC曲线中最靠近左上角的点是分类错误最少的最优阈值

。另外,所取的阈值越多,采样的点也就越多,从而形成的ROC曲线也就越平滑。如下图中分别是对应了TPR和FPR在(0,0)、(0.5,0.75)以及(1,1)条件下形成的ROC曲线。



AUC即是ROC曲线下方区域构成的面积(Area Under ROC Curve)。AUC面积越大,模型的分类效果越好。

ROC和AUC一般常用于

label unbanlance

的数据的分类指标中。如在异常点检测中,异常点,也就是正类,常常很少。如100个样本点中只有一个异常点,我们把所有数据都分类为负类,得到的accuracy是99%,但是显然accuracy并不是我们要的衡量指标。而通过ROC曲线得到的TPR和FPR都是0(TP和FP都是0),这样得到的AUC也就是0了。

文中图片来源:如何理解机器学习和统计中的AUC? – 无涯的回答 – 知乎

https://www.zhihu.com/question/39840928/answer/241440370



版权声明:本文为FrankieHello原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。