拟合算法与matlab工具包实现

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

一、插值和拟合的区别

插值算法中,得到的多项式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,则能够寻找到最优参数

posted @ 2024-06-28 19:43  卢宇博  阅读(22)  评论(0编辑  收藏  举报