RMSE、MAE等误差指标整理

article/2025/11/10 21:36:03

1 MAE

  • Mean Absolute Error ,平均绝对误差
  • 是绝对误差的平均值

for x, y in data_iter:y=model(x)d = np.abs(y - y_pred)mae += d.tolist()#mae=sigma(|pred(x)-y|)/m
MAE = np.array(mae).mean()

 MAE/RMSE需要结合真实值的量纲才能判断差异。

下图是指,假如ground truth是0,那么MAE和prediction之间的关系(后同) 

1.1 优缺点

优点:

  • 计算简单
  • 对异常值不太敏感

缺点:

  • 在prediction已经很接近ground-truth的时候,梯度依然很大——>可能在梯度下降的时候跳过最小值

2 RMSE 

  • Root Mean Square Error,均方根误差
  • 是观测值与真值偏差的平方和与观测次数m比值的平方根。

for x, y in data_iter:y=model(x)d = np.abs(y - y_pred)mse += (d ** 2).tolist()#mse=sigma((pred(y)-y)^2)/m
RMSE = np.sqrt(np.array(mse).mean())

MAE/RMSE需要结合真实值的量纲才能判断差异。 

 

2.1 RMSE与MAE的对比

        RMSE相当于L2范数,MAE相当于L1范数。

        次数越高,计算结果就越与较大的值有关,而忽略较小的值。

        所以这就是为什么RMSE针对异常值更敏感的原因(即有一个预测值与真实值相差很大,那么RMSE就会很大)。

        最小化 MAE 的预测方法将导致预测中位数,而最小化 RMSE 将导致预测均值。

        相对来说,MAE和MAPE不容易受极端值的影响;而MSE/RMSE采用误差的平方,会放大预测误差,所以对于离群数据更敏感,可以突出影响较大的误差值。

 2.2 缺点

  • RMSE仍然是一个线性平分函数,所以梯度在最小值附近是突变的
  • 随着误差幅度的增加,RMSE 对异常值的敏感性也随之增加

 3 SD 

  • Standard Deviation ,标准差
  • 是方差的算数平方根

4 MSE

  • Mean Squared Error,均方误差
  • 当误差被平方时,离群值被赋予更多的权重。受益于这种对离群 Loss 的惩罚,有助于优化算法获得参数的最佳值

 

4.1 优缺点

优点:

  • 在prediction接近ground-truth的时候,梯度会逐渐减少
    • ——>有助于对微小错误进行有效的最小收敛
  • 用二次方程表示,有助于在异常值的情况下调整模型参数。

缺点

  • 较高的损失值可能会导致反向传播过程中的大幅跳跃
  • 对异常值特别敏感,这意味着数据中的显著异常值可能会影响模型性能

5 MAPE 

  • Mean Absolute Percentage Error 平均绝对百分比误差
  • 范围[0,+∞),MAPE 为0%表示完美模型,MAPE 大于 100 %则表示劣质模型。
  • 当真实值有数据等于0时,存在分母0除问题,该公式不可用!

 How to calculate MAPE with actual values at or close to 0 (stephenallwright.com)

for x, y in data_iter:y=model(x)d = np.abs(y - y_pred)mape += (d / y).tolist()#mape=sigma(|(pred(x)-y)/y|)/m
MAPE = np.array(mape).mean()

这边说的percentage error就是 Σ里面不带绝对值的部分 

百分比误差具有无单位的优势,因此经常用于比较数据集之间的预测性能

 

基于百分比误差的度量的缺点是,如果 对于评估的时间片期间的任何 t,yt=0 。则这一个PE为无穷大,如果任何 yt 接近于零,则具有极端值。

另外一个缺点是,MAPE对正Loss的惩罚小于负Loss。因此,当我们比较预测算法的精度时,它是有偏差的。

6 SMAPE

  • Symmetric Mean Absolute Percentage Error 对称平均绝对百分比误差
  • 当真实值有数据等于0,而预测值也等于0时,存在分母0除问题,该公式不可用!

7 sklearn实现

sklearn 笔记整理:sklearn.mertics_UQI-LIUWJ的博客-CSDN博客

8 scaled error

        在比较具有不同单位的时间序列的预测准确性时,提出了比例误差scaled error作为PE percentage error的替代方法。

  • 对于非季节性时间序列,一种有用的方法是定义一个naive的预测方法,来计算比例误差

        因为分子和分母都涉及原始数据尺度上的值,所以 qj 与数据尺度无关。

如果一个比例误差是由 比naive预测更好的预测产生的,则qj小于 1。

相反,如果预测比naive预测更差,则qj大于 1。

  • 对于季节性数据,我们可以:使用一个季节性naive预测方法,来达到同样的效果:

8.1 MASE mean absolute scaled error

 

参考内容:2211.02989.pdf (arxiv.org)

A Comprehensive Survey of Regression Based Loss Functions for Time Series Forecasting

9 MBE mean bias error

  • 平均偏差误差 (MBE)
  • 正偏差表示数据误差被高估,而负偏差表示误差被低估

MBS=\frac{1}{N}\sum_{i=1}^N(y_i-\hat{y_i})

9.1 优缺点

优点

  • 确定模型误差的方向

缺点

  • 误差往往会相互抵消,不是一个合适的损失函数

10 RAE

将总绝对误差除以平均值与实际值之间的绝对差值

