怎么直观理解ROC AUC的概率统计意义?

  统计/机器学习 监督式学习 模型验证 开放问题    浏览次数:8281        分享
2

ROC AUC是指ROC曲线下面的面积,越接近于1越好,但是ROC AUC有什么更深层、直观的概率统计的意义吗?


 

杨业勇   2017-09-28 13:07



   3个回答 
7

ROC AUC有个非常直白的概率意义。

随机挑选一个标签为0的样本A,再随机挑选一个标签为1的样本B。你预测样本B为1的概率大于样本A为1的概率的概率就是你的ROC AUC。比较拗口,多念几遍,就通顺了,嘿嘿嘿。


我再多说几句,ROC AUC的数值与每个预测概率的数值大小无关,在乎的是每个预测概率的排序。假设我们按照概率从大到小排。如果根据你的预测结果,所有标签为1的样本都排在了标签为0的样本前面,那么你的ROC AUC就是1。

ROC AUC = 0.8的意思是说,随机挑选个标签为1的样本,它被排在随机的0样本的前面的概率是0.8。显然ROC AUC是0.5的话,就说明这个模型和随便猜没什么两样。


SofaSofa数据科学社区DS面试题库 DS面经

五道口少年   2017-09-29 11:45

3

首先要清楚二元分类的过程。一般是先对每个数据点计算一个score $x$,可以是这个点属于positive的概率,也可以是其他。一般来说是$x$越大,越可能是positive。把所有positive/negative的score的直方图画出来,如下图的两个概率分布函数$f_1(x)$, $f_0(x)$。然后人为设定一个threshold $T$,当$x>T$判断为positive,否者为negative,这样可以把$f_1(x)$, $f_0(x)$分割成TP,FN,TN,FP四部分。

ROC就是把$T$从$\infty$到$-\infty$,所有$P(FP),P(TP)$的点连成的曲线。

$P(FP)=FPR(T)=\int_{T}^{\infty} f_0(x) dx$

$P(TP)=TPR(T)=\int_{T}^{\infty} f_1(x) dx$

现实中只有有限个数据点,所以用$P(FP)=\frac{FP}{FP+TN}$,$P(TP)=\frac{TP}{FN+TP}$估计。


$AUC=\int_{\infty}^{-\infty}P(TP)P'(FP)dT$

注意$P'(FP)=d(\int_{T}^{\infty} f_0(x) dx)/dT=-f_0(T)$是横轴上的$\delta$,$P(TP)$是纵轴上的长度,它俩的积分为曲线下面积

$AUC=\int_{\infty}^{-\infty}\int_{T}^{\infty} f_1(x) dx (-f_0(T)) dT$

$=\int_{-\infty}^{\infty}\int_{T}^{\infty} f_1(x) dx f_0(T) dT$

令$x=x_1$,$T=x_0$

$=\int_{-\infty}^{\infty}\int_{x_0}^{\infty} f_1(x_1) f_0(x_0) dx_1dx_0$

$=P(x_1>x_0|x_1 \sim f_1,x_0 \sim f_0)$

假设随机得到一个positive和一个negative数据点,它们在某分类器中的score分别是$x_1$,$x_0$,AUC就是$x_1>x_0$的概率。

这里其实还有一个隐藏条件是$T \sim U(-\infty,\infty)$,也就是对$T$的选择没有喜好。但实际应用中对$T$有限制,比如希望$FPR(T)<0.05$,这时AUC只能做参考,要看ROC中的局部线段是否靠近左上角。


SofaSofa数据科学社区DS面试题库 DS面经

Zealing   2018-08-23 00:53

1

首先要理解怎么作图的。ROC曲线是true positive rate(TPR) vs False positive rate(FPR) 。注意这两个rate的分母是不一样的。对于一个模型,按照预测score从小到大排序,然后把分界线从第一个sample往后逐渐移动到最后一个,看左边的sample TPR和 FPR值是多少。比如分界线在最左边,TPR==FPR==0,最右边TPR==TPR==1

更深层、直观的概率统计的意义最好从limit考虑

  • AUC==1: 模型可以100%准确分类
  • AUC==0.5: 效果等于随机
  • AUC==0: 模型分类100%错误

参考: https://docs.eyesopen.com/toolkits/cookbook/python/plotting/roc.html

SofaSofa数据科学社区DS面试题库 DS面经

holidy   2018-08-21 02:20



  相关主题

为什么非平衡的数据更适合用精度-召回曲线,而不是roc auc?   2回答

如何利用python画分类器的ROC曲线?   1回答

roc space是什么意思?   1回答

二元分类什么时候用LogLoss、什么时候用ROC AUC?如何选择?   1回答

问一下roc和logistic回归有啥联系区别   2回答

多元分类的roc auc   1回答

有什么损失函数是直接优化roc auc的?   2回答

精度召回precision recall auc是什么?   1回答

为什么负样本的auc会和正样本的auc不一样呢?   1回答

roc auc小于0.5是什么情况?   3回答

R里有没有package可以画ROC,计算AUC的?   2回答

python里什么模块可以计算精度-召回(precision-recall)的AUC?   1回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!