成为AI产品经理——回归模型评估(MSE、RMSE、MAE、R方)

分类问题的评估是看实际类别和预测类别是否一致,它的评估指标主要有混淆矩阵、AUC、KS。回归问题的评估是看实际值和预测值是否一致,它的评估指标包括MAE、MSE、RMSE、R方。

如果我们预测第二天某支股票的价格,给一个模型 y=1.5x,x是最近60天股票的价格的平均值,y是预测的第二天股票的结果。我们选择三支股票,记录它过去60天的均价,以及模型预测出来的价格和实际的价格。

下面的图片是将过去60天股票均价作为X轴,将股票价格作为Y轴做出的散点图。

我们想要算出预测和实际结果的差异,最原本的方法是直接将每一个样本的预测值和实际值做差,再将所有的差值结果进行相加。

它们的差值情况分别为:22-12=10,40-24=16,26-36=-10。可以看到Z公司的差值为-10,它与其他的差值相加会造成抵消误差的情况,所以这种方法不合理。

为了避免差值相互抵消的情况,我们将差值的平方相加。

(22-12)^{2}+(40-24)^{2}+(26-36)^{2} = 456

这种计算误差的方式在会受到样本个数的影响,在样本比较少的情况下它的误差会比较小,样本比较多的话,误差会较大。为了避免这种情况的出现,我们将平方和计算出来的误差除以样本个数就可以不受样本个数的影响,这种计算误差的方式我们称为均方误差

一、MSE(均方误差)

MSE=\frac{1}{n}\sum_{i=1}^{n}\left(y_{i}-\hat{y}_{i}\right)^{2}

其中n:样本数量  y_{i}:表示实际值 \hat{y}_{i}:表示预测值

计算方式就是:样本的实际值和样本预测值差值的平方再除以样本数量。

这个值一定是大于等于0的,我们在评估的时候应该让这个值越小越好

二、RMSE(均方根误差)

在使用均方误差对于值取平方的时候,会导致量纲发生变化,比如:我们计算的是米,但是平方之后是平方米,为了保持量纲一致,我们再对它开方,也就是均方根误差

RMSE = \sqrt[2]{MSE}=\sqrt[2]{\frac{1}{n}\sum_{i=1}^{n}\left(y_{i}-\hat{y}_{i}\right)^{2}}

这个数值结果也是越小越好的。 

三、MAE(绝对平均值)

我们将差值取平方的原因是为了避免正负抵消操作,我们还可以使用差值取绝对值的方式来避免抵消,计算误差。

MAE = \frac{1}{n}\sum_{i=1}^n\left|y{i}-\hat{y}_{i}\right|

这个数值结果也是越小越好。 

四、R方

在模型预测过程中,我们可能会想用同一个模型解决不同得问题。由于预测样本不一致,最终的预测结果可能会随着量纲的差异上至几万,下至几百。为了避免这种情况的出现,将误差使用0-1的概率表示出来,我们使用R方的计算公式。

R^{2} = \frac{TSS-RSS}{TSS}

R^2是实际结果和预测值之间相关系数的平方。

TSS:表示总离差平方和。就是实际值和实际值均值的差值平方和。

RSS:表示残差平方和。实际值和预测值之间的差值平方和。

它的值一般在0-1的范围内,越靠近1,说明模型预测的越准确。 

我们继续使用上面股票预测的例子来说明这个R方的计算方法。

第一步:求实际值均值:\frac{22+40+26}{3}=29.3 

第二步:TSS=(22-29.3)^2+(40-29.3)^2+(26-29.3)^2 

第三步:RSS = (22-12)^2+(40-24)^2+(26-36)^2 

第四步:带入R^{2}公式,R^2 = \frac{TSS+RSS}{TSS} 

五、误差公式选择

均方误差会进行差值平方,有一个数据放大的过程。均方根误差虽然平方再开方,但是还是会比实际的误差大,所以我们一般想要更接近误差的数据,选择MAE。

对于算法工程师而言,将误差放大有利于他们发现误差。算法工程师一般会选择MSE和RMSE。

六、总结

1.想获得更加真实的误差结果选择MAE,想要找到更明确的误差选择MSE。

