工作中经常要和香饽饽算法工程师对接。作为一名开发狗,虽然“抽特征、做模型、玄学调参、搞策略”这四部曲都不太懂,但是为了能够正常交流,同时也不至于被忽悠,那么,算法同学嘴里是不时蹦出领域名词儿还是要了解一下的啦。
今天就说说算法同学经常挂在嘴边的一个指标——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分推送一篇文章,大家到时在信息流里多找找哈,别把茄子君忘了~
领取专属 10元无门槛券
私享最新 技术干货