史上最全MATLAB误差分析工具箱,不看别后悔 【矢量化代码、效率嘎嘎快、支持计算50种指标】

news2025/2/25 21:38:40

在拟合、插值、模拟预测等计算中,往往需要通过不同指标参数来分析实际值与计算值之间差异依次衡量相关方法的可行性。常用的表征指标有残差平方和(SSE)、均方差(MSE)、均方根差(RMSE)、平均绝对误差(MAE)和决定系数R方(R-Squared)等等。

考虑到误差分析在实际应用中无处不在,咱呢决定把所有与误差相关的指标参数整合到一起,并命名为误差指标计算大全工具箱。三年多前咱在公众号中分享了第一版误差分析工具箱(详见:误差分析指标计算之matlab实现)。前不久咱又开源了工具箱中部分参数指标计算源代码(详见:误差指标分析计算之matlab实现【开源1.0.0版】)。目前,经过咱的收集整理,误差指标计算大全工具箱可支持计算的指标参数多达50个,最新版本为1.0.4版。最版本中不仅支持联合指标参数分析,还支持计算值与实际值各自的数学参数分析。目前可分析的指标如下图所示(以三组不同长度的计算值与实际值数据作为计算的结果示意):

图1 计算值与实际值各自的数学参数指标图2 联合参数指标
相较1.0.3版,新版本的能力可以说是得到大幅提升,以咱目前的检索能力,还没找到如此全面的MATLAB误差指标计算工具箱,即便是File Exchange和GitHub中都没有。但目前的版本并不是最终版,后续还会添加更多指标参数。如小伙伴们有需求的指标可留言给咱,在后续版本咱会陆续添加进来。最版摒弃了1.0.3的cellfun的写法,采用特殊的计算策略实现了不同长度的多组输入数据一次性矢量化计算,代码的可读性和计算效率得到大大提升。

当然毫无疑问的是,此工具箱所有的计算公式在网上都能差到,除极个别参数是咱自己定义的之外,全部都是来源于数学理论。伙伴们也可以自行根据相关的数学理论进行编写,过程也不复杂。鉴于收集整理过程费时耗力,故咱暂不公开分析最新1.0.4版,但最新版的源代码将会上传至铁粉群:科研学术交流群,目前群中共有71款源代码,还在不断增加中,如有伙伴愿意支持公众号的发展,可加该群(点此获取加群方式)获取误差指标计算大全工具箱最新版源代码。

同样的,本次把基础版代码分享出来供伙伴使用。

demo.m示例程序如下:


clc;clear;close all;
x = 0:0.2:3;
y = 0.58*x+0.2*rand(1,length(x));
lab = polyfit(x,y,1);
ny = lab(1)*x+lab(2);
plot(x,y,'r.-',x,ny,'bo-');
legend('实际值','拟合值');
title('误差分析指标参数测试');
Re = calcE(ny,y);

calcE.m函数文件


function Re = calcE(dataCalc,dataReal,varargin)
% 作者:巴山 (bashan)
% 邮箱:moveon5@163.com
% 欢迎关注巴山学长微信公众号,请多多分享公众号文章,谢谢支持!
%——————————————————————————————————————%
%                              程序简介                                  %
% 本程序用于计算误差分析中相关的参数指标,计算结果采用结构体形式进行返回;
% 程序参数说明
% dataCalc为计算值,dataReal为实际值
% Re.SSE —— 残差平方和
% Re.MSE —— 均方差
% Re.RMSE —— 均方根差
% Re.MAE —— 平均绝对误差
% Re.R2 —— 决定系数R方
% Re.COR —— Pearson相关系数

narginchk(2,3);
len = length(dataReal);