2.如果想要将一个模型应用解决不同的问题时,选择R^2可以看到模型在那个问题上表现得更好。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/245417.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mockito加junit实现单元测试笔记

目录 一、简介1.1 单元测试的特点1.2 mock类框架使用场景1.3 常用mock类框架1.3.1 mockito1.3.2 easymock1.3.3 powermock1.3.4 JMockit 二、mockito的单独使用2.1 mock对象与spy对象2.2 初始化mock/spy对象的方式初始化mock/spy对象第1种方式初始化mock/spy对象第2种方式初始化…

git的安装及ssh配置(Linux)

环境 CentOS Linux release 7.9.2009 (Core) Xftp7 安装 方法一:yum安装 yum是一个客户端软件,就好比手机上的应用商店,帮助我们对软件的下载、安装和卸载 1、首先查看自己是否安装过git [rootxiaoxi ~]# git -bash: git: command not fo…

C++ day49 买卖股票的最佳时机

题目1:121 买卖股票的最佳时机 题目链接:买卖股票的最佳时机 对题目的理解 prices[i]表示一支股票在第i天的价格,只能在某一天买入这支股票,并在之后的某一天卖出该股票,从而获得最大利润,返回该最大值&…

JavaScript空值合并运算符

The Nullish Coalescing Operator(空值合并运算符)是一种 JavaScript 的新运算符,用于解决默认值设定中存在的一些问题。它的语法为 ??(两个问号),表示当左侧的操作数为 null 或 undefined 时&#xff0c…

实施工程师运维工程师面试题

Linux 1.请使用命令行拉取SFTP服务器/data/20221108/123.csv 文件,到本机一/data/20221108目录中。 使用命令行拉取SFTP服务器文件到本机指定目录,可以使用sftp命令。假设SFTP服务器的IP地址为192.168.1.100,用户名为username,密…

【源码篇】基于SpringBoot+thymeleaf实现的蓝天幼儿园管理系统

基于SpringBootthymeleaf实现的蓝天幼儿园管理系统 文章目录 系统说明技术选型成果展示账号地址及其他说明 系统说明 基于SpringBootthymeleaf实现的蓝天幼儿园管理系统是为幼儿园提供的一套管理平台,可以提高幼儿园信息管理的准确性,系统将信息准确无误…

替代AMS1117-ADJ可调输出线性稳压器(LDO)

1、概 述 PC1117-ADJ/1.2/1.5/1.8/2.5/2.85/3.3/5是最大输出电流为1A的低压降正向稳压器,其中 PC1117-ADJ是可调输出电压版,只需要两个外接电阻即可实现输出电压在1.25V~13.8V范围内的调节,而PC1117-1.2/1.5/1.8/2.5/2.85/3.3/5是固定输出1.…

数据库中的笛卡尔积:定义、生成与避免策略

笛卡尔积(Cartesian Product)是一个在数据库和数据仓库中常见的概念。它来源于数学中的集合论,主要用于描述两个集合中元素之间所有可能的配对情况。在数据库领域,当你在查询中连接两个表时,如果没有指定适当的连接条件…

备忘录怎么传到电脑?备忘录手机电脑互传方法

对于那些记性不好的人来说,手机上的备忘录简直是个不可或缺的好帮手。可是有时候,我们在手机上记录的内容需要在电脑上查看,这时候该怎么办呢? 曾经,我也为备忘录的手机电脑互传问题头疼不已。手机上记录的事项&#…

maven篇---第三篇

系列文章目录 文章目录 系列文章目录前言一、如何解决依赖传递引起的版本冲突?二、说说maven的依赖原则三、说说依赖的解析机制?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享…

Linux学习笔记7-IIC的应用

接下来进入其他两种串行通信方式:SPI和I2C的学习,因为以后的项目中会用到这些通信方式,而且正点原子的开发板里面也有用I2C和SPI通信的传感器来做实例,分别是一个距离传感器和六轴陀螺仪,这样就可以很好的通过实例来学…

Java中异常处理顺序和全局异常处理器

异常处理顺序 我们直接通过代码看下Java中异常的处理顺序。 数组越界异常属于运行时异常,被捕捉后就停止了,打印结果为数组越界了。 Test public void test2(){int[] arr new int[4];try{System.out.println(arr[5]);}catch (ArrayIndexOutOfBoundsE…