回归问题的评价指标 MAE MSE RMSE R2 score Adjusted R2 score 和 重要知识点总结

2023-05-16

除了MSE 和MAE外回归还有什么重要的指标吗?

R2 score & Adjusted R2 score

我们用一个回归问题来介绍这些指标,我们的其中输入是工作经验,输出是薪水。下图显示了为预测薪水而绘制的线性回归线。
请添加图片描述

1、平均绝对误差(MAE):

在这里插入图片描述

平均绝对误差 (MAE) 是最简单的回归度量。它将每个实际值和预测值的差值相加,最后除以观察次数。 为了使回归模型被认为是一个好的模型,MAE 应该尽可能小。

MAE的优点是:

简单易懂。 结果将具有与输出相同的单位。 例如:如果输出列的单位是 LPA,那么如果 MAE 为 1.2,那么我们可以解释结果是
+1.2LPA 或 -1.2LPA,MAE 对异常值相对稳定(与其他一些回归指标相比,MAE 受异常值的影响较小)。

MAE的缺点:MAE使用的是模函数,但模函数不是在所有点处都可微的,所以很多情况下不能作为损失函数。

2、均方误差(MSE):

在这里插入图片描述

MSE取每个实际值和预测值之间的差值,然后将差值平方并将它们相加,最后除以观测数量。 为了使回归模型被认为是一个好的模型,MSE
应该尽可能小。

MSE的优点: 平方函数在所有点上都是可微的,因此它可以用作损失函数。

MSE的缺点: 由于 MSE 使用平方函数,结果的单位是输出的平方。
因此很难解释结果。由于它使用平方函数,如果数据中有异常值,则差值也会被平方,因此,MSE 对异常值不稳定。

3、均方根误差 (RMSE):

在这里插入图片描述

均方根误差(RMSE) :取每个实际值和预测值之间的差值,然后将差值平方并将它们相加,最后除以观测数量。 然后取结果的平方根。 因此,RMSE 是 MSE 的平方根。 为了使回归模型被认为是一个好的模型,RMSE 应该尽可能小。

RMSE 解决了 MSE 的问题,单位将与输出的单位相同,因为它取平方根,但仍然对异常值不那么稳定。

上述指标取决于我们正在解决的问题的上下文, 我们不能在不了解实际问题的情况下,只看 MAE、MSE 和 RMSE 的值来判断模型的好坏。

4、R2 score:

在这里插入图片描述

如果我们没有任何输入数据,但是想知道他在这家公司能拿到多少薪水,那么我们能做的最好的事情就是给他们所有员工薪水的平均值。

R2 score 给出的值介于 0 到 1 之间,可以针对任何上下文进行解释。 它可以理解为是拟合度的好坏。

SSR 是回归线的误差平方和,SSM 是均线误差的平方和。 我们将回归线与平均线进行比较。

如果 R2 得分为 0,则意味着我们的模型与平均线的结果是相同的,因此需要改进我们的模型。

如果 R2 得分为 1,则等式的右侧部分变为 0,这只有在我们的模型适合每个数据点并且没有出现误差时才会发生。

如果 R2 得分为负,则表示等式右侧大于 1,这可能发生在 SSR > SSM
时。这意味着我们的模型比平均线最差,也就是说我们的模型还不如取平均数进行预测

如果我们模型的 R2 得分为 0.8,这意味着可以说模型能够解释 80%
的输出方差。也就是说,80%的工资变化可以用输入(工作年限)来解释,但剩下的20%是未知的。

如果我们的模型有2个特征,工作年限和面试分数,那么我们的模型能够使用这两个输入特征解释80%的工资变化。

R2的缺点:

随着输入特征数量的增加,R2会趋于相应的增加或者保持不变,但永远不会下降,即使输入特征对我们的模型不重要(例如,将面试当天的气温添加到我们的示例中,R2是不会下降的即使温度对输出不重要)。

5、Adjusted R2 score:

在这里插入图片描述
上式中R2为普通R2,结果为R2(Adj),n为观测数(行),p为独立特征数。Adjusted R2解决了R2的问题。

在这里插入图片描述
当我们添加对我们的模型不那么重要的特性时,比如添加温度来预测工资,
则上面式子中,n不变,p变大,R2基本不变(略微变大,因为增加的是不重要特征),显然,最终结果R2(Adj)减小。
在这里插入图片描述
当添加对模型很重要的特性时,比如添加面试分数来预测工资,
则上面式子中,n不变,p变大,R2显著变大(因为增加的是重要特征),显然,最终结果R2(Adj)减小。

