为了账号安全,请及时绑定邮箱和手机立即绑定

分类模型的评估(二)

标签:
机器学习

我们讨论了针对某一给定分类结果的评估指标,也就是查准率(Precision)、查全率(Recall)以及综合两者的F-score。

遗憾的是,这些指标并不能很好地评估一个二分类模型的效果,因为在人工智能领域,绝大多数模型都能产生好多份分类结果。关于这一点,可以将模型想象成一个吃鸡游戏的职业玩家,一个玩家可以玩很多局吃鸡比赛。那么对于每一局吃鸡游戏的结果,可以用最终排名或者杀敌数来评判。但是对于一个玩家,显然需要定义新的指标(综合考虑各局游戏的结果,给玩家一个统一的评判标准),比如平均杀敌数、吃鸡的比例等。

类似地,为了更好、更综合地评判一个模型的效果,学术界设计了新的评估指标。它们就是这篇文章将重点讨论的ROC曲线以及AUC。

一、逻辑回归

为了更加方便地讨论各个评估指标,我们首先来介绍一个十分常见的分类模型:逻辑回归。这个模型虽然是解决分类问题的模型,但是它的模型输出是y_i = 1的概率(与上一篇文章一样,我们使用变量y_i来表示真实的结果,\hat{y}_i表示预测的结果。其中y_i = 1或者y_i = 0)。具体来讲,逻辑回归的模型公式如下,其中\hat{\beta}是模型参数的估计值。

\hat{P}(y_i = 1) = \frac{1}{1 + e^{-X_i\hat{\beta}}}\tag{1}

但这只是一个有关概率的预测值,而我们真正想要的是\hat{y}_i,也就是对y_i的预测,这两者之间还差最后一步。这时候就需要人为选定一个阈值\alpha(当然大部分情况下,这个值等于0.5),当\hat{P}(y_i = 1) > \alpha时,才得到\hat{y}_i = 1的预测,具体地如公式(2)所示。

\hat{y_i} = \begin{cases}1, \hat{P}(y_i = 1) > \alpha \\0, else \end{cases}\tag{2}

以逻辑回归为例,我们就可以很清楚地看到,为什么说同一个模型可以产生很多份不同的分类结果了:调整预测阈值α可以得到不同的分类结果。

二、ROC空间

现在开始探讨如何评估二元分类模型。在上一篇文章中,我们讨论了查准查拳率,仔细体会查全率的定义:Recall = TP/(TP + FN),公式中的分母为所有表白成功的幸福人儿,即数据中y_i = 1的数目。这个数字是固定的,与模型无关的,当然公式中的分子是受模型影响的。但是对于查准率:Precision = TP/(TP + FP),公式中的分母为预测结果中,表白成功的幸福人儿,即\hat{y}_i = 1的数目。也就是说对于查准率,分子和分母都受模型的影响。因此当查准率变化时,很难分析清楚变化是来源于哪一部分。这影响了对模型效果的进一步分析。

为了解决这个问题,可以效仿查全率:分母固定,预测结果只影响评估指标的分子。于是,我们定义了真阳性率(True Positive Rate ,TPR)和伪阳性率(False Positive Rate,FPR)这两个指标。使用上篇文章中表1定义的记号,这两个指标的具体定义如公式(3),相应的直观表示可参考图2。

TPR = \frac{TP}{TP + FN},\quad FPR = \frac{FP}{FP + TN} \tag{3}

根据公式可以得到,真阳性率其实就是查全率。它表示针对表白成功的幸福人儿有多大比例,模型对他们的预测结果也是表白成功,它是衡量模型准确程度的指标。而伪阳性率表示针对表白失败的哎们有多大比例,模型对他们的预测结果却是表白成功,它是衡量模型错误程度的指标。对于一份预测结果,显然希望它的真阳性率越高越好,而伪阳性率越低越好。

定义好真伪阳性率这两个评估指标后,我们考虑将它们图形化:以伪阳性率(False Positive Rate)为横轴、真阳性率(True Positive Rate)为纵轴画一个长度为1的正方形,形成所谓的ROC空间。那么对于一份预测结果,根据相应的真伪阳性率,可以将它表示为ROC空间中的一点,如图1所示。

webp

图1

