1万字说明白Receiver Operating curve(ROC) 受试者操作特征曲线

Posted PythonEducation

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1万字说明白Receiver Operating curve(ROC) 受试者操作特征曲线相关的知识,希望对你有一定的参考价值。

概述

AUC(area under the curve)是机器学习领域中一种常见且重要的模型评估指标,用于计算二元分类器效率的方法AUC表示ROC(receiver operator characteristic)曲线下的面积,即AUC = ROC 曲线下面积

 

起源-雷达救了英国

很多统计指标来源于战争。ROC最早用于英国雷达分辨鸟或德国飞机的概率。二战期间首次用于分析雷达有效性。在早些时候雷达,有时很难从飞机上分辨出一只鸟。英国人率先使用 ROC 曲线来优化他们依赖雷达进行判别的方式在来袭的德国飞机和鸟类之间。

二战时英国的反***战备是英国为了抵抗可能发生的德军***,而于1940年和1941年间做出的准备。在这期间,英国政府建立了英国国土警卫队,并在英国全境修建了防御工事。在缺少重型装备的情况下,英军需要将手中的一切可用资源运用到极致。

由于在不列颠空战中战败,德国为***英国而开展的海狮计划遭到了无限期的推延。英国也就没能在其本土与德国陆军展开战斗。今天,英国修建的大部分防御工事都已消失,只有一些加固过的混凝土工事还较常见。

自不列颠空战正式打响开始,英国皇家空军和海军航空兵就肩负起了保卫英国领空的任务。它们与德国空军进行了激烈的战斗以使英国上空的制空权不被敌人夺走,而制空权是纳粹德国非常看重的。

如果德国空军成功地占领了英国领空,那么英国空军剩余的极少数飞机将会转移到英格兰东南部的机场。英国人在撤走时会将机场的跑道破坏掉。这些飞机将会与英国皇家海军一起打击德国舰队。尽管还未夺取制空权的德国空军比英国空军强大,但英国战机也有优势,它们大多是在己方领空执行任务,而每次任务的持续时间也会比跨越海峡飞来的德军战机长。

英国空军将所有还能飞的战斗机都调用了起来。而战斗机以外的其它飞机都被改装成了轰炸机,一些新飞行员也会开着拥有简易投弹装置的教练机对德占区进行轰炸。[11]

二战开始之前,英国在英格兰南部修建了一套雷达系统,其中有三座雷达站从1937年起开始运行。[12][13]尽管德军高层对英国此举有所怀疑,但德国空军并没有做出实际行动。后来正是这些雷达站挽救了英国。

 

 

ROC接收器操作特性曲线特点 

  • 接收器操作特性(ROC) 曲线:由分类算法的一个参数参数化的二维曲线。

  • 可以通过在 y 轴上绘制 TPR 和在 x 轴上绘制 TNR 来获得 ROC 曲线。

  • AUC 用于衡量模型的区分能力。AUC 始终介于 0 和 1 之间,AUC的值越接近1,表示模型区分能力越好,AUC的值越接近0,模型区分能力越差,AUC的值等于0.5,表示模型区分能力是随机的

  • 在风控金融领域,大数据残缺不全,垃圾数据较多,模型AUC值一般在0.6-0.7之间。如果模型AUC值能超过0.8表示,模型非常优秀,我在多年金融风控建模项目中,很少看到模型AUC能超过0.8.

ROC图如下

 

用sensitivity和specificity解释ROC图

AUC 始终介于 0 和 1 之间,AUC的值越接近1,表示模型区分能力越好,AUC的值越接近0,模型区分能力越差,AUC的值等于0.5,表示模型区分能力是随机的

 

ROC曲线的阈值问题

sensitivity=黑色竖线右边红色像素面积/红色像素总面积

false positive=黑色竖线右边绿色像素面积/蓝色像素总面积

 

当我们对不同的阈值进行遍历时,产生的 (假阳率, 真阳率) 坐标点也就可以连成ROC曲线,进而求得曲线下面积AUC。

 

TP,FP,FN,TN与ROC关系图如下

蓝色表示不接受,红色表示接受。我们用软件对两种颜色重叠不同位置时,观察左上角ROC曲线变化和阈值变化。

 

 

 

 

 

 

 这种roc很难区别分类,两种颜色基本重叠,AUC值接近0.5

 

 

 

ROC应用

ROC应用1

