回归和分类模型性能评估指标MSE,MAE,PR,ROC,AUC
文章目录
- 0. 模型评估是什么,为什么
- 1. 不同类型问题的评估指标
- 1.1 回归问题
- 1.2 分类问题
- 1.2.1 准确率和错误率
- 1.2.2 精确率和召回率
- 1.2.3 PR曲线图
- 1.2.4 F1值
- 1.2.5 ROC
- 1.2.5.1 ROC引入
- 1.2.5.2 ROC解读
- 1.2.6 AUC值
- 1.2.7 ROC 和 PR
- 3. 参考文献
0. 模型评估是什么,为什么
模型评估其本质是为了解决模型的泛化问题,由于各种原因,训练完成的模型可能会产生过拟合和欠拟合问题,因此需要对模型评估其泛化能力,并进行合适的参数调整以求得模型最优。
为什么要进行模型评估?
除了考虑到模型泛化能力的问题,同时也要兼顾不同业务场景下的业务指标不同。对于不同的业务场景,选择对应的评估指标,可以更加明确优化目标,从而使得模型达到一种实用业务场景的优化。
总而言之,模型评估是为了模型调参服务,使得模型能够更好的用于实际的业务场景下。
1. 不同类型问题的评估指标
如下图是所列不同问题类型的可能评估指标,我们将逐个介绍:
1.1 回归问题
回归问题,在小蓝书P4的定义:输入和输出都是连续变量的预测问题。
评估连续变量预测性能,有三种指标:
- MSE 均方误差
MSE=1m∑i=1m(yi−y^i)2MSE = \frac{1}{m} \sum_{i=1}^{m}\left(y_{i}-\hat{y}_{i}\right)^{2}MSE=m1i=1∑m(yi−y^i)2
这个指标就是线性回归的最小二乘法损失函数,将其作为模型的预测性能评估指标,也是简单直观的。 - RMSE 均方根误差
RMSE=1m∑i=1m(yi−y^i)2RMSE = \sqrt{\frac{1}{m} \sum_{i=1}^{m}\left(y_{i}-\hat{y}_{i}\right)^{2}}RMSE=m1i=1∑m(yi−y^i)2
这个从评估角度,本质上与MSE相同。但是从解释性来看,RMSE的量纲是友好的,比如房价预测,通过开方我们可以直接描述模型误差为多少万元,而不是多少万元的平方。 - MAE 平均绝对误差
MAE=1m∑i=1m∣(yi−yi)∣MAE = \frac{1}{m} \sum_{i=1}^{m}\left|\left(y_{i}-y_{i}\right)\right|MAE=m1i=1∑m∣(yi−yi)∣
这个解释性来看和RMSE相同,都是量纲友好的。
对于RMSE和MAE来看,由于RMSE涉及到误差的平方,可能对于异常值比较敏感,得到的误差比较大。如果同等维度来看,RMSE和MAE看哪个都可以。如果要从数据来得到比较乐观的结果,MAE看起来更小更好,如果看进步RMSE会更好。所以具体选用哪个评价指标,那得看你想怎么解释自己的模型。
1.2 分类问题
具体来看分类模型的评估可以分为三大类来看待,不同类别有自己衍生的一套体系。
在看评估指标之前,我们先看一下混淆矩阵如下图所示:
其中, 行坐标为预测(predicted)类别,列坐标为真实(actual)类别。
TNTNTN:真负类,表示真实为负并且预测为负的样本。
FNFNFN:假负类,表示真实为正但是预测为负的样本。
FPFPFP:假正类,表示真实为负但是预测为正的样本。
TPTPTP:真正类,表示真实为正并且预测为正的样本。
1.2.1 准确率和错误率
- 错误率(error rate)
E=(FP+FN)/ME=(FP+FN)/ME=(FP+FN)/M,表征错误分类样本占比 - 准确率(accuracy)
A=(TP+TN)/MA=(TP+TN)/MA=(TP+TN)/M,表征正确分类样本占比
其中,M=TP+TN+FP+FNM=TP+TN+FP+FNM=TP+TN+FP+FN
错误率和准确率是强相关的,大多情况下可单独关注准确率一个指标。它是我们最简单直观的度量方式,比如人脸识别100张图片,识别出99张,可以说准确率为99%。
但是,它有先天的劣势,对正负样本不平衡的问题,无法给出客观的评价。比如正确样本占比90%,我的预测模型可以直接预测所有样本为正,准确率即为90%,但显然是错误的。
1.2.2 精确率和召回率
当我们关心“选出来的好瓜中,有多少比例是真的好瓜”以及“所有好瓜,有多少被选出来了”,这些都无法使用“准确率”来衡量。
对应以上两个问题,有以下两个评估指标。
- 精确率(precision,查准率)
P=TPTP+FPP=\frac{T P}{T P+F P}P=TP+FPTP,表征被被判断为正类的所有样本中,真正类的占比。
分母是被判断为正类的样本总和。
比如,判断食品是否安全,我们更关心查准率。即挑出合格的食品中,有多少是真合格的。 - 召回率(recall,查全率)
R=TPTP+FNR=\frac{T P}{T P+F N}R=TP+FNTP,表征所有正类样本中,被识别为真正类的占比。
分母是真实为正类的样本总数。
比如,判断一个人是不是小偷,我们更关心查全率。即所有小偷中,有多少被找出来了。
两者的区别,关键在于分母,一个是判断为正,一个是真实为正。
1.2.3 PR曲线图
精确率和召回率本身是一对相互矛盾的指标,想要精确率高,就要提高阈值把更有把握的判断为正,但是想要召回率高,就要降低阈值,将更多的正类囊括进来,因此,可以将两者关系绘制为PR曲线图。
按照判断正类样本的可能性对所有样本排序,一次把一个样本归为正类,计算P和R,绘制曲线如下:
- B学习器的PR曲线完全包裹C学习器, 可以断言B性能优于C。
- A和B有交叉,不能断定两者优劣。可以通过A和B的包裹面积,可以做大概评估。
- 通过平衡点(break-even point/ BEP) P = R时,A的平衡点高于B,可以认为A优于B。
通过BEP思想进一步演化除了F1分值。
1.2.4 F1值
定义,2F1=1P+1R\frac{2}{F_{1}}=\frac{1}{\text { P}}+\frac{1}{\text { R}}F12= P1+ R1
推导得,F1=2TP2TP+FP+FNF_{1}=\frac{2 T P}{2 T P+F P+F N}F1=2TP+FP+FN2TP
F1可以看成是综合考虑P和R的性能的指标,但是具体P和R哪个大,哪个小没有界定。
这时候衍生出了FβF\betaFβ
1Fβ=11+β2⋅(1P+β2R)\frac{1}{F_{\beta}}=\frac{1}{1+\beta^{2}} \cdot\left(\frac{1}{P}+\frac{\beta^{2}}{R}\right)Fβ1=1+β21⋅(P1+Rβ2)
Fβ=(1+β2)×P×R(β2×P)+RF_{\beta}=\frac{\left(1+\beta^{2}\right) \times P \times R}{\left(\beta^{2} \times P\right)+R}Fβ=(β2×P)+R(1+β2)×P×R
其中,β>0\beta>0β>0,它度量了P和R的相对重要性,当β=1\beta = 1β=1,退化为F1值。当β>1\beta >1β>1,R更重要,当β<1\beta<1β<1,P更重要。
1.2.5 ROC
1.2.5.1 ROC引入
ROC 全名是受试者工作特征(Receiver Operating Characteristic)曲线。涉及到以下两个指标:
TPR=TPTP+FN\operatorname{TPR}=\frac{T P}{T P+F N}TPR=TP+FNTP,灵敏度也叫真正类率,其实和召回率定义一样。
FPR=FPTN+FP=1−特异度\operatorname{FPR}=\frac{F P}{T N+F P} = 1- 特异度FPR=TN+FPFP=1−特异度,假正类率
特异度 =TN/(FP+TN)=\mathrm{TN} /(\mathrm{FP}+\mathrm{TN})=TN/(FP+TN)
两者对应到混淆矩阵,注意这个图与本节开头的图少许区别,预测和实际调换了位置,如下图所示:
绘制ROC曲线,按照判断正类样本的可能性对所有样本排序,一次把一个样本归为正类,计算TPR和FPR,如下图。
可以看出,TPR和FPR分别是基于实际样本的正负来考察的,也就是说它们分别在实际的正样本和负样本中来观察相关概率问题。
1.2.5.2 ROC解读
比如,90%是正样本,10%是负样本,用准确率是有水分的,但是用TPR和FPR不一样。
TPR只关注90%正样本中有多少是被真正覆盖的,而与那10%毫无关系,同理,FPR只关注10%负样本中有多少是被错误覆盖的,也与那90%毫无关系,所以可以看出:如果我们从实际表现的各个结果角度出发,就可以避免样本不平衡的问题了,这也是为什么选用TPR和FPR作为ROC/AUC的指标的原因。
如何评价ROC好坏?
FPR表示模型虚报的响应程度,而TPR表示模型预测响应的覆盖程度。TPR越高,同时FPR越低(即ROC曲线越陡),那么模型的性能就越好。
所以如果A的ROC包裹B的ROC,则A学习器更好。
如果A,B有交叉,则不能断言,这时候引入了AUC值。ROC曲线无视样本不均衡
当样本不均衡时,准确率是不准确的。PR曲线会明显改变形状,而ROC则不受影响。因为ROC相当于固定一个轴,即实际正类或者实际负类的评价。
1.2.6 AUC值
AUC(Area under curve)是为了通过ROC曲线,评价A和B学习器好坏而提出的。
ROC曲线图对角线,它的面积正好是0.5。对角线的实际含义是:随机判断响应与不响应,正负样本覆盖率应该都是50%,表示随机效果。ROC曲线越陡越好,所以理想值就是1,一个正方形,而最差的随机判断都有0.5,所以一般AUC的值是介于0.5到1之间的。
最理想的情况下,没有真实类别为1而错分为0的样本,TPR一直为1,于是AUC为1,这便是AUC的极大值。
AUC的一般判断标准:
0.5 - 0.7:效果较低,但用于预测股票已经很不错了
0.7 - 0.85:效果一般
0.85 - 0.95:效果很好
0.95 - 1:效果非常好,但一般不太可能
1.2.7 ROC 和 PR
ROC兼顾了正类和负类的分类能力,同时对类别不均衡问题处理很好。
PR仅仅关注正类,如果在更关注正类的评价学习器时,选择PR曲线。除此,大部分时候用ROC即可。
聚类问题,暂时不做记录。
3. 参考文献
https://zhuanlan.zhihu.com/p/34655990
https://www.zhihu.com/question/30643044/answer/510317055
https://www.zhihu.com/search?type=content&q=ROC%E5%92%8CAUC
回归和分类模型性能评估指标MSE,MAE,PR,ROC,AUC相关推荐
- 分类模型的评估指标(2)---ROC曲线与AUC简介
首先,我们需要了解一下,什么是ROC曲线? ROC曲线,即受试者工作特征曲线(Receiver Operating Characteristic curve,简称ROC曲线,是根据一系列不同的二分类方 ...
- auuc 评估指标_分类之性能评估指标
本文主要介绍几种常用的用于分类的性能评估指标,同时介绍如何绘制ROC曲线以及计算AUC值的便捷方法.最后再附上一个绘制ROC曲线和计算AUC的Python源码实现. Precision和Recall ...
- [机器学习与scikit-learn-51]:模型评估-图解回归模型的评估指标MSE、MAE、RMSE、R2、RSS与代码示例
作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址:https://blog.csdn.net/HiWangWenBing/article/detai ...
- 一文看懂分类模型的评估指标:准确率、精准率、召回率、F1等
2019-11-21 21:59:23 机器学习模型需要有量化的评估指标来评估哪些模型的效果更好. 本文将用通俗易懂的方式讲解分类问题的混淆矩阵和各种评估指标的计算公式.将要给大家介绍的评估指标有:准 ...
- 机器学习模型评估的方法总结(回归、分类模型的评估)
建模的评估一般可以分为回归.分类和聚类的评估,本文主要介绍回归和分类的模型评估: 一.回归模型的评估 主要有以下方法: 指标 描述 metrics方法 Mean Absolute Error(MAE) ...
- 图解机器学习之回归模型性能评估指标
一个房价预测的任务,老板说你看看这个模型咋样? 我们先绘制一个坐标轴: Y 轴为房价,X 轴为年份.将过去房价数据绘制为绿色,回归模型绘制为蓝色. 关键问题是,怎么知道这个模型的好坏呢? 为了评估该模 ...
- 【理论 | 代码】机器学习分类与回归性能评估指标大全
一.回归指标 1.1 均方误差(Mean Squared Error, MSE) MSE 称为均方误差,又被称为 L2 范数损失,该统计参数是预测数据和原始数据对应点误差的平方和的均值,公式如下: M ...
- R语言使用R基础安装中的glm函数构建乳腺癌二分类预测逻辑回归模型、分类预测器(分类变量)被自动替换为一组虚拟编码变量、summary函数查看检查模型、使用table函数计算混淆矩阵评估分类模型性能
R语言使用R基础安装中的glm函数构建乳腺癌二分类预测逻辑回归模型(Logistic regression).分类预测器(分类变量)被自动替换为一组虚拟编码变量.summary函数查看检查模型.使用t ...
- R语言使用xgboost包拟合xgboost回归模型、使用predict函数和训练好的模型进行预测推理、计算回归模型的评估指标MAE、MSE、RMSE
R语言使用xgboost包拟合xgboost回归模型.使用predict函数和训练好的模型进行预测推理.计算回归模型的评估指标MAE.MSE.RMSE 目录
最新文章
- [WS]使用Axis发布简单的Web服务
- aop在项目中的实际运用_mypy在实际项目中的应用
- Pytorch cifar100离线加载二进制文件
- idea的maven调用本地仓库的jar报错
- 新型 JhoneRAT 恶意软件攻击中东地区
- Linux MySQL 常见无法启动或启动异常的解决方案
- matlab2c使用c++实现matlab函数系列教程-conv函数
- lzw编码 matlab,LZW编码算法matlab实现.docx
- 矩阵微分常用公式整理
- 前方高能!公司来了一个low逼程序员
- 浏览器被hao123劫持首页处理
- 需求调研前的准备工作
- 惠普 hp3414 笔记本 电脑 驱动 drivers
- 图书管理系统(查找图书和输出全部图书)
- 强生单剂量新冠疫苗对德尔塔变异病毒有效并可提供持久保护效力
- 国外问卷调查好做吗?为大家分享干货!
- Explaining and Harnessing Adversarial Examples
- Begin...end
- 2021 408计算机学科专业基础综合真题及答案(2009-2020)
- 实验二 PGP的使用【网络安全】