【Sklearn驯化-回归指标】一文搞懂机器学习中回归算法评估指标:mae、rmse等

【Sklearn驯化-回归指标】一文搞懂机器学习中回归算法评估指标:mae、rmse等
 
本次修炼方法请往下查看
在这里插入图片描述

🌈 欢迎莅临我的个人主页 👈这里是我工作、学习、实践 IT领域、真诚分享 踩坑集合,智慧小天地!
🎇 免费获取相关内容文档关注:微信公众号,发送 pandas 即可获取
🎇 相关内容视频讲解 B站

🎓 博主简介:AI算法驯化师,混迹多个大厂搜索、推荐、广告、数据分析、数据挖掘岗位 个人申请专利40+,熟练掌握机器、深度学习等各类应用算法原理和项目实战经验

🔧 技术专长: 在机器学习、搜索、广告、推荐、CV、NLP、多模态、数据分析等算法相关领域有丰富的项目实战经验。已累计为求职、科研、学习等需求提供近千次有偿|无偿定制化服务,助力多位小伙伴在学习、求职、工作上少走弯路、提高效率,近一年好评率100%

📝 博客风采: 积极分享关于机器学习、深度学习、数据分析、NLP、PyTorch、Python、Linux、工作、项目总结相关的实用内容。

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

🌵文章目录🌵

    • 🎯 1. 基本介绍
    • 💡 2. 指标介绍
      • 2.1 MAE:平均绝对误差
      • 2.2 MSE:均方误差
      • 2.2 RMSE:均方误差
      • 2.3 MAPE:平均绝对百分比误差
      • 2.4 SMAPE:平均绝对百分比误差
      • 2.5 WMAPE:加权的百分比误差
      • 2.6 决定系数(R-squared, R²)
    • 🔍 3. 代码实践
      • 3.1 导入库和准备数据
      • 3.2 训练回归模型
      • 3.2 指标计算
    • 🔍 4. 注意事项
    • 🔍 5. 总结

下滑查看解决方法

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

  

🎯 1. 基本介绍

  回归分析是统计学中用于估计变量之间关系的一种方法。在机器学习中,回归模型用于预测连续的输出值。scikit-learn(简称sklearn)提供了多种回归指标来评估模型的预测性能。

💡 2. 指标介绍

2.1 MAE:平均绝对误差

  mae是回归模型中常用的评估指标之一。它用于衡量模型预测结果与真实值之间的平均绝对差异程度,即平均预测误差的绝对值。计算MAE的公式如下:
L = 1 m ∑ i = 1 m ∣ y i − y ^ i ∣ L=\frac{1}{m}\sum_{i=1}^{m}|y_i - \hat{y}_i| L=m1i=1myiy^i
  MAE的值越小,表示模型的预测能力越好。它具有对异常值不敏感的特点,适用于对预测结果的平均误差情况进行评估。在sklearn中,可以使用mean_absolute_error函数来计算MAE。

2.2 MSE:均方误差

  它用于衡量模型预测结果与真实值之间的均方差,即平均预测误差的平方
L = 1 m ∑ i = 1 m ( y i − y ^ ) 2 L=\frac{1}{m}\sum_{i=1}^{m}(y_i - \hat{y})^2 L=m1i=1m(yiy^)2
   该方法会放大预测值偏大的,对异常值比较敏感,MSE的值越小,表示模型的预测能力越好。它在某些情况下比均绝对误差(MAE)更敏感,因为它对预测值与真实值之间的较大误差进行了平方处理。但是MSE的值的量纲是原始数据平方,可能不易于直观理解。

2.2 RMSE:均方误差

  均方根误差是MSE的平方根,它与原始数据具有相同的单位。
L = 1 m ∑ i = 1 m ( y i − y ^ ) 2 L=\sqrt{\frac{1}{m}\sum_{i=1}^{m}(y_i - \hat{y})^2} L=m1i=1m(yiy^)2
  因为使用的是平均误差,而平均误差对异常点较敏感,如果回归器对某个点的回归值很不合理,那么它的误差则比较大,从而会对RMSE的值有较大影响,即平均值是非鲁棒的。

