文章目录

  • 0. 评价指标
  • 1. 工具箱拟合——cftool
  • 2. 万能拟合 ——nlinfit
  • 3. 多项式拟合 ——polyfit
  • 参考

0. 评价指标

一、SSE(和方差)
该统计参数计算的是拟合数据和原始数据对应点的误差的平方和,计算公式如下


SSE越接近于0,说明模型选择和拟合更好,数据预测也越成功。接下来的MSE和RMSE因为和SSE是同出一宗,所以效果一样

二、MSE(均方差)
该统计参数是预测数据和原始数据对应点误差的平方和的均值,也就是SSE/n,和SSE没有太大的区别,计算公式如下

三、RMSE(均方根)
该统计参数,也叫回归系统的拟合标准差,是MSE的平方根,就算公式如下

在这之前,我们所有的误差参数都是基于预测值(y_hat)和原始值(y)之间的误差(即点对点)。从下面开始是所有的误差都是相对原始数据平均值(y_ba)而展开的(即点对全)!!!

四、R-square(确定系数)
在讲确定系数之前,我们需要介绍另外两个参数SSR和SST,因为确定系数就是由它们两个决定的
(1)SSR:Sum
of squares of the regression,即预测数据与原始数据均值之差的平方和,公式如下

(2)SST:Total sum of squares,即原始数据和均值之差的平方和,公式如下

细心的网友会发现,SST=SSE+SSR,呵呵只是一个有趣的问题。而我们的“确定系数”是定义为SSR和SST的比值,故

其实“确定系数”是通过数据的变化来表征一个拟合的好坏。由上面的表达式可以知道“确定系数”的正常取值范围为[0
1],越接近1,表明方程的变量对y的解释能力越强,这个模型对数据拟合的也较好。

1. 工具箱拟合——cftool


在命令行输入数据:
x
y

启动曲线拟合工具箱
命令:cftool

进入曲线拟合工具箱界面“Curve Fitting tool”
1)利用X data和Y data的下拉菜单读入数据x,y
2)选择曲线拟合类型
3)自动拟合 即可在结果窗口和曲线窗口显示出拟合结果

工具箱提供的拟合类型如下,进行简要说明,可以尝试各种不同类型拟合效果

英文名称 逼近类型 种类数量 基础类型
Custom Equations 用户自定义的函数类型
Exponential 指数逼近 2
Fourier 傅立叶逼近 7
Gaussian 高斯逼近 8
Interpolant 插值逼近 4 linear、nearest neighbor、cubic spline、shape-preserving
Polynomial 多形式逼近 9 linear ~、quadratic ~、cubic ~、4-9th degree ~
Power 幂逼近 2 ax^b 、ax^b + c
Rational 有理数逼近 ,分子、分母共有的类型是linear ~、quadratic ~、cubic ~、4-5th degree ~;此外,分子还包括constant型
Smoothing Spline 平滑逼近
Sum of Sin Functions 正弦曲线逼近 8 a1sin(b1x + c1)
Weibull 1 abx(b-1)*exp(-a*xb)

注意 : Interpolant是插值逼近仅仅是对函数进行插值画图显示,并不能得到拟合的函数。

Exponential:指数逼近,有2种类型, aexp(bx) 、 aexp(bx) + cexp(dx)
Fourier:傅立叶逼近,有7种类型,基础型是 a0 + a1cos(xw) + b1sin(xw)
Gaussian:高斯逼近,有8种类型,基础型是 a1exp(-((x-b1)/c1)^2)
Interpolant:插值逼近,有4种类型,linear、nearest neighbor、cubic spline、shape-preserving
Polynomial:多形式逼近,有9种类型,linear ~、quadratic ~、cubic ~、4-9th degree ~
Power:幂逼近,有2种类型,ax^b 、ax^b + c
Rational:有理数逼近,分子、分母共有的类型是linear ~、quadratic ~、cubic ~、4-5th degree ~;此外,分子还包括constant型
Smoothing Spline:平滑逼近(翻译的不大恰当,不好意思)
Sum of Sin Functions:正弦曲线逼近,有8种类型,基础型是 a1sin(b1x + c1)
Weibull:只有一种,a
b*x(b-1)*exp(-a*xb)
选择View > Residuals Plot,可以查看残差图。

