一份非常全面的机器学习分类与回归算法的评估指标汇总

深度学习模型评价指标(RMSE、MSE、MAE、MAPE、SMAPE) MSE(均方误差Mean Square Error) 阅读详情

本文是《机器学习宝典》第 3 篇,读完本文你能够掌握分类与回归算法的评估指标。

PS:文末附有练习题

读完机器学习算法常识之后,你已经知道了什么是欠拟合和过拟合、偏差和方差以及贝叶斯误差。在这篇给大家介绍一些机器学习中离线评估模型性能的一些指标。

当我们训练得到了多个模型之后,如何衡量这几个模型的性能呢?也就是说我们需要一个能够衡量模型“好坏”的标准,我们称之为评估指标。在对比不同的模型效果时,使用不同的评估指标往往会导致不同的结论,这也就是说模型的效果好坏是相对的。

针对不同类型的学习任务,我们有不同的评估指标,这里我们来介绍最常见的分类与回归算法的一些评估指标。

分类指标

生活中大多数的分类问题都属于二分类问题,所以这里以二分类为例,来说明下分类相关的一些指标。

正式介绍指标之前,先来普及一些基本概念:有时候“阳性”、“真”、“正类”、“1” 指的是一回事,“阴性”、“假”、“负类”、“0”指的也是一回事。例如模型对这个样本的预测结果为 1,可以认为模型对这个样本的预测结果为真、或者为正类、或者为阳性,其实说的都是一个意思。

混淆矩阵

混淆矩阵(confusion matrix)是一个评估分类问题常用的工具,对于 k 元分类,其实它就是一个k x k的表格,用来记录分类器的预测结果。对于常见的二分类,它的混淆矩阵是 2x2 的。

在二分类中,可以将样本根据其真实结果和模型的预测结果的组合划分为真阳性(true positive,TP)、真阴性(true negative,TN)、假阳性(false positive,FP)、假阴性(false negative,FN)。根据 TP、TN、FP、FN 即可得到二分类的混淆矩阵。

准确度

准确率(accuracy)是指模型预测正确(包括预测为真正确和预测为假正确)的样本数量占总样本数量的比例,即

其中,表示模型正确分类的样本个数,表示所有的样本个数。

在二分类中,准确率可以通过下面的计算公式得到。

准确率是分类问题中的一个最简单也最直观的评估指标,但是准确率存在一些局限性。比如,在二分类中,当负样本占比 99 %时,如果模型把所有样本都预测为负样本也能获得 99% 的准确率。虽然准确率看起来很高,但是其实这个模型时没有用,因为它找不出一个正样本。

精确率

精确率(precision)是指模型预测为真,实际也为真的样本数量占模型预测所有为真的样本数量的比例,即

举例来说明,比如警察要抓小偷,抓了 10 个人,其中有 6 个人是小偷,那么精确率就是 6/10 = 0.6。

召回率

召回率(recall)有时候也叫查全率,是指模型预测为真,实际也为真的样本数量占实际所有为真的样本数量的比例,即

举例来说明,还是上面的警察抓小偷的例子,抓了 10 个人,其中 6 个人是小偷,还有另外 3 个小偷逃之夭夭,那么召回率就是 6 / ( 6 + 3) ≈ 0.67。

F1值/Fα值

一般来说,精确率和召回率是互斥的,也就是说精确率高的话,召回率会变低;召回率高的话,精确率会变低。所以设计了一个同时考虑精确率和召回率的指标 F1值。F1值是精确率和召回率的调和平均,即

在某些场景下,我们对精确率与召回率的关注程度不一样,这时候,F1值更一般的形式Fα值就能够满足。Fα值定义如下

其中,α 的大小表示召回率对精确率的相对重要程度。

多分类的情况

很多时候我们遇到的是多分类问题,这就意味着每两两类别的组合都对应一个二元的混淆矩阵。假设得到了 n 个二分类的混淆矩阵,那如何来平均这 n 个结果呢?

宏平均

第一种办法就是先在各个混淆矩阵中分别计算出结果,再计算平均值,这种方式称为“宏平均”。

微平均

除了上面的宏平均之外,我们也可以将二元混淆矩阵的对应的元素进行平均,得到 TP、TN、FP、FN 的平均值,然后再根据这些平均值来计算,这种方式称为“微平均”。

ROC

在前面介绍的这些指标中(如准确率、精确率、召回率等)都需要得到模型预测的结果(正类或负类),对很多模型来说,预测得到的是一个属于正类的概率值,所以就需要指定一个阈值,阈值以上的为正类,否则为负类。这个与之的大小直接决定了模型的泛化能力。

