详解机器学习中的AUC

AUC(Area Under Curve),被定义为ROC(receiveroperating characteristic curve)曲线下方的面积。这个值是用来衡量一个算法分类效果好坏的一个指标。要理解AUC我们可以从ROC曲线入手,ROC曲线又称为受试者工作特征曲线或感受性曲线。ROC的纵轴为真正率(TPR),横轴为假正率(FPR).ROC曲线的评价方法与传统的评价方法有所不同,传统的试验方法一般要把结果分为两类,而ROC曲线可以把试验结果划分为多个有序的分类,例如在评分卡模型中可以对客群划分等级,分为1到5级,分为极度可疑、可疑、中间状态、大致正常、正常五种。

那么ROC中的真正率和假正率是如何计算呢?这就需要我们去理解机器学习中的混淆矩阵。

其中TPR = TP/(TP+FN);FPR = FP/(FP+TN)

显然可以看出,TPR是代表正例被正确分为正例的概率,FPR是负例错分为正例的概率。

TPR越大越好,FPR越小越好。

在百科上有一句话是这样说的,首先AUC值是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的score值将这个正样本排在负样本前面的概率就是AUC值。可能单从字面上并不好理解,以下给出一个例子:

在评分卡模型中有5个客户,c1、c2、c3、c4、c5。他们对应的标签为1,0,0,0,1(其中1代表逾期,0代表没有逾期),现在我们根据机器学习算法训练得到一个概率值预测分别为:0.92,0.03,0.22,0.18,0.78。此时,我们根据概率的大小随机地去挑选一个客户把它划分为正类,那么根据概率的大小我们首先取到的是c1,把它划分为正类。此时TPR=1/(1+1)=0.5,FPR=0。接着,按照概率的大小取到了样本c5,把它划分为正类,TPR = 2/2 = 1,FPR = 0.依次类推,得到c3的TPR=1,FPR=1/(1+2)=0.33…。c4的TPR=1,FPR=2/(2+1)=0.66…。c2的TPR=1,FPR=3/3=1。至此,全部的样本点已经划分完毕,根据概率的大小无论你怎么取,正样本总是排在负样本的前面,AUC=1。此时的ROC曲线形状可以描述如下:

这时,算法实现了一个非常优秀的分类器。

考虑另一种情况:同是评分卡模型中的5个客户,c1、c2、c3、c4、c5。对应的类别为1,0,0,0,1。

而此时分类算法计算得到的概率分值为:0.9,0.23,0.33,0.68,0.59。那么这时按照概率的大小随机地从样本中选取一个样本把它划分为正例,先选到的样本为c1,TPR=1/2=0.5,FPR=0;c2(0.33,0.5),依次类推,可以得到c3,c4和c5的TPR和FPR。而此时的AUC并不等于1,因为此时拿到c4的概率比拿到c5的概率要大,AUC为它们新围成的面积

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181219G0GLI200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

同媒体快讯

扫码关注腾讯云开发者

领取腾讯云代金券