最小二乘法的多角度理解

1)线性拟合方式理解最小二乘法

已知X=

Y=

两个向量数据。实际上我们并不知道两者的函数关系

。在这里,我们假设他们存在一定的线性关系,我们假设Y中的元素与X中的元素满足线性关系

,因此实际值

之间的误差就是

,需要找到这样子的

,使得误差的平方和

最小(实际上这就是最小二乘法定义):

                                                              

因为,

,需要求

。求极值的方法就是求导,在这个就是对

求导。

                                                               

                                                                      

                                                               '

                                                                    

因此有:

                                                         

                                                         

用矩阵表示:

                                                        

两边各乘以1/n,转变如下:

                                                       

所以:

                                                       

2)矩阵方式理解最小二乘法

我们根据下面的线性表达式

                                                         

改写为下面的式子:

                                                        

如果不考虑误差

,将

看做未知数,那么

与1就被作为系数,可以转为如下矩阵公式:

                                                          

当n>2时,可知,这是个超定方程,没有精确解。对超定方程来说有一个最小二乘解:

                                                          

,上面的公式就可以改写为:

                                                           

而,这个解刚好可以使得S有最小值。这方面的理论可以查阅”超定方程解”,百度可以查到很多资料。因此,线性拟合与矩阵法的解必然是一致的。

3)最小二乘法的几何理解

假设n=3, x用p字母代替,那么有:

,

因此,

Pa

线性组合,因此在三维空间里,向量Pa一定落在向量

组成的平面当中。Y就好比是三维空间当中另一个已知向量。所以,这里

Y三个向量已知, 现在要寻找系数

,使得向量

的长度(也就是模)是最小的。在矩阵理论里,可以用下面的公式表示:

上面的公式表示向量

的2范数的平方,也就是向量各个元素平方和,刚好就是S值。这个值最小,就是意味着在平面上找到一个向量

使得向量

组成的平面距离最短,满足这样的

就是满足S最小。

4)Matlab例子

x=[0.5,1.0,1.5,2.0,2.5,3.0];

y=[1.75,2.45,3.81,4.80,7.00,8.6];

p=polyfit(x,y,1);

x1=0.5:0.5:3.0;

y1=polyval(p,x1);

plot(x,y,'*r',x1,y1,'-b')

(0)

相关推荐