我们必须对属于 A 类或 B 类的产品进行分类。 
 

 

ROC 应用2

面试,(+)表示适合工作的候选人,(-)表示不适合工作的候选人。 

 

 

ROC 应用3

ROC曲线常用于医疗领域,特别是判断仪器检测效果。ROC能很容易地查出任意界限值时的对疾病的识别能力。

选择最佳的诊断界限值。ROC曲线越靠近左上角,试验的准确性就越高。最靠近左上角的ROC曲线的点是错误最少的最好阈值,其假阳性和假阴性的总数最少。

两种或两种以上不同诊断试验对疾病识别能力的比较。在对同一种疾病的两种或两种以上诊断方法进行比较时,可将各试验的ROC曲线绘制到同一坐标中,以直观地鉴别优劣,靠近左上角的ROC曲线所代表的受试者工作最准确。亦可通过分别计算各个试验的ROC曲线下的面积(AUC)进行比较,哪一种试验的 AUC最大,则哪一种试验的诊断价值最佳。

 

所有术语计算公式如下

TP,FN,TN,FP,FN

TP(True Positive)=A类产品的数量,属于A类产品。 

FN (False Negative) = A 类产品的数量,属于 B 类产品。 

TN (True Negative) = B 类产品的数量,属于 B 类产品。 

FP(False Positive)= B类产品的数量,属于A类产品。

FP = N-TP;// 其中数字 N 是 A 类产品的数量

FN = M-TN;// 其中 number M 是 B 类产品的数量

 

为了让大家更好立即,附上英文释义

TP (True Positive) = number of Class A products, which are classified as Class A products. 

FN (False Negative) = number of Class A products, which are classified as Class B products. 

TN (True Negative) = number of Class B products, which are classified as Class B products. 

FP (False Positive) = number of Class B products, which are classified as Class A products.

 

FP = N-TP;   // where number N is the number of class A type products

FN = M-TN; // where number M is the number of class B type products

 

混淆矩阵

混淆矩阵中横轴通常表示真实类别(1和0分别对应真、伪),纵轴表示预测类别(1和0分别对应阳、阴),对真实类别和真实类别进行组合,便组成混淆矩阵:

更详细混淆矩阵图如下

混淆矩阵里概念比较相似,相同指标有不同术语,为了让大家更好立即回血矩阵,我附上混淆矩阵英文图谱,如下图:

 

准确率Accuracy

准确性衡量测试对 TPR 和 TNR 的预测效果。按照混淆矩阵中的符号形式,准确率的公式可以表示为:

准确率是一种非常常见的模型效能度量指标,然而当面对样本不平衡问题时,其度量效果会产生问题。比如在一个总样本中,1类样本占90%,0类样本占10%,样本严重不平衡,此时我们只需要将全部样本预测为1即可得到高达90%的准确率。

 

精准率Precision

精准率(Precision)又称查准率,代表所有被预测为1的样本中实际为1的概率,其公式如下:

 

召回率Recall

召回率(Recall)又称查全率,代表在所有实际为1的样本中被预测为1的概率,其公式如下:

F1分数

通常情况下,查准率和查全率会随着阈值的变化而变化,我们希望查准率和查全率同时都非常高,然而这两个指标实际是此消彼长的关系,无法做到双高。对此,我们就需要一个新的指标 —— F1分数。F1分数同时考虑了查准率和查全率,通过选取最高的F1来确定分类阈值,F1公式如下:

 

ROC/AUC 相关指标介绍

为了了解ROC/AUC,我们需要了解几个指标。灵敏度sensitivity和召回率recall是同一个指标,不同场景术语叫法不一样。

灵敏度

灵敏度衡量正确识别的阳性比例

 

特异度specificity

特异度衡量被正确识别的阴性比例

 

真阳率 (TPR)

真阳率和召回率一样,代表在所有实际为1的样本中被预测为1的概率,其公式如下:

 

假阳率 (FPR)

假阳率代表在所有实际为0的样本中被预测为1的概率,其公式如下:

 

一文明白JVM-万字长文,遇人随便问

一文明白JVM-万字长文,遇人随便问

笔记本打开出现Operating-system,Not,found

什么是机器学习中的学习曲线?

Spark 定制版:009~Spark Streaming源码解读之Receiver在Driver的精妙实现全生命周期彻底研究和思考

万字干货 | 深入浅出 Kubernetes 1.11 之 device-plugins