机器学习中常用的性能度量—— ROC 和 AUC

什么是泛化能力?

通常我们用泛化能力来评判一个模型的好坏,通俗的说,泛化能力是指一个机器学期算法对新样本(即模型没有见过的样本)的举一反三的能力,也就是学以致用的能力。

举个例子,高三的学生在高考前大量的刷各种习题,像五年高考三年模拟、三年高考五年模拟之类的,目的就是为了在高考时拿到一个好的分数,高考的题目就是新题,一般谁也没做过,平时的刷题就是为了掌握试题的规律,能够举一反三、学以致用,这样面对新的题目也能从容应对。这种规律的掌握便是泛化能力,有的同学很聪明,考上名校,很大程度上是该同学的泛化能力好。

在机器学习中,对于分类和回归两类监督学习,分别有各自的评判标准,这里我们讨论常用于分类任务的性能度量标准——AUC 和 ROC。


几个重要概念:混淆矩阵、准确率、精准率和召回率

1. 混淆矩阵

假设我们建立的是二分类模型,将实际类别和预测类别进行两两组合,就形成了混淆矩阵。

真实情况预测结果
正例反例
正例TP(真正例)FN(假反例)
反例FP(假正例)TN(真反例)

接下来的性能度量指标都是由混淆矩阵的各个元素计算得来。

2. 准确率

准确率 = T P + T N T P + T N + F P + F N 准确率=\frac{TP+TN}{TP+TN+FP+FN} 准确率=TP+TN+FP+FNTP+TN

在样本均衡的情况下,准确率是一个适用的性能度量指标,但是,在样本不平衡的情况下,并不能很好的衡量结果。例如,在信用风险评估中,正样本为 90%,负样本(发生违约的样本)为 10%,样本严重失衡,在这种情况下,即使我们全部将样本预测为正样本,正确率也会达到 90%的高准确率。这也说明了,在样本失衡相对严重的情况下,即使准确率很高,结果也会有很大的水份,准确率指标会失效。

3. 查准率

查准率(Precision)又叫精准率,是指在所有被预测为正的样本中实际为正的样本的概率,即在预测为正的样本中,我们有多少把握可以预测正确:

查准率 = T P T P + F P 查准率=\frac{TP}{TP+FP} 查准率=TP+FPTP

查准率和准确率的区别在于:查准率代表对正样本结果中的预测精度,而准确率则代表整体的预测准确程度,既包括正样本,也包括负样本。

4. 召回率

召回率(Recall)又叫查全率,指在实际为正的样本中被预测为正样本的概率。应用场景:在网贷信用风险评估中,相对好用户,我们更关心坏用户,不能错放任何一个坏用户,因为如果我们过多的将坏用户当成好用户,这样后续可能发生的违约金额会远超过好用户偿还的借贷利息金额,造成严重亏损。召回率越高,表示实际坏用户被预测出来的概率越高,即“宁可错杀一千,绝不放过一个。”

精准率 = T P / ( T P + F N ) 精准率=TP/(TP+FN) 精准率=TP/(TP+FN)

一般来说,查准率和召回率是一对矛盾的度量。查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。
例如,若希望将好瓜尽可能多地选出来,则可通过增加选瓜的数量来实现,如果将所有西瓜都选上,那么所有的好瓜也必然都被选上了,但这样查准率就会较低;若希望选出的瓜中好瓜比率尽可能高,则可只挑选最有把握的瓜,但这样就难免会漏掉不少好瓜,使得查全率较低,通常只有在一些简单的任务中,才可能使查全率和查准率都很高。

如果想要在两者之间找到一个平衡点,通常会使用 F1 分数,它同时考虑了查准率和查全率,让二者同时达到最高,取一个平衡。

F 1 = 2 × 查准率 × 召回率 ( 查准率 + 召回率 ) F1=\frac{2 \times 查准率 \times 召回率}{(查准率+召回率)} F1=(查准率+召回率)2×查准率×召回率


ROC和AUC

1. 真正率和假正率

ROC 和 AUC 可以在无视样本不平衡的情况下进行性能度量,关键在于两个指标:真正率(TPR)和假正率(FPR),其中真正率也叫灵敏度(Sensitivity),假正率则为 1-特异度(Specifucity)。

