当前位置:网站首页>误差指标分析计算之matlab实现【开源1.0.0版】
误差指标分析计算之matlab实现【开源1.0.0版】
2022-08-04 05:35:00 【懂科研的程序员】
在拟合、插值、模拟预测等计算中,往往需要采用实际值与计算值之间差异来表征计算方法的可行性。常用的表征指标有残差平方和(SSE)、均方差(MSE)、均方根差(RMSE)、平均绝对误差(MAE)和决定系数R方(R-Squared)等等。
考虑到误差分析在实际应用中无处不在,咱呢决定把所有与误差相关的指标参数整合到一起,并命名为误差指标计算大全工具箱。目前该工具箱已经升级至1.0.3,所支持计算的误差指标参数已增至17个,且支持多组不同长度的数据同时分析处理。
考虑到1.0.0版里面也仅是最基础的指标,也是大家最常用的,为了方便小伙伴使用,因此咱决定将处理过的1.0.0版公开分享。
1、残差平方和 (SSE)
为计算值和实际值对应点之差的平方和,SSE越趋近于0,说明计算结果越好。
2、均方差 (MSE)
为计算值和实际值对应点之差的平方和再平均,即MSE=SSE/n,n为数据个数,表征意义与SSE类似。
3、均方根差 (RMSE)
为均方差(MSE)的开根号,即RMSE=MSE^0.5,表征意义与MSE类似。
4、平均绝对误差 (MAE)
为计算值与实际值的绝对值的平均,它可有效避免误差相互抵消,故可更加准确反映实际预测误差的大小。
5、决定系数R方 (R-Squared)
为回归平方和与总离差平方和之比值。当R-Squared越接近1时,表示计算值与实际值相关性越高;相反,越接近0时,相关性越低。
1至5中,对应参数为:
6、相关系数(COR)
为计算值与实际值协方差与两者方差乘积开根号的比值,用来两者之间的线性关系。
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)
% 邮箱:[email protected]
% 欢迎关注matlab爱好者微信公众号,请多多分享公众号文章,谢谢支持!
%——————————————————————————————————————%
% 程序简介 %
% 本程序用于计算误差分析中相关的参数指标,计算结果采用结构体形式进行返回;
% 程序参数说明
% 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
封面图片由Tumisu在Pixabay上发布,文中公式图片来源于互联网。
如需转载,请在懂科学的程序员公众号中回复“转载”获取授权,如未经授权擅自搬运抄袭的,本公众号将保留一切追责权利!
边栏推荐
- IE8 打开速度慢的解决办法
- Hardware Knowledge: Introduction to RTMP and RTSP Traditional Streaming Protocols
- CMDB 阿里云部分实现
- Computer software: recommend a disk space analysis tool - WizTree
- 基于时序模式注意力机制(TPA)的长短时记忆(LSTM)网络TPA-LSTM的多变量输入风电功率预测
- Logical Address & Physical Address
- CMDB 腾讯云部分实现
- 【音视频开发系列】QT 采集麦克风PCM并播放
- Visualization and Animation Technology (Computer Animation)
- 复杂格式的json转递
猜你喜欢
Software: Recommend a domestic and very easy-to-use efficiency software uTools to everyone
EfficientNet解读:神经网络的复合缩放方法(基于tf-Kersa复现代码)
网络技巧:教你给路由器装上电池,断电照样可以上网!
Interpretation of EfficientNet: Composite scaling method of neural network (based on tf-Kersa reproduction code)
Operating System Kernel
数据库:整理四个实用的SQLServer脚本函数
YOLOv3详解:从零开始搭建YOLOv3网络
益智小游戏- 算算总共多少正方形
基于EEMD+GRU+MLR的时间序列预测
Computer knowledge: desktop computers should choose the brand and assembly, worthy of collection
随机推荐
sql常用函数
Uos统信系统 chrony配置
目标检测中的IoU、GIoU、DIoU与CIoU
基于EEMD+GRU+MLR的时间序列预测
生成一个包含日期的随机编码
异步编程之promise,任务队列,事件循环
Interpretation of EfficientNet: Composite scaling method of neural network (based on tf-Kersa reproduction code)
网页中常用的两种绘图技术,用canvas绘图,绘制出一个三角形,矩形,柱状图,扇形图
golang 的库引用方法
Uos统信系统 Postfix-smtps & Dovecot-imaps
Time Series Forecasting Based on Reptile Search RSA Optimized LSTM
Faster RCNN原理及复现代码
IE8 打开速度慢的解决办法
DenseNet详解及Keras复现代码
益智小游戏- 算算总共多少正方形
IoU, GIoU, DIoU and CIoU in target detection
基于子空间结构保持的迁移学习方法MLSSM
【C# - 爬虫】使用Selenium实现爬虫,获取近七天天气信息(包含完整代码)
数据库文档生成工具V1.0
网络安全学习的三大不可取之处