[mc,nc] = size(dataCalc);
[mr,nr] = size(dataReal);
maxc = max([mc,nc]);
minc = min([mc,nc]);
maxr = max([mr,nr]);
minr = min([mr,nr]);
if (maxc==maxr && minc==minr) && minc == 1
    if mc ~= mr
        dataReal = dataReal';
    end
    Re.SSE = sum((dataCalc-dataReal).^2);
    Re.MSE = sum((dataCalc-dataReal).^2)/len;
    Re.RMSE = sqrt(sum((dataCalc-dataReal).^2)/len);
    Re.MAE = sum(abs(dataCalc-dataReal))/len;
    % 计算R-squared
    rr = dataCalc-dataReal;
    normr = norm(rr);
    SSE = normr.^2;
    SST = norm(dataCalc-mean(dataCalc))^2;
    Re.R2 = 1 - SSE/SST;

    % Re.COR —— 相关系数
    xm = mean(dataCalc);
    tm = mean(dataReal);
    fz = sum((dataCalc-xm).*(dataReal-tm));
    fm = sqrt(sum((dataCalc-xm).^2)*sum((dataReal-tm).^2));
    Re.COR = fz/fm;

    disp(['残差平方和(SSE):',32,num2str(Re.SSE)]);
    disp(['均方差(MSE):',32,num2str(Re.MSE)]);
    disp(['均方根差(RMSE):',32,num2str(Re.RMSE)]);
    disp(['平均绝对误差(MAE):',32,num2str(Re.MAE)]);
    disp(['决定系数R方(R2):',32,num2str(Re.R2)]);
    disp(['Pearson相关系数(COR):',32,num2str(Re.COR)]);

else
    disp('数据格式必须为单行或单列数组!!!');
    Re = [];
end

为了更进一步地提升程序执行效率,后续将使用C语言来对误差指标计算大全工具箱进行升级优化,发布mex版本,更多可分析计算参数指标也会随着版本的升级而不断添加。如想要获取最版本且愿意支持巴山学长公众号的伙伴可在公众号中回复“原创”加科研学术交流群Q群。

祝伙伴们生活、工作愉快,有缘再见!!!

参考资料:
[1] https://www.datatechnotes.com/2019/02/regression-model-accuracy-mae-mse-rmse.html
[2] https://www.jianshu.com/p/9ee85fdad150

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

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

相关文章

Kafka部署安装及简单使用

一、环境准备 1、jdk 8 2、zookeeper 3、kafka 说明:在kafka较新版本中已经集成了zookeeper,所以不用单独安装zookeeper,只需要在kafka文件目录中启动zookeeper即可 二、下载地址 Apache Kafka 三、部署 1、启动zookeeper -- 启动 .…

CSDN第11次竞赛题解与总结

CSDN第11次竞赛题解与总结前言建议题解T1圆小艺扩展完整代码T2K皇把妹完整代码T3筛选宝物完整代码T4圆桌完整代码总结前言 2022/11/27 CSDN第11次竞赛 由「壹合原码 & CSDN」联合主办 本次奖励还是不错的 (毕竟有赞助商),前三十名都有奖励,连以前第…

跑步10年回望

回顾跑步这10年有点遗憾,最终还是决定放弃参加2022年厦马,因为要求更早到厦门,也担心回福州后影响小朋友上课,权衡之下还是决定申请退赛。本想在这次活动上实现全马破4的目标,却只能晒个退赛截图。。。今年是厦马20年&…

【敲级实用】:某小伙写了一个的办公脚本后~变精神了~

文章目录📯小哔哔✏️注册有道智云✏️咋滴调用?✏️使用前的小操作✏️源代码专栏Python零基础入门篇🔥Python网络蜘蛛🔥Python数据分析Django基础入门宝典🔥小玩意儿🔥Web前端学习tkinter学习笔记Excel自…