在Table of Fits中右击选择Duplicate “XX” (或者在Fit主菜单里面复制) 复制某个拟合,重新生成别的拟合,进行对比。

观察Results以及residuals plot 残差图。
The residuals from a good fit should look random with no apparent pattern. A pattern, such as a tendency for consecutive residuals to have the same sign, can be an indication that a better model exists.

2. 万能拟合 ——nlinfit

matlab 万能实用的非线性曲线拟合方法 - It’s All Uphill From Here
matlab函数拟合 - 学习时间轴 - 博客园

clear
clc   %清除工作空间
syms x;%公共参数设置
xx=[3,5]';   %这里设置已知自变量向量(列向量)
yy = [0.8,1]';  %对应因变量(列向量)
startPos = [1,1];   %设置系数的起始搜索点
%使用fit函数拟合的
%设置参数
f = '(1+alpha*(x-belta)^(-2))^(-1)';  %设置需要拟合的函数形式
funType=fittype(f,'independent','x',...
'coefficients',{'alpha','belta'});  %在independent后面设置自变量,在coefficients后面设置待定系数(多个值用{}括起来)
%使用nlinfit函数进行拟合的
%设置参数
f1 = @(coef,x)(1+coef(1)*(x-coef(2)).^(-2)).^(-1);  %设置需要拟合的函数(内联函数形式)%后面的代码不用改
%fit拟合相关代码
opt=fitoptions(funType);
set(opt,'StartPoint',startPos);
cfun=fit(xx,yy,funType,opt)   %命令行显示结果
plot(cfun,'r',xx,yy,'*')%nlinfit拟合相关代码
coef=nlinfit(xx,yy,f1,startPos);
disp('nlinfit拟合后的系数矩阵为:');
disp(coef);hold on
xmax = max(xx);
xmin = min(xx);
xnum = 2*length(xx)+50;
x = linspace(xmin,xmax,xnum);
y = f1(coef,x);
plot(x,y,'g');legend('原始数据','fit拟合','nlinfit拟合')

3. 多项式拟合 ——polyfit

p=polyfit(x,y,2);

如何使用MATLAB进行曲线拟合-百度经验

Library Model Name Description
poly1 线性多项式曲线
poly11 线性多项式表面
poly2 二次多项式曲线
linearinterp 分段线性插值
cubicinterp 分段三次插值
smoothingspline 平滑样条(曲线)
lowess 局部线性回归(曲面)

参考

matlab 万能实用的非线性曲线拟合方法 - It’s All Uphill From Here