有一个评估指标叫受试者工作特征(Receiver Operating Characteristic,ROC)曲线,这种评估指标可以不用指定阈值。ROC曲线的纵轴是真阳率(TPR),横轴是假阳率(FPR)。

真阳率和假阳率的计算公式如下:

可以发现,TPR和Recall的计算公式是一样的。那么如何绘制ROC曲线呢?可以看到,ROC曲线是由一系列 (FPR, TPR)点构成的,但一个特定的模型,只得到一个分类结果,即只有一组 (FPR, TPR),对应ROC曲线上的一个点,如何得到多个呢?

我们将模型对所有样本的预测值(属于正类的概率值)降序排列,然后依次将预测的概率值作为阈值,每次得到该阈值下模型预测结果为正类、负类的样本数,然后生成一组 (FPR, TPR) 值,这样就可以得到ROC曲线上的一点,最后将所有的点连接起来就出现了ROC曲线。很明显,阈值设置的次数越多,就会生成更多的 (FPR, TPR) 值,画出的ROC曲线也就越光滑。也就是说 ROC曲线的光滑程度与阈值设置次数的多少有绝对的关系,与样本数量没有必然联系。现实中,我们画出的 ROC 曲线多数都是不光滑的。

ROC曲线越靠近左上角,表示效果越好。左上角坐标为(0,1),即 FPR = 0,TPR = 1,这意味着 FP(假阳性)=0, FN(假阴性)=0,这就是一个完美的模型,因为能够对所有的样本正确分类。ROC曲线中的对角线(y=x)上的所有的点都表示模型的区分能力与随机猜测没有差别。

AUC

AUC(Area Under Curve)被定义为ROC曲线下的面积,很明显,AUC的结果不会超过 1,通常ROC曲线都在 y = x 这条直线上面,所以,AUC的值一般在 0.5 ~ 1 之间。

如何理解AUC的作用呢?随机挑选一个正样本(P)和负样本(N),模型对这两个样本进行预测得到每个样本属于正类的概率值,根据概率值对样本进行排序后,正样本排在负样本前面的概率就是AUC值。

AUC可以通过下面的公式计算得到。

其中,rank为将模型对样本预测后的概率值从小到大排序后的正样本的序号(排序从1开始),|P|为正样本数,|N|为负样本数。

需要注意的是,如果多个样本被模型预测的概率值一样,那么求rank的时候只需要将这些原始rank加起来求平均即可。所以说相等概率得分的样本,无论正负,谁在前,谁在后无所谓。

对数损失

对数损失(Logistic Loss,logloss)是对预测概率的似然估计,其标准形式为:

对数损失最小化本质是上利用样本中的已知分布,求解导致这种分布的最佳模型参数,使这种分布出现概率最大。

对数损失对应的二分类的计算公式为:

其中,N为样本数,,为第i个样本预测为1的概率。

对数损失在多分类问题中也可以使用,其计算公式为:

其中,N为样本数,C为类别数,表示第i个样本的类别为j,为第i个样本属于类别j的概率。

logloss衡量的是预测概率分布和真实概率分布的差异性,取值越小越好。

回归指标

在回归学习任务中,我们也有一些评估指标,一起来看看吧!

平均绝对误差

平均绝对误差(Mean Absolute Error,MAE)公式为:

其中,N为样本数,为第i个样本的真实值,为第i个样本的预测值。

均方误差

均方误差(Mean Squared Error,MSE)公式为:

平均绝对百分误差

平均绝对百分误差(Mean Absolute Percentage Error,MAPE)公式为:

MAPE通过计算绝对误差百分比来表示预测效果,其取值越小越好。如果MAPE=10,这表明预测平均偏离真实值10%。

由于MAPE计算与量纲无关,因此在特定场景下不同问题具有一定可比性。不过MAPE的缺点也比较明显,在  处无定义。另外需要注意的是,MAPE对负值误差的惩罚大于正值误差,比如预测一个酒店消费是200元,真实值是150元的会比真实值是250的MAPE大。

均方根误差

均方根误差(Root Mean Squared Error)的公式为:

RMSE代表的是预测值和真实值差值的样本标准差。和MAE相比,RMSE对大误差样本有更大的惩罚。不过RMSE有一个缺点就是对离群点敏感,这样会导致RMSE结果非常大。

基于RMSE也有一个常用的变种评估指标叫均方根对数误差(Root Mean Squared Logarithmic Error,RMSLE),其公式为:

RMSLE对预测值偏小的样本惩罚比预测值偏大的样本惩罚更大,比如一个酒店消费均价是200元,预测成150元的惩罚会比预测成250的大。

R2