【其他知识点】

1、线性回归的假设是什么?

线性回归有四个假设

线性:自变量(x)和因变量(y)之间应该存在线性关系,这意味着x值的变化也应该在相同方向上改变y值。
独立性:特征应该相互独立,这意味着最小的多重共线性。
正态性:残差应该是正态分布的。
同方差性:回归线周围数据点的方差对于所有值应该相同。

2、什么是残差。它如何用于评估回归模型?

在这里插入图片描述

残差是指预测值与观测值之间的误差。它测量数据点与回归线的距离。它是通过从观察值中减去预测值的计算机。

残差图是评估回归模型的好方法。它是一个图表,在垂直轴上显示所有残差,在 x
轴上显示特征。如果数据点随机散布在没有图案的线上,那么线性回归模型非常适合数据,否则我们应该使用非线性模型。

3、如何区分线性回归模型和非线性回归模型?

在这里插入图片描述

两者都是回归问题的类型。两者的区别在于他们训练的数据。

线性回归模型假设特征和标签之间存在线性关系,这意味着如果我们获取所有数据点并将它们绘制成线性(直线)线应该适合数据。

非线性回归模型假设变量之间没有线性关系。非线性(曲线)线应该能够正确地分离和拟合数据。

找出数据是线性还是非线性的三种最佳方法

  • 残差图
  • 散点图
  • 假设数据是线性的,训练一个线性模型并通过准确率进行评估。

4、什么是多重共线性。它如何影响模型性能?

当某些特征彼此高度相关时,就会发生多重共线性。相关性是指表示一个变量如何受到另一个变量变化影响的度量。

如果特征 a 的增加导致特征 b 的增加,那么这两个特征是正相关的。如果 a 的增加导致特征 b
的减少,那么这两个特征是负相关的。在训练数据上有两个高度相关的变量会导致多重共线性,因为它的模型无法在数据中找到模式,从而导致模型性能不佳。所以在训练模型之前首先要尽量消除多重共线性。

5、异常值如何影响线性回归模型的性能?

在这里插入图片描述

异常值是值与数据点的平均值范围不同的数据点。换句话说,这些点与数据不同或在第 3 标准之外。

线性回归模型试图找到一条可以减少残差的最佳拟合线。如果数据包含异常值,则最佳拟合线将向异常值移动一点,从而增加错误率并得出具有非常高 MSE
的模型。

6、什么是 MSE 和MAE有什么区别?

MSE 代表均方误差,它是实际值和预测值之间的平方差。而 MAE 是目标值和预测值之间的绝对差。

MSE 会惩罚大错误,而 MAE 不会。随着 MSE 和 MAE 的值都降低,模型趋向于一条更好的拟合线。

7、L1 和 L2 正则化是什么,应该在什么时候使用?

在机器学习中,我们的主要目标是创建一个可以在训练和测试数据上表现更好的通用模型,但是在数据非常少的情况下,基本的线性回归模型往往会过度拟合,因此我们会使用
l1 和l2 正则化。

L1 正则化或 lasso 回归通过在成本函数内添加添加斜率的绝对值作为惩罚项。有助于通过删除斜率值小于阈值的所有数据点来去除异常值。

L2 正则化或ridge 回归增加了相当于系数大小平方的惩罚项。它会惩罚具有较高斜率值的特征。

l1 和 l2 在训练数据较少、方差高、预测特征大于观察值以及数据存在多重共线性的情况下都很有用。

8、异方差是什么意思?

它是指最佳拟合线周围的数据点的方差在一个范围内不一样的情况。它导致残差的不均匀分散。如果它存在于数据中,那么模型倾向于预测无效输出。检验异方差的最好方法之一是绘制残差图。

数据内部异方差的最大原因之一是范围特征之间的巨大差异。例如,如果我们有一个从 1 到 100000 的列,那么将值增加 10%
不会改变较低的值,但在较高的值时则会产生非常大的差异,从而产生很大的方差差异的数据点。

9、方差膨胀因子的作用是什么的作用是什么?

方差膨胀因子(vif)用于找出使用其他自变量可预测自变量的程度。

让我们以具有 v1、v2、v3、v4、v5 和 v6 特征的示例数据为例。现在,为了计算 v1 的
vif,将其视为一个预测变量,并尝试使用所有其他预测变量对其进行预测。

