与插值问题不同,在拟合问题中不需要曲线一定经过给定的点。拟合问题的目标是寻求一个函数(曲线),使得该曲线在某种准则下与所有的数据点最为接近,即曲线拟合的最好(最小化损失函数)

一、插值和拟合的区别

插值算法中,得到的多项式f(x)要经过所有样本点。但是如果样本点太多,那么这个多项式次数过高,会造成龙格现象。尽管我们可以选择分段的方法避免这种现象,但是更多时候我们更倾向于得到一个确定的曲线,尽管这条曲线不能经过每一个样本点,但只要保证误差足够小即可,这就是拟合的思想。(拟合的结果是得到一个确定的曲线)

并且,拟合函数倾向于选择尽可能简单的函数

二、拟合方法实现原理————最小二乘法



最小二乘法的思想应用广泛,具体原理与推导请见《概率论与数理统计教程》————茆诗松

本文在这一方面仅回答几个***钻的问题

1.y与y_hat的距离最小为什么不可以用绝对值来表示?



答:不容易求导,因此计算比较复杂

2.y与y_hat的距离最小为什么不可以用奇次幂来表示?

答::误差会正负相抵。

3.y与y_hat的距离最小为什么不可以用高次幂(如4次)来表示?

答:是为了避免极端数据对拟合曲线的影响。如果存在极端值,距离相减后再进行4次幂,这个值会非常的大。那么为了减小这个值,就只能更加接近与异常值,这样会导致曲线拟合精度出现问题

三、matlab曲线拟合工具箱的应用

1.工具箱位置

2.数据的导入

3.拟合方法的选择

在拟合过程中,我们倾向于选择多项式拟合与自定义方程拟合



在右边的拟合选项处,我们可以选择拟合多项式的次数

4.结果查看与拟合优度检验

在右下角可以看到参数的结果



拟合优度有几个指标,其中SSE代表误差平方和,越小越好;而R方越靠近1越好:

其中R方仅在线性回归中有用,在选择其他模型中,R方没有用;但是SSE在任何模型中都有用

注:不能为了让R方或者SSE最小而不断选择高次多项式,会造成过拟合

5.自定义方程拟合

拟合方法的选择可以选择自定义方程,此处我需要注意参数的输入形式

这里自变量一定要设置好,此处为t。其他的未知参数如xm与r,matlab会将其识别为代定参数,会根据优化算法寻找最优参数



但有时候,优化算法并不能找到最优参数,这是需要改变参数寻找的初始点

在拟合选项中,我们把xm的初始值改为100,则能够寻找到最优参数