R2(R-Square)的公式为:

R2用于度量因变量的变异中可由自变量解释部分所占的比例,一般取值范围是 0~1,R2越接近1,表明回归平方和占总平方和的比例越大,回归线与各观测点越接近,用x的变化来解释y值变差的部分就越多,回归的拟合程度就越好。

练习题

看完这篇文章,我们来做几道练习题来检验下学习成果:

  1. 为什么说ROC曲线的光滑程度与样本数量没有绝对的关系呢?

  2. 如果一个模型的AUC小于0.5,可能是因为什么原因造成的呢?

  3. 在一个预测流量的场景中,尝试了多种回归模型,但是得到的 RMSE 指标都非常高,考虑下可能是因为什么原因造成的呢?

  4. 在一个二分类问题中,15个样本的真实结果为[0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0, 0],模型的预测结果为[1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 1],计算准确率、精确率、召回率以及F1值。

  5. 在一个二分类问题中,7个样本[A, B, C, D, E, F, G]的真实结果为[1, 1, 0, 0, 1, 1, 0],模型的预测概率为[0.8, 0.7, 0.5, 0.5, 0.5, 0.5, 0.3],计算AUC值。

想要学习更多机人工智能知识,欢迎关注公众号AI派!

以上所有的练习题答案我都会公布在我的知识星球中,方便后续做一个知识沉淀;另外,关于文章有任何疑问或者想要深入学习与交流,都可以加入我的知识星球来交流(加入方式:扫描下方二维码或者点击“阅读原文”)。

参考:

[1] 周志华.机器学习.第二章第三节(性能度量)
[2] 美团算法团队.美团机器学习实战.第一章第一节(评估指标)
[3] https://blog.youkuaiyun.com/qq_22238533/article/details/78666436
[4] https://blog.youkuaiyun.com/u013704227/article/details/77604500

 

机器学习中的评价指标(分类指标评Accuracy、Precision、Recall、F1-score、ROC、AUC )(回归指标评价MSE、RMSE、MAE、MAPE、R Squared) 文章目录1.机器学习中的评价指标基础(一)分类指标评价1.Accuracy2.Precision、查准率3.Recall、查全率4.F1-score举个例子:5.ROC6.AUC(二)回归指标评价1.均方误差(MSE)2.均方根误差(RMSE)3.MAE(平均绝对误差)4.MAPE5.R Squared 1.机器学习中的评价指标 简要介绍精度、精确率、召回率、P-R曲线、F1 值、TPR、FPR、... 阅读详情

相关推荐

机器学习之分类与回归的常见评价指标

详细介绍了机器学习中分类和回归算法的常见评价指标,如分类问题的精确率、准确率、召回率、F1值及ROC曲线;回归问题的决定系数、均方误差、平均绝对误差等。利用python实现评价指标的计算。

m0_69435474的博客 3806

机器学习预测评价常用指标

在我们建模的时候,我们要去选择出我们最棒的模型,就比如昨天的波士顿房价预测采用xgbt里面,我们最后需要选择出表现最好的那棵树,那怎么去评价好坏?上图蓝点是真实值,绿线为样本均值,黄线可以预测样本趋势,但是显而易见,黄线的MSE比绿线高,哪怕其能表达样本规律,MSE上黄线就是输了!如A类有995个,B类5个,我将1000个样本99.5%,你猜一个样本是不是A类的时候,99.5%的情况你都会猜对,岂不是成了大预言家?eg若y的单位是万元,MSE计算出来的是万元的平方,对于该值,难以解释该值含义。...

weixin_54202028的博客 1万+

模型评估指标详解:分类与回归场景

不同的模型评估指标适用于不同的场景和任务。在分类问题中,我们需要综合考虑准确率、精确率、召回率、F1 值、ROC 曲线和 AUC 值等指标,以全面评估模型的性能;在回归问题中,均方误差、均方根误差、平均绝对误差和决定系数等指标可以帮助我们衡量模型的预测准确性和拟合优度。在实际应用中,我们应根据数据特性、业务需求选择合适的评估指标,并结合多指标进行综合评估,同时注意评估集的选择,以确保评估结果的可靠性。

ZhShy 1205

模型评估指标总结(预测指标、分类指标、回归指标)

关于模型指标评估总结,涉及预测指标(MAE/MSE/RMSE/等)、分类指标(PR曲线、ROC曲线和AUC曲线)和回归指标(MAE、MSE),还有深度学习中的一些概念如:KL散度、JS散度、常用损失函数,鲁棒性与泛化性

m0_49866160的博客 5万+