如果 VIF 的值很小,那么最好从数据中删除该变量。因为较小的值表示变量之间的高相关性。

10、逐步回归(stepwise regression)如何工作?

逐步回归是在假设检验的帮助下,通过移除或添加预测变量来创建回归模型的一种方法。它通过迭代检验每个自变量的显著性来预测因变量,并在每次迭代之后删除或添加一些特征。它运行n次,并试图找到最佳的参数组合,以预测因变量的观测值和预测值之间的误差最小。

它可以非常高效地管理大量数据,并解决高维问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

回归问题的评价指标 MAE MSE RMSE R2 score Adjusted R2 score 和 重要知识点总结 的相关文章

  • Docker容器进入的4种方式

    Docker容器进入的4种方式 在使用Docker创建了容器之后 xff0c 大家比较关心的就是如何进入该容器了 xff0c 其实进入Docker容器有好几多种方式 xff0c 这里我们就讲一下常用的几种进入Docker容器的方法 进入Do
  • 清晰解读C语言中的比特序、字节序、位域、大小端

    一 比特序 位序 比特序表示一个字节中8个比特位 xff08 bit xff09 之间的顺序问题 分为LSB 0 位序和MSB 0 位序 LSB 最低有效位 MSB 最高有效位 LSB least significant bit 0位序 x
  • 【转载】四种常见系统架构介绍

    转自于 四种常见系统架构介绍 宇大 大 博客园 软件架构 xff08 software architecture xff09 就是软件的基本结构 合适的架构是软件成功的最重要因素之一 大型软件公司通常有专门的架构师职位 xff08 arch
  • 在Ubuntu 20.04上通过Docker使用ROS Kinetic (含RViz, Gazebo等图形界面及加速方法)

    背景 传统上 xff0c ROS 1的每一代系统都基于某一个版本的Ubuntu系统进行开发 xff0c 而其依赖库规模庞大 xff0c 再加上Python 2 3的转换问题 xff0c 导致在不同版本的Linux系统上原生编译安装非对应版本
  • 嵌入式开发中断全解(2)Hard Fault的诊断

    承接上次的文章 xff0c 讲几个大家应该都看过下面的几个中断 xff0c 有的是在启动文件中或者是 c文件中 注意 xff1a 上述是ST公司的Stm32芯片 这里的GD32芯片是国产芯片 xff0c 和stm32类似的操作 xff0c
  • 梯度、Hessian矩阵、Jacobian矩阵的计算

    x表示为如下列向量 xff1a 一 f x 为一维 此时其一阶导数构成的向量为梯度向量g x xff0c 其二阶导数构成的矩阵为Hessian xff08 海森 黑塞 xff09 矩阵G x xff1b 导数可以表示为 xff1a 梯度向量
  • py基础之猜拳游戏的实现

    题目 xff1a 用所学的 py 基础实现猜拳游戏的 5 局 3 胜 xff08 面向对象之前的所有基础知识 xff09 要求 xff1a 5 局 3 胜 xff0c 平局时再加一局 人与电脑对局 思路 xff1a 用 0 表示剪刀 xff
  • 操作系统历史与设计理念

    操作系统的发展并不是一蹴而就的 xff0c 直到今天操作系统仍在不断发展中 xff0c 它与计算机硬件的发展息息相关 xff0c 例如内存 cpu等 以下是操作系统大致的演变过程 xff1a 到现如今 xff0c 计算机系统已经发生了翻天覆
  • 微软牵手大疆打造先进无人机技术

    2018微软人工智能大会正式开幕 xff0c 在大会上微软宣布 xff0c 全球最大的无人机制造商大疆创新 DJI 正在与微软合作 xff0c 打造面向企业市场的先进无人机技术 大疆创新首席科学家吴迪表示 xff0c 基于双方的战略合作 x
  • Linux环境使用VSCode调试简单C++代码

    本文将通过演示一个简单C 43 43 代码的编译调试过程 xff0c 介绍在VSCode中如何使用Linux环境下的GCC C 43 43 编译器 g 43 43 和GDB 调试器 gdb 关于GCC g 43 43 gcc gdb xff
  • layui date控件的使用

    最近项目多用layui xff0c 就总结一下 span class token tag span class token tag span class token punctuation lt span div span span cla
  • putty超时解决方案

    putty连续3分钟左右没有输入 就自动断开 然后必须重新登陆 很麻烦 在网上查了很多资料 发现原因有多种 环境变量TMOUT引起 ClientAliveCountMax和ClientAliveInterval设置问题或者甚至是防火墙的设置
  • 最好的黑客网站

    全国最早最大的黑客网站 黑客基地 xff1a http vip hackbase com 学黑客必去的网站 黑客基地 xff1a http www hackbase com 新手学黑客快速入门的好地方 xff1a http vip hack
  • mysql-connector-java-5.1.40-bin.jar包

    mysql connector java 5 1 40 bin jar 链接 xff1a https pan baidu com s 1G7 FsxkEJfZ4Cy6R s5j g 提取码 xff1a 5r5o
  • 利用spm12将dicom医学图像格式转成NII格式

    废话不多说 xff0c 直接上干货 xff0c 一 首先下载spm12 国外的下载源 xff0c 比较慢 xff0c 这里有百度网盘 xff0c 需要的直接下载 xff1a 链接 xff1a https pan baidu com s 1Z
  • securityCRT ssh远程开启mysql,断开连接后,mysql服务就停止服务

    问题描述 xff1a ssh远程连接服务器 xff0c 在服务器中开启mysql服务 xff0c 在正常断开ssh 连接后 xff0c 重新连接口查看mysql的状态发现 xff0c mysql的状态 xff1a 重新启动mysql xff
  • py基础之掷骰子游戏的实现

    掷骰子游戏 xff08 循环的使用及掌握 xff09 0 两个骰子都是1 6 1 玩游戏要有金币 xff0c 没有金币不能玩游戏 2 玩一局游戏赠金币一枚 xff0c 充值获得金币 3 充值为10元的倍数 xff0c 10元 20个金币 x
  • centOS 不能上外网怎么下载依赖 (通过挂载镜像)

    问题 我们在服务器上部署系统环境的时候 xff0c 常常会遇到找不到该命令 bash span class token operator span span class token punctuation span span class t
  • linux 搭建FTP服务器

    linux 搭建FTP服务器 网上对于ftp搭建有很多 xff0c 但是说的比较的麻烦 xff0c 而且十分容易出错 xff0c 并且在创建完成后存在一些配置的注意事项 废话不多说 xff0c 现在开始 1 安装 vsftpd 安装FTP服
  • 提取论文中公式神奇(写论文的福音)

    写论文还在愁怎么写复杂的公式吗 xff0c 想引用其他的论文的公式 xff0c 发现都是这样的 P X i

