一、为什么要用到拟合算法
在一些插值算法不好用的情况下比较适合用拟合算法。就比如一些样本点过多的情况下,通过插值算法可以得到一个多项式经过所有样本点,但是样本点过多,那么这个多项式次数会过高,造成龙格现象,导致精确度下降。分段虽然可以让精度变高但是解析式会很复杂。
所以要用到拟合算法,拟合算法可以得到一个确定的曲线,这条曲线不一定会经过每一个样本点但可以保证误差足够小,和样本点足够接近,曲线比较简单。所以在样本点过多的时候不建议用插值算法。
上面这幅图如果用插值算法会得到下面这条曲线,解析式会很复杂
二、怎么拟合
设曲线解析式为
y=kx+b
求得k,b使样本点与曲线上的点最接近
第一种
第二种
第三种
第四种
求得k,b使argmin中的函数最小,通过求导的方法来求出k,b。第一种因为有绝对值找最小值不好用求导的方法找,第三种因为会有负数不采用,第四种对一些异常值(偏离很大的)会使曲线误差大。
三、用最小二乘法求得拟合曲线
四、如何判断拟合好坏
判断拟合好坏用,拟合优度。
线性函数这里指的是对参数为线性,参数仅以一次方的形式出现,不能乘或除其他参数。
如y=kx²+b就是对参数为线性,也是,因为可以转换为a=lny=kx²+b。
因为当对参数为线性时SST=SSE+SSR成立。
R²越接近一拟合不一定越好,因为拟合函数会越复杂。所以要R²越接近一时,要使函数简单。
本文参考清风老师的课件与思路。