你好,我是zhenguo
ROC曲线是评估机器学习模型分类能力最常用的一条曲线,那么你知道:
  • ROC曲线x,y轴各代表什么含义?
  • ROC曲线上的一个点代表什么含义?
这两个问题在面试中也常会被问道,不妨抽几分钟时间理解我下面的这篇小总结。

二分类混淆矩阵

下面是二分类的混淆矩阵,这个不难理解,P或N代表结果,T或F代表预测对与否:
基于二分类混淆矩阵,我们再来探讨关于ROC曲线上面提出的两个问题。

ROC曲线x,y轴各代表什么含义?

x轴是FPR,y轴是TPR,如下图所示:
其中:
x轴的FPR,即假阳率:
想象为:在所有的恶性肿瘤中,被预测成良性的比例,显然我们希望这个比例越小越好
y轴的TPR就是Recall值,即真阳率:
想象为:在所有良性肿瘤中,被预测为良性的比例,显然我们希望这个比例越大越好

ROC曲线上的四个特殊点

对于二分类,要么为0,要么为1,那么我们可以无脑的预测所有样本为0. 此时,不管是FP,还是TP都为0,因为我们没有预测哪怕一个样本为P,即为1.
故,我们得到一个特殊点(FPR=0, TPR=0),即(0, 0):
这个点虽特殊,但却是任何一条ROC曲线都会包括的!
同样的,如果我们无脑的预测所有样本为1,此时不管是FN,还是TN都为0,所以我们又得到一个特殊点(FPR=1, TPR=1),即(1,1):
同样,此点虽特殊,但却是任何一条ROC曲线都会包括的!
还有2个特殊点,分别对应全部预测对,或全部预测错!如果运气爆棚,全部猜对,此时就是没有一个预测错的,自然:(FPR=0, TPR=1);如果运气糟糕透顶,全部预测错误,自然:(FPR=1, TPR=0)
此两点虽特殊,但却未必一定包括在ROC曲线中。

ROC曲线上的点到底代表什么含义?

在二分类(0,1)的模型中,一般我们最后的输出是一个概率值,表示结果是1的概率。
那么我们最后怎么决定输入的x是属于0或1呢?
我们需要一个阈值,超过这个阈值则归类为1,低于这个阈值就归类为0。
所以,不同的阈值会导致分类的结果不同,也就是混淆矩阵不一样了,FPR和TPR也就不一样了。
所以当阈值从0开始慢慢移动到1的过程,就会形成很多对(FPR, TPR)的值,将它们画在坐标系上,就是所谓的ROC曲线。
其中阈值为0时,即对应:无脑的预测所有样本为1;当阈值为1时,即对应:无脑的预测所有样本为0。也就是对应的上节提到一定会出现的2个特殊点。
最后如果两种模型得到中间点如下图所示,那么绿色对应模型分类能力好于黄色对应模型:
最后一句话:ROC是用来表征分类器分类能力的曲线!
继续阅读
阅读原文