机器学习中的AUC是什么?

工作中经常要和香饽饽算法工程师对接。作为一名开发狗,虽然“抽特征、做模型、玄学调参、搞策略”这四部曲都不太懂,但是为了能够正常交流,同时也不至于被忽悠,那么,算法同学嘴里是不时蹦出领域名词儿还是要了解一下的啦。

今天就说说算法同学经常挂在嘴边的一个指标——AUC。

AUC ROC简介

AUC是Area Under Curve的简写,这里的Curve其实是指ROC曲线。

ROC曲线又是什么鬼?ROC全称receiver operating characteristic curve,翻译为受试者工作特性曲线。先不用管这个不明所以的鬼翻译,直接看ROC曲线的横纵坐标都是啥。

ROC曲线的X轴是假阳性率(FP),Y轴为真阳性率(TP)。

从这里也可以看出,AUC只能用于二分类模型的评估。

那么关于FP和TP,我们找一些直观的感受看看:

到这里,我遇到了我在看ROC曲线时的一个不解的地方:

为什么对于1个二分类算法,能够画出一条ROC曲线(无数个点)出来呢?ROC曲线的每一点代表什么含义呢?

看了ROC曲线的具体绘制过程,应该就可以理解了。

ROC曲线的绘制

我们在使用一个二分类算法做预测时,一般的是会给出样本属于正样本的概率Pi。

然后,我们会选定一个阈值P0,当Pi>=P0时,预测为正样本;当Pi

至此,选定一个算法A,每选定一个阈值P0,都可以算出FP/TP,也就对应了ROC曲线上的一个点。

那具体绘制ROC曲线时,这些阈值如何选取,FP/TP组合成的所有点又该如何排列呢?

具体流程是这样:

将所有测试样本的预测概率Pi按照从大到小排列

从大到小,依次取各个Pi的值作为阈值。

考虑P0=P1的情况,这时只有一个样本被预测为1,其余所有样本都被预测为0。这里FP和TP都会很小,所以这个点会接近左下角。

随着阈值P0不断变小(条件放宽),预测为1的样本越来越多,FP和TP都应该越来越大。表现为ROC曲线由左下角向右上角不断蔓延。

考虑P0=Pn的情况,这时所有样本都被预测为1。这时FP=TP=1.0,这时ROC曲线达到右上角。

所以,ROC曲线其实有三个要素:算法A,测试数据D,阈值集合P。它评价了一个算法A,在测试数据D上,选取不同的阈值P时,假阳性率和真阳性率的表现。

当然,真阳性率越大,假阳性率越小越好。所以表现为ROC曲线越上凸,算法的分类效果越优秀。

AUC(ROC曲线下的面积),就可以用来评价ROC曲线的上凸程度。

一般,AUC的值是要大于0.5的,因为直接使用正负样本的自然概率来预测,得到的AUC就是0.5(可以思考下为什么哈)。

另外,还有一个指标logloss,也经常和AUC一起用于评价分类效果。有兴趣的同学可以对比着学习下。

题外话:最近微信公众号改版,向着信息流靠拢了。不知道是好事坏事。我还是会尽量每周六中午11点45分推送一篇文章,大家到时在信息流里多找找哈,别把茄子君忘了~

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

同媒体快讯

扫码关注腾讯云开发者

领取腾讯云代金券