真正率 ( T P R ) = 灵敏度 = T P T P + F N 真正率(TPR)=灵敏度=\frac{TP}{TP+FN} 真正率(TPR)=灵敏度=TP+FNTP
假正率 ( F R P ) = 1 − 特异度 = F P F P + T N 假正率(FRP)=1-特异度=\frac{FP}{FP+TN} 假正率(FRP)=1特异度=FP+TNFP

可以发现 TPR 和 FPR 分别是基于真实情况 1 和 0 出发的,即分别在真实情况下的正样本和负样本中来观察相关概率问题,正因为如此,所以无论样本是否平衡,都不会被影响。在之前的信用评估例子中,90% 为正样本,10% 为负样本,我们知道用准确率衡量结果是有水份的,但是用 TPR 和 FPR 不一样,这里,TPR 只关注 90% 正样本中有多少是真正被覆盖的,而与剩余 10% 无关,同理,FPR 只关注 10% 负样本中有多少是被错误覆盖的,也与其他 90% 毫无关系,所以可以看出:如果我们从实际表现的各个结果角度出发,就可以避免样本不平衡的问题了,这也是为什么选用 TPR 和 FPR 作为 ROC/AUC 指标的原因。

2. ROC-接受者操作特征曲线

ROC(Receiver Operating Characteristic)曲线,又称接受者操作特征曲线,最早应用于雷达信号检测领域,用于区分信号和噪声。后来人们将其用于评价模型的预测能力,ROC 曲线是基于混淆矩阵得出的。

ROC曲线中横坐标为假正率(FPR),纵坐标为真正率(TPR),是通过遍历所有阈值来绘制整条曲线的,当我们不断的遍历所有阈值,预测的正样本和负样本是不断变化,相应的在 ROC 曲线图中就会沿着曲线滑动。

在这里插入图片描述

改变阈值只是不断的改变正负样本数,即 TPR 和 FPR,但是曲线本身是不会改变的。那如何通过 ROC 来判断一个模型的好坏呢?我们知道 FRP 表示模型虚报的响应程度,TPR 表示模型预测响应的覆盖程度,一个好的模型虚报的越少越好,覆盖的越多越好,这就等价于 TPR 越高,同时 FPR 越低,即 ROC 曲线越陡时,模型的性能就越好。

在这里插入图片描述

之前已经讨论了 ROC 曲线为什么可以无视样本的不平衡,这里通过动图进行演示,可以发现:无论红蓝样本比率如何改变,ROC 曲线都没有影响。

在这里插入图片描述

3. AUC-曲线下面积

AUC 是一种基于排序的高效算法,取值越大,代表模型的预测效果越好,其一般判断标准为:

  • 0.5~0.7:效果较低;
  • 0.7~0.85:效果一般
  • 0.85~0.95:效果很好
  • 0.95~1:效果非常好,但很可能是过拟合导致的