2.3 MAPE:平均绝对百分比误差

  
L = 1 n ∑ i = 1 m ∣ y i − y ^ i y i ∣ L=\frac{1}{n}\sum_{i=1}^{m}|\frac{y_i-\hat{y}_i}{y_i}| L=n1i=1myiyiy^i

评价的是相对于真实值的误差比例,但是有一个问题就是,如果真实值为0的话,该评价指标无效
如果预测值小于真实值(低估),如果大于(高估)
低估: 此时, 即上界为100;
高估: 此时, 即上界为无穷大.
由于高估会带来较大惩罚, 为了最小化MAPE值, 算法会倾向低估, 从而导致预测的销量偏低.

2.4 SMAPE:平均绝对百分比误差

  该方法可以处理掉真实值为0的情况,但是如果预测值也为0的话就会有问题
L = 1 n ∑ i = 1 m ∣ y i − y ^ i ∣ ∣ y i ∣ + ∣ y i ^ ∣ L=\frac{1}{n}\sum_{i=1}^{m}\frac{|y_i-\hat{y}_i|}{|y_i|+|\hat{y_i}|} L=n1i=1myi+yi^yiy^i

在实际的销量预测中, 由于销量的上界通常是有限的(通过经验可以预估), 因而即使出现"高估"的情形, 预测销量一般不会超过实际销量的常数倍(例如不超过10倍). 从这个角度来看, 高估时误差的上界一般低于低估时对应的上界. 换句话说, 低估带来的惩罚比高估大. 因此如果使用SMAPE作为误差指标, 其预测销量一般会高于实际销量.

2.5 WMAPE:加权的百分比误差

  该方法的好处就是可以处理mape这个问题:例如一件卖了10件的商品预测值在5-15之间和卖了5000件的商品预测在4955-5005的贡献的mape是一样的,但显然两个预测的准确度差异巨大。该方法给销量的商品更大的权重。
L = ∑ n ∣ y i − y ^ i ∣ ∑ n y i L=\frac{\sum_{n}|y_i - \hat{y}_i|}{\sum_{n}y_i} L=nyinyiy^i

2.6 决定系数(R-squared, R²)

  决定系数衡量模型捕捉数据可变性的程度。具体的公式如下所示:
