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

  统计/机器学习 监督式学习 模型验证    浏览次数:499        分享
0

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

在非平衡的数据集上,精度-召回曲线的优势体现在哪儿呢?

 

WinJ   2019-01-10 15:24



   2个回答 
5

先说结论:我觉得楼主问题中有个误解。用precision-recall的主要理由不是因为正负样本个数悬殊,而是因为应用更关心正样本的分类结果。

非平衡的数据一般来至于正样本明显小于负样本,且更关心正样本分类结果的应用。比如信用卡诈骗中,诈骗的交易数远小于正常交易数,并且主要关心是否能找出欺诈交易及其效率。

ROC里看TPR和FPR,精度-召回曲线看Precision 和recall,其中TPR=recall。那我们主要是比较FPR 和Precision。

TPR (True Positive Rate) =Recall = TP / (TP+FN)  

FPR (False Positive Rate) = FP / (FP+TN) 

Precision = TP/(TP+FP) 

以上三个指标(metric)都是$x/(x+y)$的形式,对分子$x$更敏感。也就是说TPR(Recall)只和正样本相关,FPR是只和负样本相关,Precision是偏向正样本的指标。所以precision-recall更适合于关心正样本的应用。ROC适合对正负分类结果都关心的应用。

假如有个应用是正样本个数远远小于负样本个数,且对正负样本的结果都关心。TP<<FP,所以precision接近于0,很难用precision去评价分类器好坏;而FP和TN可比,0<FPR<1。反而此时应该用ROC而不用precision-recall。


参考这里

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

Zealing   2019-01-11 01:07

谢谢!如果是非常倾向的情况,比如正样本只占到0.1%,还是roc auc更好? - WinJ   2019-01-11 08:50
比如10正样本和10^5负样本,假如FPR=1%,TPR=100%,FP=1000,TP=10,可算出precision=10/(10+1000)=0.99%。也就是说precision-recall线是一条接近于横轴的线,很难用于判断分类器的好坏。 - Zealing   2019-01-11 09:18
明白了,多谢指点 - WinJ   2019-01-11 10:31
1

题主有兴趣可以看看这篇被引用了两千多次的论文:The Relationship Between Precision-Recall and ROC Curves.

论文里的一个关键句子是“when dealing with highly skewed datasets, Precision-Recall (PR) curves give a more informative picture of an algorithm’s performance.”

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

木子周   2019-01-22 10:04



  相关主题

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

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

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

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

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

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

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

多元分类的roc auc   1回答

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

如何通俗地解释中餐馆过程(Chinese restaurant process)?   1回答

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

sklearn.preprocessing.StandardScaler采用的是哪种标准化的方法?   1回答



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

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

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

我们谢绝答非所问。

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

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