skleanmetrics 对 ROC 和 AUC 的计算进行了实现。

  • 25
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第⼆二章 机器器学习基础 2.1 各种常⻅见算法图示 2.2 监督学习、⾮非监督学习、半监督学习、弱监督学习? 2.3 监督学习有哪些步骤 2.4 多实例例学习? 2.5 分类⽹网络和回归的区别? 2.6 什什么是神经⽹网络? 2.7 理理解局部最优与全局最优 2.8 分类算法 2.8.1 常⽤用分类算法的优缺点? 2.8.2 正确率能很好的评估分类算法吗? 2.8.3 分类算法的评估⽅方法? 2.8.4 什什么样的分类器器是最好的? 2.9 逻辑回归 2.9.1 理理解逻辑回归 2.9.2 逻辑回归与朴素⻉贝叶斯有什什么区别? 2.9.3线性回归与逻辑回归的区别?(贡献者:⻩黄钦建-华南理理⼯工⼤大学) 2.10 代价函数 2.10.1 为什什么需要代价函数? 2.10.2 代价函数作⽤用原理理 2.10.3 为什什么代价函数要⾮非负? 2.10.4 常⻅见代价函数? 2.10.5 为什什么⽤用交叉熵代替⼆二次代价函数 2.11 损失函数 2.11.1 什什么是损失函数? 2.11.2 常⻅见的损失函数 2.11.3 逻辑回归为什什么使⽤用对数损失函数? 2.11.4 对数损失函数是如何度量量损失的? 2.12 梯度下降 2.12.1 机器器学习为什什么需要梯度下降? 2.12.2 梯度下降法缺点? 2.12.3 梯度下降法直观理理解? 2.12.4 梯度下降法算法描述? 2.12.5 如何对梯度下降法进⾏行行调优? 2.12.7 随机梯度和批量量梯度区别? 2.12.8 各种梯度下降法性能⽐比较 2.13 计算图的导数计算图解? 2.14 线性判别分析(LDA) 2.14.1 线性判别分析(LDA)思想总结 2.14.2 图解LDA核⼼心思想 2.14.3 ⼆二类LDA算法原理理? 2.14.4 LDA算法流程总结? 2.14.5 LDA和PCA区别? 2.14.6 LDA优缺点? 2.15 主成分分析(PCA) 2.15.1 主成分分析(PCA)思想总结 2.15.2 图解PCA核⼼心思想 2.15.3 PCA算法推理理 2.15.4 PCA算法流程总结 2.15.5 PCA算法主要优缺点 2.15.6 降维的必要性及⽬目的 2.15.7 KPCA与PCA的区别? 2.16 模型评估 2.16.1 模型评估常⽤用⽅方法? 2.16.2 机器器学习的Bias,Error和Variance有什什么区别和联系? 2.16.3 经验误差与泛化误差 2.16.4 图解⽋欠拟合、过拟合 2.16.5 如何解决过拟合与⽋欠拟合? 2.16.6 交叉验证的主要作⽤用? 2.16.7 k折交叉验证? 2.16.8 混淆矩阵 2.16.9 错误率及精度 2.16.10 查准率与查全率 2.16.11 ROCAUC 2.16.12 如何画ROC曲线? 2.16.13 如何计算TPR,FPR? 2.16.14 如何计算Auc? 2.16.15 为什什么使⽤用RocAuc评价分类器器? 2.16.17 直观理理解AUC 2.16.18 代价敏敏感错误率与代价曲线 2.16.19 模型有哪些⽐比较检验⽅方法 2.16.20 偏差与⽅方差 2.16.21为什什么使⽤用标准差? 2.16.22点估计思想 2.16.23 点估计优良性原则? 2.16.24 点估计、区间估计、⼼心极限定理理之间的联系? 2.16.25 类别不不平衡产⽣生原因? 2.16.26 常⻅见的类别不不平衡问题解决⽅方法 2.17 决策树 2.17.1 决策树的基本原理理 2.17.2 决策树的三要素? 2.17.3 决策树学习基本算法 2.17.4 决策树算法优缺点 2.17.5熵的概念以及理理解 2.17.6 信息增益的理理解 2.17.7 剪枝处理理的作⽤用及策略略? 2.18 ⽀支持向量量机 2.18.1 什什么是⽀支持向量量机 2.18.2 ⽀支持向量量机解决的问题? 2.18.3 核函数作⽤用? 2.18.4 对偶问题 2.18.5 理理解⽀支持向量量回归 2.18.6 理理解SVM(核函数) 2.18.7 常⻅见的核函数有哪些? 2.18.8 软间隔与正则化 2.18.9 SVM主要特点及缺点? 2.19 ⻉贝叶斯 2.19.1 图解极⼤大似然估计 2.19.2 朴素⻉贝叶斯分类器器和⼀一般的⻉贝叶斯分类器器有什什么区别? 2.19.3 朴素与半朴素⻉贝叶斯分类器器 2.19.4 ⻉贝叶斯⽹网三种典型结构 2.19.5 什什么是⻉贝叶斯错误率 2.19.6 什什么是⻉贝叶斯最优错误率 2.20 EM算法解决问题及实现流程 2.21 降维和聚类 2.21.1 为什什么会产⽣生维数灾难? 2.21.2 怎样避免维数灾难 2.21.3 聚类和降维有什什么区别与联系? 2.21.4 四种聚类⽅方法之⽐比较 2.21.5 SOM聚类算法 2.21.6 FCM聚类算法 2.22 GBDT和随机森林林的区别 2.23 ⼤大数据与深度学习之间的关系

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值