RAE=\frac{\sum_{i=1}^N|y_i-\hat{y_i}|}{\sum_{i=1}^N|y_i-\bar{y}|},其中\bar{y}=\frac{1}{N}\sum_{i=1}^N(y_i)

 接近零代表模型良好。

11 RSE

RSE=\frac{\sum_{i=1}^N (y_i-\hat{y_i})^2}{\sum_{i=1}^N (y_i-\bar{y})^2},其中\bar{y}=\frac{1}{N}\sum_{i=1}^N(y_i)


http://chatgpt.dhexx.cn/article/tOD05U3i.shtml

相关文章

MAE详解

目录 一、介绍 二、网络结构 1. encoder 2. decoder 3. LOSS 三、实验 全文参考:论文阅读笔记:Masked Autoencoders Are Scalable Vision Learners_塔_Tass的博客-CSDN博客 masked autoencoders(MAE)是hekaiming大佬又一新作,其做法很…

crontab用法详解

crontab命令用于设置周期性被执行的命令,适用于日志备份,清理缓存,健康状态检测等场合。 crontab的配置文件:/etc/crontab

linux的crontab用法与实例

linux的crontab用法与实例 crontab的适用场景 在Linux系统的实际使用中,可能会经常让系统在某个特定时间执行某些任务的情况,比如定时采集服务器的状态信息、负载状况;定时执行某些任务/脚本来对远端进行数据采集或者备份等操作。 首先通过…

定时任务 crontab 命令安装和用法整理

Crontab 概念 crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令,类似于闹钟,可以定时执行任务。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中(是“cron table”的简写&#…

crontab用法与实例

crontab用法与实例 本文基于 ubuntu 18.04 在Linux系统的实际使用中,可能会经常碰到让系统在某个特定时间执行某些任务的情况,比如定时采集服务器的状态信息、负载状况;定时执行某些任务/脚本来对远端进行数据采集等。这里将介绍下crontab的配…

crontab的基本用法

1、 crontab -l 查看所有的定时任务 2、 crontab -e 编辑定时任务。 i 进入编辑模式 。esc退出编辑模式。:wq! 保存并退出。 报错信息: “/tmp/crontab.4qE940”:1: bad month errors in crontab file, can’t install. 说明定时任务编辑失败,文件中有错…

linux中crontab的用法

一:crontab 简介 crontab是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程…

1.4 - 操作系统 - Linux计划任务,CronTab用法详解

「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「订阅专栏」:此文章已录入专栏《网络安全入门到精通》 CronTab计划任务 一、服务二、查看计划任务三、编辑计划任务四、删除计划任务五、配置文件Linux系统使用CronTab命令来操作计划任务。…

crontab 详细用法、定时任务 、时间规则

简介 Linux crontab和Windows task schedules非常的相似。Crontab可以用来在系统中定期的执行任务。比如:写了一个爬虫需要每天早上八点执行,就可以用到Crontab;安装的Tomcat服务器需要每天凌晨重启一次,也可以使用到Crontab。总之&#xff0…

crontab的使用方法介绍

使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。例如系统管理员安排一个备份任务使其每天都运行 安装:apt-get install cron (服务器环境下默认都会安装) 使用:crontab -e 进入编辑页面(第一次进入会让你选择编辑…

Crontab配置及使用总结

1、 crontab命令概念 crontab命令用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。 cron 系统调度进程。 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不…

APP测试基本流程及测试基本点

1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间。正式测试前先向主管确认项目排期。 1.3测试资源 测试任务开始前,检查…

1 APP测试基本流程

1 APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间。正式测试前先向主管确认项目排期。 1.3测试资源…

APP测试基本流程及测试要点

APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间。正式测试前先向主管确认项目排期。 1.3测试资源 …

手机app测试方法(一)基本流程

1 APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间。正式测试前先向主管确认项目排期。 1.3测试资源…

App测试基本流程以及注意事项

目录 1 APP测试基本流程 1.1流程图 1.2测试周期 1.3测试资源 1.4日报及产品上线报告(内部报告机制) 2 App测试点 2.1安全测试 2.1.1软件权限 2.1.2安装与卸载安全性 2.1.3数据安全性 2.1.4通讯安全性 2.1.5人机接口安全性 2.2安装、卸载测…

App自动化测试怎么做?实战分享App自动化测试全流程

一、什么是app测试?什么是app自动化测试? 概念:所谓app测试也称之为移动测试,通俗易懂的理解就是测试我们平时手机使用的程序。那什么是app自动化测试呢? 通常情况下是随app产品不断迭代更新,给测试⼈员也…

安卓APP测试要怎么测,测试流程和重点有哪些?我来告诉你

目录 一、安卓系统知识概述 1.1 安卓系统架构 1.2 安卓权限系统 1.3 认识adb与安卓间的通信 二、安卓APP测试流程图 三、安卓App测试点 3.1 UI测试 3.2 兼容性测试 3.3 安装卸载/本地升级测试OTA 3.4 版本在线升级测试FOTA 3.5 交互测试 3.6并发测试 3.7 客户端数据…

App测试流程和要点

APP与Web测试的异同 1、相同点:流程方面相同,都要经过计划,方案,测试分析,用例,环境搭建,测试执行,报告,总结等 都要进行功能测试,性能测试,兼容…

APP测试流程和测试点

1 APP测试基本流程 1.1流程图 1.2测试周期 测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间。正式测试前先向主管确认项目排期。 1.3测试资源 测…