r 2 = ∑ i = 1 n ( y i − y i ′ ) 2 ∑ i = 1 n ( y i − y 平均 ) 2 r^2=\frac{\sum_{i=1}^{n}(y_i-y'_i)^2}{\sum_{i=1}^{n}(y_i-y平均)^2} r2=i=1n(yiy平均)2i=1n(yiyi)2

🔍 3. 代码实践

3.1 导入库和准备数据

   下面我们对相关的公式进行构造数据,并通过代码对其进行实践操作,具体的代码如下所示:

from sklearn.metrics import mean_squared_error, r2_score
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
from sklearn.datasets import make_regression# 生成模拟回归数据
X, y = make_regression(n_samples=100, n_features=1, noise=0.4, random_state=42)# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

3.2 训练回归模型

   为了能够更加清晰的看出来各个指标的效果,我们训练一个回归模型然后来看各个指标之间的差异性,具体的代码如下所示:

# 创建线性回归模型并训练
model = LinearRegression()
model.fit(X_train, y_train)# 在测试集上进行预测
y_pred = model.predict(X_test)

3.2 指标计算

   下面我们根据预测和真实值之间的差异性来计算回归模型的指标,具体的代码如下所示:

# 计算MSE和RMSE
mse = mean_squared_error(y_test, y_pred)
rmse = mse ** 0.5print(f"均方误差: {mse:.2f}")
print(f"均方根误差: {rmse:.2f}")# 计算R-squared
r2 = r2_score(y_test, y_pred)
print(f"决定系数: {r2:.2f}")

  

🔍 4. 注意事项

  • 回归指标的选择应基于模型的目标和数据的特性。
  • MSE和RMSE对异常值敏感,如果数据中包含异常值,可能需要考虑使用其他指标。
  • R-squared虽然直观,但增加变量时可能会产生误导,考虑使用调整R-squared。

🔍 5. 总结

  回归指标是评估回归模型预测性能的重要工具。scikit-learn提供了多种指标,包括MSE、RMSE和R-squared,帮助我们量化模型的准确性和有效性。通过本博客的代码示例,我们学习了这些指标的计算方法和实际应用。希望这篇博客能够帮助你更好地理解sklearn中的回归指标,并将其应用于实际的回归分析中。

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

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

相关文章

python-docx 使用xml为docx不同的章节段落设置不同字体

本文目录 前言一、完整代码二、代码详细解析1、处理过程解释(1) 引入库并定义路径(2) 创建docx的备份文件(3) 定义命名空间(4) 打开并处理.docx文件(5) 分析和组织文档结构(6) 设置字体(7) 保存结果前言 本文主要解决的内容,就是为一个docx的不同章节段落设置不同的字体,因为…

6.二叉树.题目3

6.二叉树.题目3 题目17.二叉搜索树中的众数18.二叉树的最近公共祖先19.二叉树搜索树的最近公共祖先20.二叉搜索树中的插入操作。普通二叉树的删除方式 21.删除二叉搜索树中的节点22.修剪二叉树23.将有序数组转化为二叉搜索树24.把二叉搜索树转化为累加树 总结 题目 17.二叉搜索…

LLM大模型本地部署与预训练微调

以通义千问-1_8B-Chat为例,按照官方教程,简单介绍如何将模型进行本地CPU部署以及预训练微调: 1、环境条件:Linux 24G内存左右 2、本地部署: 提前安装好git跟git lfs,否则可能拉取不到模型文件,g…

【教程】DPW 325T FPGA板卡程序下载与固化全攻略

到底什么是固化??? 在开发板领域,"固化"通常指的是将软件或操作系统的镜像文件烧录(Flash)到开发板的存储介质上,使其成为开发板启动时加载的系统。这个过程可以确保开发板在启动时能…

从单点到全景:视频汇聚/安防监控EasyCVR全景视频监控技术的演进之路

在当今日新月异的科技浪潮中,安防监控领域的技术发展日新月异,全景摄像机便是这一领域的杰出代表。它以其独特的360度无死角监控能力,为各行各业提供了前所未有的安全保障,成为现代安防体系中的重要组成部分。 一、全景摄像机的技…

【SpringMVC】第1-7章

第1章 初始SpringMVC 1.1 学习本套教程前的知识储备 JavaSEHTMLCSSJavaScriptVueAJAX axiosThymeleafServletMavenSpring 1.2 什么是MVC MVC架构模式相关课程,在老杜的JavaWeb课程中已经详细的讲解了,如果没有学过的,可以看这个视频&…

当下为什么越来越多的企业选择产业园区,而不是写字楼?

随着经济形势的变化和各行业的升级转型,我们发现越来越多的企业选择扎根产业园而非传统的写字楼,这一现象背后真正的原因是什么呢?今天我们就站在企业自身发展的角度,全维度对比一下产业园与传统写字楼的区别,看是否能…

参加六西格玛绿带培训是投资未来,还是花冤枉钱?

是否值得花费资金参加六西格玛绿带培训,取决于多个因素。 从积极的方面来看,参加六西格玛绿带培训具有以下潜在价值: 1. 提升专业技能:使您掌握一套系统的问题解决方法和流程改进工具,有助于在工作中更高效地解决复杂…

代码随想录算法训练营:14/60

非科班学习算法day14 | LeetCode266:翻转二叉树 ,Leetcode101: 对称二叉树,Leetcode100:相同的的树 ,LeetCode572:另一颗树的子树,LeetCode104:二叉树的最大深度,LeetCode559:N叉树的最大深度 目…

SDK 程序卡在 AXI DMA 配置 (XAxiDma_CfgInitialize)的解决方法

在进行 AXI DMA 配置 时候代码一直卡在XAxiDma_CfgInitialize函数出不来,也没有打印报错。 /* Initialize the XAxiDma device.*/CfgPtr XAxiDma_LookupConfig(DeviceId);if (!CfgPtr) {xil_printf("No config found for %d\r\n", DeviceId);return XST_…

ResNet-50算法

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 一、理论知识储备 1.CNN算法发展 AlexNet是2012年ImageNet竞赛中,由Alex Krizhevsky和Ilya Sutskever提出,在2012年ImageNet竞赛中&a…

头歌——机器学习——支持向量机案例

第1关:基于支持向量机模型的应用案例 任务描述 本关任务:编写一个基于支持向量机模型的应用案例。 相关知识 在本应用案例中,我们借助一个具体的实际问题,来完整地实现基于支持向量机模型的开发应用。在此训练中,我…

运筹系列93:VRP精确算法

1. MTZ模型 MTZ是Miller-Tucker-Zemlin inequalities的缩写。除了定义是否用到边 x i j x_{ij} xij​外,还需要定义一个 u i u_i ui​用来表示此时车辆的当前载货量。注意这里x变量需要定义为有向。 这里定义为pickup问题,代码为: using Ju…

windows下载jdk并安装步骤(保姆级教程)

一、下载jdk 下载地址: https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 二、双击下载好的jdk 更改安装目录然后点击下一步 然后会弹出jre的安装,需要选择路径(注意:这里的路径必须跟前面的jdk在…

将huggingface的大模型转换为safetensor格式

很多huggingface的大语言模型都是pytorch的格式,但是mindie需要safetensor格式,另外mindieservice加载原始的baichuan2-13b的模型出错,后来排查是bfloat16数据格式的问题,所以这次转换要一次性转为float16的格式。 上代码&#x…

计算机网络:如何隐藏真实的IP和MAC地址?

目录 一、什么是MAC地址二、什么是IP地址三、如何隐藏真实的MAC地址四、如何隐藏真实的IP地址 一、什么是MAC地址 MAC地址,全称为媒体访问控制地址(Media Access Control Address),是一种用于网络通信的唯一标识符。它是由IEEE 8…

PLC网关如何选择?plc网关作用-天拓四方

一、PLC网关在工业自动化领域的重要性和作用 PLC网关在工业自动化领域的重要性和作用不言而喻。作为工业自动化系统的重要组成部分,PLC网关起到了关键的桥梁作用,实现了PLC与其他设备、系统之间的数据传输和通信。 首先,PLC网关的重要性体现…

最像人声的语音合成模型-ChatTTS

目录 写在前面 一、使用ChatTTS 二、优点 三、局限 写在前面 最像人声的AI来了!语音开源天花板ChatTTS火速出圈,3天就斩获9k个star。截至发稿前,已经25.9k个star了。这是专门为对话场景设计的语音生成模型,用于LLM助手对话任务…

搭建抖音微短剧系统:源码部署与巨量广告回传全解析

在数字化浪潮中,抖音微短剧已成为内容创作的新宠。想要搭建一个高效的抖音微短剧系统,并实现与巨量广告的有效回传吗?本文将为您详细解析源码部署与广告回传的关键步骤。 一、源码部署:构建短剧系统的基石 源码是软件开发的起点…

vscode远程连接Ubantu

一、首先用VM虚拟机打开一个Linux系统 二、打开VScode 在扩展里安装 安装后,打开Linux查看IP地址 在VScode 中新建连接主机 输入linux_nameip地址 -A 然后输入Linux的登录密码 就可以远程操控 Linux了 可以在终端中远程控制Linux 点击左上角的打开文件夹可以很…