ROC和AUC
提及统计模型评分指标的时候,避免不了提及ROC曲线和AUC曲线。而对于非统计学出生的机器学习工程来说,这两个曲线解释起来总觉得有点拗口。
首先推荐一个油管视频: https://www.youtube.com/watch?v=4jRBRDbJemM
其次,做个小笔记,以后好参考。
混淆矩阵以及基于混淆举证的召回率,精确度,特异度等概念都不难忘记。
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%是狗,这里有很大的信息量。这句话是很多机器学习算法的基础,不能小看,嘿嘿。
阅读作者更多原创文章,关注微信公众号: