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

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

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


 

杨业勇   2017-09-28 13:07



   3个回答 
9

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

5

首先要清楚二元分类的过程。一般是先对每个数据点计算一个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

2

首先要理解怎么作图的。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小于0.5是什么情况?

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

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

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

roc space是什么意思?

sklearn里计算roc_auc_score,报错ValueError: bad input shape

精度召回precision recall auc是什么?

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

sklearn.metrics.auc里提到的梯形法则是什么意思?

lightgbm的所有预测值都一样,roc auc等于0.5,会是什么问题?

  随便看看

怎么理解推荐系统中的NDCG?

python产生服从常用概率分布的随机数

修正R方(adjusted R square)是什么?

样本权重大小不同时,用什么分类算法比较合适?

行数很多的pandas DataFrame如何在jupyter中完整显示?