首页 > 技术文章 > ROC和AUC

dagis 2021-03-02 15:46 原文

提及统计模型评分指标的时候,避免不了提及ROC曲线和AUC曲线。而对于非统计学出生的机器学习工程来说,这两个曲线解释起来总觉得有点拗口。

首先推荐一个油管视频: https://www.youtube.com/watch?v=4jRBRDbJemM

其次,做个小笔记,以后好参考。

 

混淆矩阵以及基于混淆举证的召回率,精确度,特异度等概念都不难忘记。

Image

Recall (召回率)/Sensitivity(灵敏性): TP/(TP+FN) 所有的positive中被成功预测出了多少

Precision(精确度): TP/(TP+FP) 预测出来的positive中有多少是对的

Specificity: TN/(TN+FN)预测出来的negitive中,有多少negative是真正的negative

 

ROC是plot了Recall和Specificity。这么简单一句话,其实并不是那么好理解。为什么要plot,怎么plot。这就要回到模型本身的特点上来。对于归类模型,在归类之前,模型给出的是概率,那概率阈值要取多少可以归为1呢,不同阈值会导致什么性能指标的变化呢,这就是这个曲线要服务的问题。所以ROC曲线要plot的是,当概率阈值取不同值的时候,召回率(y轴)和特异度(x轴, 但通常不是specificity本身,而是1-specificity)的关系。

 

理想目标是,召回率和特意度都要很高,但它们是一组矛盾,至于怎么取合适的值,考虑到评分标准背后的biz value,曲线本身并不能解决这个问题,可以参考之前写的文章<如何给模型评分>。

 

但曲线可以反应一个问题,就是模型对于分类对象的辨别能力。从intuition来说,ROC曲线越靠左上越好,也就是线下的面积越大,模型的区分度越高。越左边,特异度越高;越上面,召回率越高。

 

AUC(the area undeneath the curve)顾名思义就是计算ROC的面积的plot。

 

需要记住的是, ROC的一条曲线表示一个模型,而AUC一个点表示一个模型。

 

站高一点,ROC和AUC曲线和概率阈值的最终取值并没有直接联系,模型最终表现结果如何,还需要根据具体case来定概率阈值。

 

再强调一下,当ROC和AUC中提到模型的时候,模型输出的还是概率,当加上概率阈值过滤器后,才是正真的归类了。过滤后,原来的概率就丢掉了,从信息来说,是一个巨大的信息丢失。比如说猫狗分类问题,70%是狗还是99%是狗,这里有很大的信息量。这句话是很多机器学习算法的基础,不能小看,嘿嘿。

 

阅读作者更多原创文章,关注微信公众号:

Image

推荐阅读