python使用numpy包编写自定义函数计算MAPE(平均绝对百分比误差)指标mean absolute percentage error (MAPE)、MAPE指标解读、MAPE指标使用的注意事项

python使用numpy包编写自定义函数计算MAPE(平均绝对百分比误差)指标mean absolute percentage error (MAPE)、MAPE指标解读、MAPE指标使用的注意事项

data+scenario+science+insight 3854

机器学习框架及评估指标详解

目录 机器学习的步骤 train_test_split函数的详解 机器学习评估指标 分类模型评估指标 混淆矩阵 ROC曲线 利用ROC的其他评估标准 Python 绘制ROC曲线求解AUC模板代码 错误率 精度 查准率、查全率 P-R曲线 Python绘制P-R曲线模板代码 平衡点(BEP) F1度量 Python求解F1_score代码 回归模型评估指标 均方误差 MAE(平均绝对误差) MAPE(平均绝对百分比误差) RMSE(均方根误差) R Square(

迷茫与徘徊只会让你陷入绝境,欢迎私信博主,带你开始提升变现价值! 6736

全面的机器学习分类与回归算法的评估指标汇总

本文是《机器学习宝典》第 3 篇,读完本文你能够掌握分类与回归算法的评估指标。 PS:文末附有练习题 读完机器学习算法常识之后,你已经知道了什么是欠拟合和过拟合、偏差和方差以及贝叶斯误差。在这篇给大家介绍一些机器学习中离线评估模型性能的一些指标。 当我们训练得到了多个模型之后,如何衡量这几个模型的性能呢?也就是说我们需要一个能够衡量模型“好坏”的标准,我们称之为评估指...

Mei_ZS的博客 1062

几种MAPE的实现方式

目录方法一 (label 中有NaN值)方法二(label 中有零值)方法三 (限制过大过小值) 方法一 (label 中有NaN值) 这种方式是为了防止label里面有NaN值,但没考虑是否为零值。这里以pytorch进行举例。 def masked_mape(preds, labels, null_val=np.nan): if np.isnan(null_val): mask = ~torch.isnan(labels) else: mask = (labels!=null_val) mask = mask.float()

回归、分类模型的评估指标

混淆矩阵是一种表格,用于展示分类模型在各个类别上的正确预测和误分类的数量情况。它能够详细描述分类器的表现,尤其在多分类任务中。

ydl1128的博客 1880

【PyBind11+anaconda+opencv+windows11+cmake+wsl+vscode】从入门到跑通。构建基于opencv c++的python package

如何安装请详见上文 【PyBind11+anaconda+opencv+windows11+cmake+wsl+vscode】从入门到跑通。构建基于opencv c++的python接口_子韵如初的博客-优快云博客w不需要安装啥x11 、 xming直接mobxterm可以搞定点击右上角的X server打开可视化服务器然后 apt install x11-apps -yxclock 搞定从mobxterm可以看到display的端口X11显示可视化的原理是就是通过X协议,类似于http对linux于w

weixin_43953700的博客 3万+

【深圳】IBM V3500存储维修 更换控制器故障

今天给大家分享的是深圳.福田区一个电商客户公司一台IBM Storwize v3500存储控制器故障从远程诊断 收集日志 分析结果的实际案例,如图所示通过存储管理口登陆进去后直接看到少了一个控制器,经过工程师分析日志后判定为该控制器损坏,接下来更换控制器配件,标准套件的控制器不带子卡和电池,所以需要把故障控制器上的子卡和电池拆下来装到新控制器上,这个电池拆还需要点技巧,接着把新的控制器插回V3500主机,等待大约十分钟后,新控制器指示灯全绿,管理界面看到节点已联机;冠峰科技-爱科技爱分享。

OuYangYuXi的博客 4579

模型评估:机器学习模型性能指标汇总

当P和R的值接近时,F1值最大,此时画连接(0,0)和(1,1)的线,线和PRC重合的地方的F1是这条线最大的F1(光滑的情况下),此时的F1对于PRC就好像AUC对于ROC一样。3、均方根误差(RMSE) RMSE虽然广为使用,但是其存在一些缺点,因为它是使用平均误差,而平均值对异常点(outliers)较敏感,如果回归器对某个点的回归值很不理性,那么它的误差则较大,从而会对RMSE的值有较大影响,即平均值是非鲁棒的。2,嫌疑人定罪 基于不错怪一个好人的原则,对于嫌疑人的定罪我们希望是非常准确的。

zyjwjck的博客 3017

Unity雷达图效果实现

unity雷达图源码

a604263644的博客 1026

机器学习模型评估指标

在机器学习建模过程中,针对不同的问题,需采用不同的模型评估指标。 主要分为两大类:分类、回归。 一、分类 1、混淆矩阵 2、准确率(Accuracy) 3、错误率(Error rate) 4、精确率(Precision) 5、召回率(Recall) 6、F1 score 7、ROC曲线 8、AUC 9、PR曲线 10、对数损失(log_loss) 11、分类指标的文本报告(classification_report) 二、回归 1、平均绝对误差(MAE) 2、均方误差(MSE) 3、均方根误差(RMS

dfly_zx的博客 8390

【反卷积算法】Richardson-Lucy (RL) :通过不断迭代更新图像估计值

Richardson-Lucy(RL)反卷积算法:是一种基于最大似然估计(Maximum Likelihood Estimation, MLE)的图像去卷积方法,常用于去模糊和图像增强。通过不断地更新图像估计值,来最小化模糊图像和恢复图像之间的误差,逐步消除模糊,最终接近真实的原始图像,每次迭代都会根据当前估计的图像来修正下次迭代的结果。

📷 图像处理践行者 | 传统算法 · 深度学习 · 多模态 | 分享实战经验与技术洞见,探索从像素到智能的无限可能。 3040

Open3D (C++) 计算点云坐标最值及其索引

使用C++版本的Open3D计算点云最值点及其对应的下标索引

点云侠的博客 730

Python机器学习--聚类-分类-回归三大算法评估指标

算法评估指标简介 对于聚类,分类,回归三大算法类,有不同的算法评估指标,不同的评估指标. 分类算法常用评估指标:准确率,查准率,查全率,F1-score,PR曲线,ROC曲线和AUC指标,ROC曲线下的面积就是AUC指标. 聚类算法常用评估指标:轮廓系数 SSE(误差平方和) 回归算法的评估指标:R方范围[-inf,1] (真实值与预测 ),MSE,MAE,RMSE 分类算法评估指标 混淆矩阵 在介绍评估指标之前,先来认识一下混淆矩阵,在分类任务下,预测结果和真实结果之间存在四种不同组合,这四种

轻窕 4456

基于Matlab生成并可视化多架飞机轨迹仿真(附源码)

这使我们可以轻松地对直线和恒定转弯进行建模,并具有额外的自由度,可以在直线段和曲线段之间平滑过渡。同样,空气中的物体会经历重力的影响,遵循抛物线(二次)路径。需要更多的航点来适应这些变化,但是轨迹的其余部分需要更少的点。第三个轨迹,如下所示,代表了一架速度更高的飞机。它由两个恒定的转弯组成,飞机在第二个转弯的中间减速。一旦知道(并设置了)物体穿过空间的物理路径,物体的速度作为行进距离的函数就通过三次埃尔米特插值来确定。在此示例中,学习了内部使用的插值符背后的概念,并展示了如何使用少量航点重现场景。

珞瑜的博客 5464

回归算法全解析!一文读懂机器学习中的回归模型

本文全面深入地探讨了机器学习中的回归问题,从基础概念和常用算法,到评估指标、算法选择,以及面对的挑战与解决方案。文章提供了丰富的技术细节和实用指导,旨在帮助读者更有效地理解和应用回归模型。

TechLead 7088

【AI编程】Claude Code 最强AI 编程利器项目实战详解

Claude Code 最强AI 编程利器项目实战详解

congge 7398

打通ZYNQ的任督二脉:AXI_FIFO数据交互全解析

FIFO(First In First Out,先进先出)是一种经典的数据缓冲结构,就像排队买票一样,先来的人先得到服务。时钟域交叉(CDC):连接不同时钟频率的模块数据缓冲:平衡生产者和消费者的速度差异流量控制:防止数据丢失或溢出input clk,// 输入AXI4-Stream接口(从PS到PL)// 输出AXI4-Stream接口(从PL到PS)// 状态指示信号// 定义状态机状态// 数据缓存// 8个深度的缓存// 流水线处理寄存器。

QQ_778132974的博客 306

机器学习常用的评估指标(持续更新)

机器学习常用的评估指标分类算法常见的评估指标1、混淆矩阵(Confuse Matrix)2、准确率(Accuracy)3、精确率(Precision)4、召回率(Recall)5、F1 Score6、P-R曲线(Precision-Recall Curve)7、ROC(Receiver Operating Characteristic)金融风控预测类常见的评估指标1、KS(Kolmogorov-Smirnov)2、ROC3、AUC 分类算法常见的评估指标 1、混淆矩阵(Confuse Matrix) (1

weixin_43999137的博客 4395

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: 机器学习中你不可不知的几个算法常识
下一篇: 王的机器 - 快乐的终身学习者!
Wang_AI
博客等级 码龄12年 992粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值