基于储能电站服务的冷热电多微网系统双层优化配置(Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

ETCD快速入门-01 ETCD概述

1.ETCD概述 1.1 ETCD概述 etcd是一个高可用的分布式的键值对存储系统,常用做配置共享和服务发现。由CoreOS公司发起的一个开源项目,受到ZooKeeper与doozer启发而催生的项目,名称etcd源自两个想法,即Linux的/etc文件夹和d分布式系…

一篇快速搞懂python模块、包和库

个人主页:天寒雨落的博客_CSDN博客-初学者入门C语言,python,数据库领域博主 💬 热门专栏:python_天寒雨落的博客-CSDN博客 ​每日赠语:没有窘迫的失败,就不会有自豪的成功;失败不可怕,只要能从失…

用DIV+CSS技术设计的凤阳旅游网站(web前端网页制作课作业)HTML+CSS+JavaScript

👨‍🎓学生HTML静态网页基础水平制作👩‍🎓,页面排版干净简洁。使用HTMLCSS页面布局设计,web大学生网页设计作业源码,这是一个不错的旅游网页制作,画面精明,排版整洁,内容…

Android App开发语音处理之系统自带的语音引擎、文字转语音、语音识别的讲解及实战(超详细 附源码)

需要源码请点赞关注收藏后评论区留下QQ~~~ 一、系统自带的语音引擎 语音播报的本质是将书面文字转换成自然语言的音频流,这个转换操作被称作语音合成,又称TTS(从文本到语音)在转换过程中,为了避免机械合成的呆板和停顿…

一款客服系统有哪些必备的功能模块?

为了提升客户服务质量,和客户更好地进行沟通,越来越多的企业配置了客服系统。那一款优秀的客服系统需要配置哪些功能模块呢? 1、支持多渠道接入 新媒体的快速发展使得企业有机会通过更多的渠道和客户进行联系,比如公众号、微博、…

java环境安装与配置

这篇文章只是为了以后我配置环境方便而写 1,点击网址,进入Oracle官网 然后参照Java JDK下载安装及环境配置超详细图文教程 2,安装之后如果目录里没有jre文件夹 参考Jdk中没有jre文件夹怎么办? ①简单点就是,管理员模式…

京东零售大数据云原生平台化实践

分享嘉宾:吴维伟 京东 架构工程师 编辑整理:陈妃君 深圳大学 出品社区:DataFun 导读:随着业务调整和集群资源整合需求,大数据系统中集群数据迁移复杂混乱。本文将以京东大数据平台为例,介绍京东近一年在数…

HTML+CSS+JS制作一个迅雷看看电影网页设计实例 ,排版整洁,内容丰富,主题鲜明,简单的网页制作期末作业

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 文章目录一、网页介绍一…

FreeCAD二次开发-基于PyQT对话框与FC交互的开发

版本 FreeCAD0.18.2+PyCharm Community 2020.3.3 演示效果 环境搭建步骤 1.先安装好FreeCAD和PyCharm 2.添加环境变量 点击确定,全部关掉。 3.测试变量是否生效(CMD打开控制台,输入python回车) 弹出如下,说明可以进入FreeCAD自带的python解释器 4.创建工作台Workbench(…

Bridge Champ:Jelurida实践PlaytoOwn的Web 3社交游戏

Play-to-Own 为什么能引领Web3游戏 Web 3游戏将进入“Play-to-Own”的游戏新时代。解锁游戏中的经济活动将极大地扩大游戏产业的TAM,并加速价值创造。 以Axie Infinity为例,Axie普及了P2E模式,其DAU从2021年初的1万增长到峰值的300万&#…

基于遗传算法的微电网经济运行优化matlab程序

基于遗传算法的微电网经济运行优化matlab程序 摘 要: 微电网作为智能电网的一部分,是分布式电源接入电网的一种有效手段,微电网经济运行是其中一个重要研究方面。考察微电网经济性,通常是从最小运行成本和最小环境污染物排放成本两方面入手进…

Git clone时报错: OpenSSL SSL_read: Connection was reset, errno 10054

有段时间没有在GitHub上clone代码了,今天git clone: https://github.com/xxxxxx 居然直接给我抛出了错误: GitHub clone时,报错:Connection was reset, errno 10054 咦?这是什么鬼?然后想起以前clone时用的git地址…

[附源码]Python计算机毕业设计高校党建信息平台

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

秒杀微服务实现抢购代金券功能

文章目录需求分析秒杀场景的解决方案数据库表设计代金券表抢购活动表订单表创建秒杀服务pom依赖配置文件关系型数据库实现代金券秒杀相关实体引入抢购代金券活动信息代金券订单信息Rest配置类全局异常处理添加代金券秒杀活动代金券活动实体代金券活动Mapper->SeckillVoucher…

【技术分享】Python脚本实现BJTU校园网自动登录

文章目录1.背景介绍2.登录分析3.代码分析4.源代码1.背景介绍 BJTU的校园网连接好以后需要输入账号和密码才能正确登录,如下图所示。整个流程比较繁琐,尤其是很多服务器、工作站是无图形化的系统,大部分时间需要SSH连接,所以通过界…