在上一篇文章里(《分类模型的评估(一)》),我们讨论了针对某一给定分类结果的评估指标,也就是查准率(Precision)、查全率(Recall)以及综合两者的F-score。
遗憾的是,这些指标并不能很好地评估一个二分类模型的效果,因为在人工智能领域,绝大多数模型都能产生好多份分类结果。关于这一点,可以将模型想象成一个吃鸡游戏的职业玩家,一个玩家可以玩很多局吃鸡比赛。那么对于每一局吃鸡游戏的结果,可以用最终排名或者杀敌数来评判。但是对于一个玩家,显然需要定义新的指标(综合考虑各局游戏的结果,给玩家一个统一的评判标准),比如平均杀敌数、吃鸡的比例等。
类似地,为了更好、更综合地评判一个模型的效果,学术界设计了新的评估指标。它们就是这篇文章将重点讨论的ROC曲线以及AUC。
一、逻辑回归
为了更加方便地讨论各个评估指标,我们首先来介绍一个十分常见的分类模型:逻辑回归。这个模型虽然是解决分类问题的模型,但是它的模型输出是的概率(与上一篇文章一样,我们使用变量来表示真实的结果,表示预测的结果。其中或者)。具体来讲,逻辑回归的模型公式如下,其中是模型参数的估计值。
但这只是一个有关概率的预测值,而我们真正想要的是,也就是对的预测,这两者之间还差最后一步。这时候就需要人为选定一个阈值(当然大部分情况下,这个值等于0.5),当时,才得到的预测,具体地如公式(2)所示。
以逻辑回归为例,我们就可以很清楚地看到,为什么说同一个模型可以产生很多份不同的分类结果了:调整预测阈值α可以得到不同的分类结果。
二、ROC空间
现在开始探讨如何评估二元分类模型。在上一篇文章中,我们讨论了查准查拳率,仔细体会查全率的定义:,公式中的分母为所有表白成功的幸福人儿,即数据中的数目。这个数字是固定的,与模型无关的,当然公式中的分子是受模型影响的。但是对于查准率:,公式中的分母为预测结果中,表白成功的幸福人儿,即的数目。也就是说对于查准率,分子和分母都受模型的影响。因此当查准率变化时,很难分析清楚变化是来源于哪一部分。这影响了对模型效果的进一步分析。
为了解决这个问题,可以效仿查全率:分母固定,预测结果只影响评估指标的分子。于是,我们定义了真阳性率(True Positive Rate ,TPR)和伪阳性率(False Positive Rate,FPR)这两个指标。使用上篇文章中表1定义的记号,这两个指标的具体定义如公式(3),相应的直观表示可参考图2。
根据公式可以得到,真阳性率其实就是查全率。它表示针对表白成功的幸福人儿有多大比例,模型对他们的预测结果也是表白成功,它是衡量模型准确程度的指标。而伪阳性率表示针对表白失败的哎们有多大比例,模型对他们的预测结果却是表白成功,它是衡量模型错误程度的指标。对于一份预测结果,显然希望它的真阳性率越高越好,而伪阳性率越低越好。
定义好真伪阳性率这两个评估指标后,我们考虑将它们图形化:以伪阳性率(False Positive Rate)为横轴、真阳性率(True Positive Rate)为纵轴画一个长度为1的正方形,形成所谓的ROC空间。那么对于一份预测结果,根据相应的真伪阳性率,可以将它表示为ROC空间中的一点,如图1所示。
关于ROC空间,有以下几点值得注意。
- 在ROC空间里,离左上角越近的点预测准确率越高。比如图5-19中的A、B两点,B点在A点的左上方,拥有更高的正确率和更低的错误率。因此它代表更好的预测结果。图中正方形左上角的点表示预测结果与真实情况完全一致,是一个完美的预测。
- 假设对于每一个数据点i,有60%的概率预测;有40%的概率预测。这完全是一个随机分类的预测结果。它的真伪阳性率都为60%,对应着图中的D点。以此类推,可以得到,图中的虚线(即正方形的对角线)表示所有随机分类的预测结果。
- 显而易见,随机分类只是以一定概率猜测结果,没有任何的预测功能。这在理论上是最差的预测方式。但注意到图中的F点,它位于对角线的右下方,表示预测效果比随机分类更差。这是因为它的结果“搞反”了:只要依照F的结论做相反预测,得到新的预测结果E。E的预测效果更好,并且好于随机分类。从图像上来看,E是F以对角线为中线的镜像。
与查准查全率往往成反比不一样。真伪阳性率是正相关关系。比如对于一个逻辑回归模型,降低阈值时,这两个指标都会升高,整个过程如图2所示。直观一些理解,真阳性率是做预测得到的回报,而伪阳性率相当于所需付出的代价。就像生活一样,想要的回报越大,那么付出的代价也就越大。
三、ROC曲线和AUC
如果将模型的阈值从0缓慢增加到1,并把每个阈值对应的预测结果记录在图上,就可以得到所谓的ROC曲线(接收者操作特征曲线,Receiver Operating Characteristic Curve),如图3所示。ROC曲线下的面积,如图中的灰色部分,被称为AUC。它是一个很重要的评估指标。简单来讲,AUC越大,模型的预测效果越好。
我们可以更深入地来探讨AUC所代表的意义(前方预警,下面部分本篇文章的精华)。在抽象的数学讨论之前,先来看一个简单的直观例子:数据集里一共有4个数据,分为被记为1、2、3、4。这些数据按的取值被分为两组:第一组包含数据1、2,即;第二组包含数据3、4,即。假设某个逻辑回归模型对它们的直接预测结果记为,我们可以称这些结果为数据的得分。其中,而。所以模型阈值与最终预测结果所对应的真伪阳性率如表1所示。
将上面的结果表示在ROC空间里可以得到如图4所示的图形。其中AUC等于0.75,这刚好等于第一组数据得分大于第二组数据得分的概率。
回到更一般的情况。第一节里提到,逻辑回归模型的直接预测结果是事件发生的概率,即。将这个预测值称为事件的得分。现在随机选取两个数据点k,l,其中,而。如果在预测结果中,k点的得分大于l点的得分,即,这表示模型对这两个点的直接预测结果是正确的(当然,由于模型阈值的原因,最终预测结果不一定正确)。而AUC就表示这种情况发生的概率,即k点得分大于l点得分的概率。换句话说,AUC可以被视为模型预测正确的概率。用数学公式可以表示为:
可以看到,AUC与之前定义的查准查全率不同,它的取值不依赖模型阈值α,而完全取决于模型本身。因此它可以被认为是更加全面的模型评估指标。另外,虽然传统的AUC是定义在二元分类问题上的。但如果如公式(4)那样,从概率的角度理解它,可以帮助我们将这一指标推广到更多应用场景,比如大规模推荐系统(在这些场景里,可以通过随机抽样的方式估算公式(4)的概率值,而这个概率值就是AUC)限于篇幅,具体细节这里就不做进一步展开了。
四、总结
由于大部分人工智能分类模型是所谓的评分模型,也就是直接的模型结果是类别的概率而非类别本身,因此,查准、查全、F-score这种分类结果的评估指标并不能很好地评判模型效果。而AUC则不同,它可以很全面地评判一个模型,因为它通过构造ROC曲线将所有可能的分类结果都综合考虑了。
五、广告时间
这篇文章的大部分内容参考自我的新书《精通数据科学:从线性回归到深度学习》。
李国杰院士和韩家炜教授在读过此书后,亲自为其作序,欢迎大家购买。
另外,与之相关的免费视频课程请关注这个链接