关于ROC空间,有以下几点值得注意。

  • 在ROC空间里,离左上角越近的点预测准确率越高。比如图5-19中的A、B两点,B点在A点的左上方,拥有更高的正确率和更低的错误率。因此它代表更好的预测结果。图中正方形左上角的点表示预测结果与真实情况完全一致,是一个完美的预测。

  • 假设对于每一个数据点i,有60%的概率预测\hat{y}_i = 1;有40%的概率预测\hat{y}_i = 0。这完全是一个随机分类的预测结果。它的真伪阳性率都为60%,对应着图中的D点。以此类推,可以得到,图中的虚线(即正方形的对角线)表示所有随机分类的预测结果。

  • 显而易见,随机分类只是以一定概率猜测结果,没有任何的预测功能。这在理论上是最差的预测方式。但注意到图中的F点,它位于对角线的右下方,表示预测效果比随机分类更差。这是因为它的结果“搞反”了:只要依照F的结论做相反预测,得到新的预测结果E。E的预测效果更好,并且好于随机分类。从图像上来看,E是F以对角线为中线的镜像。

与查准查全率往往成反比不一样。真伪阳性率是正相关关系。比如对于一个逻辑回归模型,降低阈值时,这两个指标都会升高,整个过程如图2所示。直观一些理解,真阳性率是做预测得到的回报,而伪阳性率相当于所需付出的代价。就像生活一样,想要的回报越大,那么付出的代价也就越大。

webp

图2

三、ROC曲线和AUC

如果将模型的阈值从0缓慢增加到1,并把每个阈值对应的预测结果记录在图上,就可以得到所谓的ROC曲线(接收者操作特征曲线,Receiver Operating Characteristic Curve),如图3所示。ROC曲线下的面积,如图中的灰色部分,被称为AUC。它是一个很重要的评估指标。简单来讲,AUC越大,模型的预测效果越好。

webp

图3

我们可以更深入地来探讨AUC所代表的意义(前方预警,下面部分本篇文章的精华)。在抽象的数学讨论之前,先来看一个简单的直观例子:数据集里一共有4个数据,分为被记为1、2、3、4。这些数据按y_i的取值被分为两组:第一组包含数据1、2,即y_1 = y_2 = 1;第二组包含数据3、4,即y_3 = y_4 = 0。假设某个逻辑回归模型对它们的直接预测结果记为P_1,P_2,P_3,P_4,我们可以称这些结果为数据的得分。其中P_1 = 0.8,P_2 = 0.4,而P_3 = 0.5,P_4 = 0.1。所以模型阈值\alpha与最终预测结果所对应的真伪阳性率如表1所示。

webp

表1

将上面的结果表示在ROC空间里可以得到如图4所示的图形。其中AUC等于0.75,这刚好等于第一组数据得分大于第二组数据得分的概率。

回到更一般的情况。第一节里提到,逻辑回归模型的直接预测结果是事件发生的概率,即\hat{P}(y_i = 1)。将这个预测值称为事件的得分。现在随机选取两个数据点k,l,其中y_k = 1,而y_l = 0。如果在预测结果中,k点的得分大于l点的得分,即\hat{P}(y_k = 1) > \hat{P}(y_l = 1),这表示模型对这两个点的直接预测结果是正确的(当然,由于模型阈值的原因,最终预测结果不一定正确)。而AUC就表示这种情况发生的概率,即k点得分大于l点得分的概率。换句话说,AUC可以被视为模型预测正确的概率。用数学公式可以表示为:

AUC = P(\hat{P}(y_k = 1) > \hat{P}(y_l = 1)) \tag{4}

webp

图4

可以看到,AUC与之前定义的查准查全率不同,它的取值不依赖模型阈值α,而完全取决于模型本身。因此它可以被认为是更加全面的模型评估指标。另外,虽然传统的AUC是定义在二元分类问题上的。但如果如公式(4)那样,从概率的角度理解它,可以帮助我们将这一指标推广到更多应用场景,比如大规模推荐系统(在这些场景里,可以通过随机抽样的方式估算公式(4)的概率值,而这个概率值就是AUC)限于篇幅,具体细节这里就不做进一步展开了。

四、总结

由于大部分人工智能分类模型是所谓的评分模型,也就是直接的模型结果是类别的概率而非类别本身,因此,查准、查全、F-score这种分类结果的评估指标并不能很好地评判模型效果。而AUC则不同,它可以很全面地评判一个模型,因为它通过构造ROC曲线将所有可能的分类结果都综合考虑了。



作者:tgbaggio
链接:https://www.jianshu.com/p/b8df39081eca


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消