最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合。其他一些优化问题也可通过最小化能量或最大化熵用最小二乘法来表达。
背景:我们有一系列的点(x,y),如下图所示,实际上这就是一个y=10*x的一元一次曲线,再加上一个随机误差得到的数据。
我们想用一个线性方程来拟合它y=a*x+b
为了达到最好的拟合效果,我们应该让
最小。(y是原始值)。
对上式求导
对上式稍微整理以下,使用克莱姆法则,得
矩阵的表达形式
如果我们推广到更一般的情况,假如有更多的模型变量x^1, x^2,…, x^n(注意:x^1是指一个样本,x_1是指样本里的一个模型相关的变量),可以用线性函数表示如下:
对于n个样本来说,可以用如下线性方程组表示:
注意事项
经典的最小二乘法使用起来够简单粗暴,计算过程也不复杂。但是一个致命的问题就是其对噪声的容忍度很低。试想一下,如果前面我们得到的总采样数据为100个,但是里面有几个误差比较大的数据,这就是噪声了。如果不采取一些手段对这几个噪声样本进行处理,最后拟合的效果肯定不是很好。
对于噪声的处理,比如有加权最小二乘等方法,后续有时间跟大家再讲讲
我们加入更大一点的噪声,发现这时候拟合的效果就不是很好,噪声直接把拟合曲线给带偏了。
下面是多项式拟合的结果