Matlab-函数拟合相关推荐

  1. 双曲线matlab函数拟合,matlab怎么拟合双曲线

    储存着各离散点的横坐标和纵坐标,则在 MATLAB 中直接键入命令 cftool(X,Y) 就会弹出 Curve Fitting Tool 的 GUI 界面,点击界面上的 fitting 即可开始曲线 ...

  2. matlab拟合高次相,matlab 多元高次非线性函数拟合,回归,求教高手!

    问题描述: matlab 多元高次非线性函数拟合,回归,求教高手! 有这样几个数组 自变量n个: x=[...] y=[...] m=[.] w=[.] . 因变量一个: z=[.] 模型1(两个自变 ...

  3. matlab三次多样式对函数拟合,Matlab regress函数拟合多个变量分析

    声明 本文系本人原创,转载请注明出处. 简介 拟合曲线,在matlab中有polyfit函数,有cftool工具,对于多项式,指数,对数都有很好的拟合,但是对于多个参数的拟合,比如x1,x2--用什么 ...

  4. 《MATLAB 神经网络43个案例分析》:第3章 遗传算法优化BP神经网络——非线性函数拟合

    <MATLAB 神经网络43个案例分析>:第3章 遗传算法优化BP神经网络--非线性函数拟合 1. 前言 2. MATLAB 仿真示例 3. 小结 1. 前言 <MATLAB 神经网 ...

  5. 最小二乘法函数拟合原理及matlab实现—数学笔记

    最小二乘法函数拟合原理及matlab实现 --数值分析数学笔记 如有纰漏,欢迎指正 文章目录 最小二乘法函数拟合原理及matlab实现 前言 一.拟合标准 1.使偏差向量满足 1 1 1 - 范数 2 ...

  6. MATLAB实现多峰高斯函数拟合/多峰高斯分布函数拟合(MATLAB全代码)

    基于MATLAB实现多峰高斯函数拟合/多峰高斯分布函数拟合,提供三类多峰函数拟合方法,分别为双峰函数.三峰函数和自定义高斯函数. 1 原理 2 MATLAB代码实现 MATLAB函数如下: funct ...

  7. MATLAB 自定义函数拟合

    MATLAB 自定义函数拟合 首先建立阻滞增长模型 syms x(t) r xm t0 x0 eqns=diff(x,t)==r*(1-x/xm)*x; cons=x(t0)==x0; y(t)=si ...

  8. matlab多面函数拟合法拟合点gps水准数据 格式,拟合内插论文,关于沿海地区GPS水准模型构建相关参考文献资料-免费论文范文...

    导读:本文关于拟合内插论文范文,可以做为相关论文参考文献,与写作提纲思路参考. (辽宁省交通高等专科学校,辽宁 沈阳 110122) [摘 要]为提高GPS水准高程测量的精度以及解决测区内高程数据建模 ...

  9. matlab高斯拟合多峰,MATLAB用“fitgmdist”函数拟合高斯混合模型(一维数据)

    MATLAB用"fitgmdist"函数拟合高斯混合模型(一维数据) 在MATLAB中"fitgmdist"的用法及其GMM聚类算法中介绍过"fitg ...

  10. MATLAB多项式函数拟合和曲线拟合

    MATLAB软件提供了基本的曲线拟合函数的命令. 多项式函数拟合:a=polyfit(xdata,ydata,n) 其中n表示多项式的最高阶数,xdata,ydata为将要拟合的数据,它是用数组的方式 ...

最新文章

  1. 解决vista和win7在windows服务中交互桌面权限问题:穿透Session 0 隔离
  2. linux转mysql_转linux下mysql命令
  3. 页面重新加载_Chrome为PWA应用加入了返回和重新加载按钮
  4. java FileReader/FileWriter读写文件
  5. 根据实例说数据库设计(一)—— 人员管理
  6. Android之华为meta10 pro安卓8.0绑定服务(bindService)失败解决办法
  7. LeetCode 1650. 二叉树的最近公共祖先 III(哈希)
  8. cas4.2.7与shiro进行整合
  9. 2020-2021家居行业年度盘点与趋势洞察
  10. 【iOS】Swift3:context.executeFecthRequest(request, error: nil)
  11. 台达plc读取变频器电流案例_PLC模拟量信号如何转换,编程必懂!
  12. Hive怎样加入第三方JAR
  13. 英语打字练习软件-c语言编写
  14. 独家对话 RT-Thread 创始人熊谱翔:国产操作系统厚积而薄发 | 人物志
  15. jsp房屋出租管理系统带合同
  16. js正则表达式 验证非负数
  17. JAVASE笔记回顾
  18. Cyclone Protocol V3.0:登陆,以太坊!
  19. 502粘到手上变硬了怎么办_502胶水粘手如何处理?五种小技巧帮你轻松去胶!
  20. python刷视频挣钱_薅羊毛--使用python+adb实现自动刷视频点赞

热门文章

  1. Python文本分析---笔记
  2. 嵌入式系统硬件设计与实践(学习方法)
  3. vue v-if : TypeError: Cannot read property 'length' of undefined
  4. 极客时间 IT 20+ 张 各架构 高清技能图谱
  5. Java中==与equals
  6. 怎样重启Gunicorn
  7. binlog实时同步
  8. 卷积学习与传统稀疏编码、ICA模型学习区别(逐步补充)
  9. 经典的卷积神经网络结构,卷积神经网络基本结构
  10. 279. 完全平方数 (数学定理 四平方数之和定理)