随机推荐

  • java中list.add添加元素覆盖之前的问题

    1 在码代码时 xff0c 发现一个问题 xff1a 使用 list lt object gt list 61 new Arraylist lt object gt list add object xff1b 出现之前添加的元素被最后的元素
  • 线性最优解java实现+Cplex java调用

    一 xff1a cplex的使用 xff1a 1 1 导入cplex jar 包的地址 xff1a https pan baidu com s 1Q0Bv24EQdelV2rY IrLoZQ 提取码 xff1a xn14 1 2 将cple
  • KNN算法(K临近算法)及使用KNN算法实现手写数字0-9识别

    首先感谢博主倔强的小彬雅 xff0c 本文使用的素材及部分代码来源其博文机器学习入门 用KNN实现手写数字图片识别 xff08 包含自己图片转化 xff09 xff0c 需要下载素材的可以到其博文最后进行下载 关于KNN算法 knn算法也叫
  • 如何学习开源飞控

    前言 有一段时间没有更新文章了 新的一年新气象 xff0c 因此还是要抽出时间 xff0c 写点总结与思考 xff0c 对自己的成长也是很有帮助 今天主要想聊一下开源飞控的学习 本人在5年前 xff0c 在知乎下写过一篇回答 xff0c 如
  • 控制系统的观测器基础知识

    1 为什么需要用到观测器 控制原理中的系统框图 xff0c 往往都是假设反馈状态为理想值 但在工程实践中 xff0c 这个是做不到的 一般我们采用传感器测量控制的反馈状态 xff0c 而传感器的测量值 xff0c 存在几个问题 xff1a
  • 浅谈飞控的软件设计

    写在前面 开这个专栏的目的主要是深感自己对飞控软件 算法的知识点过于杂乱 xff0c 很久没有进行系统的总结了 xff0c 因此决定写几篇文章记录一些飞控开发过程的知识点 主要是针对一些软件 算法部分进行讨论 xff0c 如内容有错误 xf
  • 飞控IMU数据进阶处理(FFT,滤波器)

    前面的文章 xff08 知乎专栏 https zhuanlan zhihu com c 60591778 xff09 曾简单讲过IMU数据 xff08 陀螺仪 加速度数据 xff09 的校准以及一阶低通滤波 本文在此基础上更进一步讲一下数据
  • (5)py接口自动化之配置文件&数据库连接详解

    目录 一 配置文件 ini amp yaml 1 作用 2 ini A 语法 B 特点 C 操作方法 3 yaml A 安装第三方库 B 支持的数据类型 C 特性 D 语法 E 数据读取 二 数据库连接与pytho配置文件 1 安装数据库
  • 再谈IMU数据处理(滤波器)

    本文开始前 xff0c 先回答一个问题 上一篇文章最后提到了卡尔曼滤波器用来做一维数据的数字滤波处理 xff0c 最终的实验结果说 xff1a 该模型下的卡尔曼滤波处理与二阶IIR低通滤波处理效果几乎一致 有网友指出是错误的 xff0c 卡
  • s3操作ceph 创建bucket 报错 命名 错误 botocore.exceptions.ClientError: An error occurred (InvalidBucketName)

    报错信息 Traceback span class token punctuation span most recent call last span class token punctuation span s3 create bucke
  • windows 10 上传文件夹到 Linux服务器 压缩文件夹 到tar.gz格式

    有时候需要把win10上的一个文件夹传到Linux服务器上 简洁的做法是先压缩成 tar gz 再用xftp上传 其中win端的压缩软件一般无法直接压缩成tar gz格式 可用在cmd中 用命令压缩 xff1a span class tok
  • NS3 socket 发送 packet因Tag值过大发送失败

    NS3使用中遇到一个问题 xff1a NS3中当Tag内值过大 xff08 没有超过数据结构可用大小 xff09 的时候 出现socket Send xff08 packet xff09 失败的情况 现在有三个节点 结构如下 span cl
  • 一行代码安装Tensorflow GPU Ubuntu20.04 Windows

    本文内容 xff1a Ubuntu20 04下使用Anaconda 配置Tensorflow GPU环境 Windows操作系统也可行 xff0c 换成Win下的anaconda安装方法即可 Why conda xff1f 使用conda安
  • python无法引用另一个python文件问题 文件名命名问题

    问题 xff1a python的from xxxx py import 语句无法获取另一个python文件 例子 xff1a 在A py的同级目录下有另一个文件xxx xxx py xff08 文件无错 xff0c 可运行 xff09 在A
  • Ubuntu20.04 安装显卡驱动 安装pytorch

    1 查看推荐的驱动 ubuntu span class token operator span drivers devices driver span class token operator span nvidia span class
  • Ubuntu LVM 逻辑卷操作 创建 删除

    先检查新硬盘是否插入 xff1a fdisk l 或者 df h 或者 lsblk 创建LVM 1 将物理磁盘设备初始化为物理卷 pvcreate dev sdb dev sdc 查看物理卷信息 xff1a pvdispaly 或者 pvs
  • Ubuntu20.04 Server 安装NS3 速通版

    官网内容 xff1a https www nsnam org wiki Installation 目录如下 xff1a 官网内容 第一章内容基本可以跳过在第二章中可以查看对应OS需要的安装环境 xff0c 当然我尝试过Ubuntu20 04
  • Ubuntu20 修改系统时区为 国内时间

    问题 xff1a 一般情况下 xff0c Ubuntu时间与实际时间相差8小时 xff0c 因为他的时区设置为0时区 xff0c 而我们想让他为北京时间 校正方法如下 xff1a 运行tzselect xff0c 选择Asia xff08
  • (7)http请求、https请求详解

    一 基础知识 1 OSI七层模型 xff1a 参考 xff1a OSI七层模型详解 小鹏 加油的博客 CSDN博客 osi七层模型 这个博主说的很详细 xff0c 感兴趣的可以去学习一下 如果不感兴趣的话记住tcp ip协议是在传输层就好了
  • 回归问题的评价指标 MAE MSE RMSE R2 score Adjusted R2 score 和 重要知识点总结

    除了MSE 和MAE外回归还有什么重要的指标吗 xff1f R2 score amp Adjusted R2 score 我们用一个回归问题来介绍这些指标 xff0c 我们的其中输入是工作经验 xff0c 输出是薪水 下图显示了为预测薪水而