分类问题统计指标入门:混淆矩阵、召回、误检率、AUROC

2018 年 3 月 2 日 论智 F. Dernoncourt
来源:StackExchange
编译:weakish

编者按:当比较多个不同模型的表现时,仅仅考虑精确度(accuracy)往往是不够的。常用的指标还包括混淆矩阵、召回、误检率和AUROC。Adobe Research研究科学家Franck DernoncourtCross Validated上简明清晰地介绍了这些概念。

缩写

  • AUC 曲线下面积(Area Under the Curve)

  • AUROC 接受者操作特征曲线下面积(Area Under the Receiver Operating Characteristic curve)

大多数时候,AUC都是指AUROC,这是一个不好地做法,正如Marc Claesen指出的那样,AUC有歧义(可能是任何曲线),而AUROC没有歧义。

AUROC解释

AUROC有一些等价的解释

  • 均匀抽取的随机阳性样本排名在均匀抽取的随机阴性样本之前的期望

  • 阳性样本排名在均匀抽取的随机阴性样本之前的期望比例

  • 若排名在一个随机抽取的随机阴性样本前分割,期望的真阳性率

  • 阴性样本排名在均匀抽取的随机阳性样本之后和期望比例

  • 若排名在一个均匀抽取的随机阳性样本后分割,期望的假阳性率

更多阅读:如何推导AUROC的概率解释(https://stats.stackexchange.com/questions/180638/how-to-derive-the-probabilistic-interpretation-of-the-auc/277721#277721)

AUROC计算

假设我们有一个概率二元分类器,比如逻辑回归。

在讨论ROC曲线(接受者操作特征曲线)之前,我们需要理解混淆矩阵(confusion matrix)的概念。一个二元预测可能有4个结果:

  • 我们预测0,而真实类别是0:这被称为真阴性(True Negative),即,我们正确预测类别为阴性(0)。比如,杀毒软件没有将一个无害的文件识别为病毒。

  • 我们预测0,而真实类别是1:这被称为假阴性(False Negative),即,我们错误预测类别为阴性(0)。比如,杀毒软件没有识别出一个病毒。

  • 我们预测1,而真实类别是0:这被称为假阳性(False Positive),即,我们错误预测类别为阳性(1)。比如,杀毒软件将一个无害的文件识别为病毒。

  • 我们预测1,而真实类别是1:这被称为真阳性(True Positive),即,我们正确预测类别为阳性(1)。比如,杀毒软件正确地识别出一个病毒。

我们统计模型做出的预测,数一下这四种结果各自出现了多少次,可以得到混淆矩阵:

在上面的混淆矩阵示例中,在分类的50个数据点中,45个分类正确,5个分类错误。

当比较两个不同模型的时候,使用单一指标常常比使用多个指标更方便,下面我们基于混淆矩阵计算两个指标,之后我们会将这两个指标组合成一个:

  • 真阳性率(TPR),即,灵敏度、命中率召回,定义为TP/(TP+FN)。从直觉上说,这一指标对应被正确识别为阳性的阳性数据点占所有阳性数据点的比例。换句话说,TPR越高,我们遗漏的阳性数据点就越少。

  • 假阳性率(FPR),即,误检率,定义为FP/(FP+TN)。从直觉上说,这一指标对应被误认为阳性的阴性数据点占所有阴性数据点的比例。换句话说,FPR越高,我们错误分类的阴性数据点就越多。

为了将FPR和TPR组合成一个指标,我们首先基于不同的阈值(例如:0.00; 0.01, 0.02, …, 1.00)计算前两个指标的逻辑回归,接着将它们绘制为一个图像,其中FPR值为横轴,TPR值为纵轴。得到的曲线为ROC曲线,我们考虑的指标是该曲线的AUC,称为AUROC。

下图展示了AUROC的图像:

在上图中,蓝色区域对应接受者操作特征曲线(AUROC)。对角虚线为随机预测器的ROC曲线:AUROC为0.5. 随机预测器通常用作基线,以检验模型是否有用。

如果你希望得到一些第一手的经验:

  • Python: http://scikit-learn.org/stable/auto_examples/model_selection/plot_roc.html

  • MATLAB: http://www.mathworks.com/help/stats/perfcurve.html

原文地址:https://stats.stackexchange.com/questions/132777/what-does-auc-stand-for-and-what-is-it/132832#132832

登录查看更多
1

相关内容

一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【WWW2020-微软】理解用户行为用于文档推荐
专知会员服务
35+阅读 · 2020年4月5日
机器学习中如何处理不平衡数据?
机器之心
13+阅读 · 2019年2月17日
BAT机器学习面试题1000题(376~380题)
七月在线实验室
9+阅读 · 2018年8月27日
如何选择合适的损失函数,请看......
AI100
9+阅读 · 2018年6月18日
机器学习(29)之奇异值分解SVD原理与应用详解
机器学习算法与Python学习
5+阅读 · 2017年11月30日
【原理】学懂GAN的数学原理,让它不再神秘
GAN生成式对抗网络
3+阅读 · 2017年11月26日
机器学习(27)【降维】之主成分分析(PCA)详解
机器学习算法与Python学习
9+阅读 · 2017年11月22日
从概率论到多分类问题:综述贝叶斯统计分类
机器之心
12+阅读 · 2017年9月28日
机器学习(15)之支持向量机原理(一)线性支持向量机
机器学习算法与Python学习
6+阅读 · 2017年9月1日
Arxiv
20+阅读 · 2020年6月8日
Arxiv
11+阅读 · 2018年5月13日
VIP会员
相关VIP内容
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【WWW2020-微软】理解用户行为用于文档推荐
专知会员服务
35+阅读 · 2020年4月5日
相关资讯
机器学习中如何处理不平衡数据?
机器之心
13+阅读 · 2019年2月17日
BAT机器学习面试题1000题(376~380题)
七月在线实验室
9+阅读 · 2018年8月27日
如何选择合适的损失函数,请看......
AI100
9+阅读 · 2018年6月18日
机器学习(29)之奇异值分解SVD原理与应用详解
机器学习算法与Python学习
5+阅读 · 2017年11月30日
【原理】学懂GAN的数学原理,让它不再神秘
GAN生成式对抗网络
3+阅读 · 2017年11月26日
机器学习(27)【降维】之主成分分析(PCA)详解
机器学习算法与Python学习
9+阅读 · 2017年11月22日
从概率论到多分类问题:综述贝叶斯统计分类
机器之心
12+阅读 · 2017年9月28日
机器学习(15)之支持向量机原理(一)线性支持向量机
机器学习算法与Python学习
6+阅读 · 2017年9月1日
Top
微信扫码咨询专知VIP会员