拟合算法与matlab工具包实现的更多相关文章

  1. MATLAB中拟合算法刚入门

    %%%1.拟合问题:(做预测,主要使用的范围是样本比较小,拟合效果会好,样本比较多,拟合的效果就不是很好) 1.应用预测的场景:已经知道10年的样本,预测第11年以内的数据 2.用拟合的到关系式:样本 ...

  2. GMM算法的matlab程序

    GMM算法的matlab程序 在“GMM算法的matlab程序(初步)”这篇文章中已经用matlab程序对iris数据库进行简单的实现,下面的程序最终的目的是求准确度. 作者:凯鲁嘎吉 - 博客园 h ...

  3. GMM算法的matlab程序(初步)

    GMM算法的matlab程序 在https://www.cnblogs.com/kailugaji/p/9648508.html文章中已经介绍了GMM算法,现在用matlab程序实现它. 作者:凯鲁嘎 ...

  4. KFCM算法的matlab程序(用FCM初始化聚类中心)

    KFCM算法的matlab程序(用FCM初始化聚类中心) 在“聚类——KFCM”这篇文章中已经介绍了KFCM算法,现在用matlab程序对iris数据库进行实现,用FCM初始化聚类中心,并求其准确度与 ...

  5. KFCM算法的matlab程序

    KFCM算法的matlab程序 在“聚类——KFCM”这篇文章中已经介绍了KFCM算法,现在用matlab程序对iris数据库进行简单的实现,并求其准确度. 作者:凯鲁嘎吉 - 博客园 http:// ...

  6. FCM算法的matlab程序2

    FCM算法的matlab程序2 在“FCM算法的matlab程序”这篇文章中已经用matlab程序对iris数据库进行实现,并求解准确度.下面的程序是另一种方法,是最常用的方法:先初始化聚类中心,在进 ...

  7. FCM算法的matlab程序

    FCM算法的matlab程序 在“FCM算法的matlab程序(初步)”这篇文章中已经用matlab程序对iris数据库进行简单的实现,下面的程序最终的目的是求准确度. 作者:凯鲁嘎吉 - 博客园 h ...

  8. K-means算法的matlab程序

    K-means算法的matlab程序 在“K-means算法的matlab程序(初步)”这篇文章中已经用matlab程序对iris数据库进行简单的实现,下面的程序最终的目的是求准确度. 作者:凯鲁嘎吉 ...

  9. FCM算法的matlab程序(初步)

    FCM算法的matlab程序 在https://www.cnblogs.com/kailugaji/p/9648430.html文章中已经介绍了FCM算法,现在用matlab程序实现它. 作者:凯鲁嘎 ...

  10. K-means算法的matlab程序(初步)

    K-means算法的matlab程序 在https://www.cnblogs.com/kailugaji/p/9648369.html 文章中已经介绍了K-means算法,现在用matlab程序实现 ...

随机推荐

  1. three.js教程7-PBR材质与环境贴图CubeTextureLoader

    1.PBR材质 PBR是基于物理的渲染(physically-based rendering).模拟物体表面的反射算法. Three.js提供了两个PBR材质相关的类MeshStandardMater ...

  2. 从XML配置角度理解Spring AOP

    本文分享自华为云社区<Spring高手之路18--从XML配置角度理解Spring AOP>,作者: 砖业洋__. 1. Spring AOP与动态代理 1.1 Spring AOP和动态 ...

  3. CentOS7离线部署JDK

    一. 下载JDK 官网地址: https://www.oracle.com/java/technologies/downloads/#java18 网盘地址: 链接:https://pan.baidu ...

  4. ChannelInboundHandlerAdapter 类

    在 ChannelInboundHandlerAdapter 类中,除了 channelActive 和 channelRead 方法之外,还有其他方法用于处理不同类型的入站事件.以下是这些方法的解释 ...

  5. .netz 压缩 打包 成单EXE

    https://github.com/madebits/msnet-netz-compressor https://madebits.github.io/#r/msnet-netz-compresso ...

  6. WPF 中使用附加属性解决 PasswordBox 的数据绑定问题

    1.前言 在 WPF 开发中 View 中的数据展示我们常通过 Binding 进行绑定.但是,使用 Binding 有一个前提:绑定的目标只能是依赖属性. 而 PasswordBox 控件中的 Pa ...

  7. 小米路由器4c刷入openwrt并成功进行锐捷认证

    小米路由器4C 刷入openwrt 并成功进行锐捷认证 前言: 在大学中,宿舍有个路由器当然是刚需,然而,我们学校的校园网需要进行锐捷认证,常规的路由器还用不了,需要自己刷路由器或是从奸商处购买.初入 ...

  8. C#.NET 微信上传电子小票

    HttpWebRequest 时,不认图片的Content-Type.Content-Type 实际是有传的. 报错内容:{"code":"PARAM_ERROR&quo ...

  9. Windows 预览体验计划显示空白

    Open PowerShell as Administator.In the elevated PowerShell window, copy and paste the following comm ...

  10. Sass报错: Using / for division is deprecated

         原因是:当sass版本>= 1.33.0时,会不支持 / 这种语法:  解决方式一:      降低sass版本,将sass版本换成:"sass": "^ ...