也许在我们读高中的时候,就知道在数学的世界里,有一种直线拟合的方式:最小二乘法。它是一种数学优化技术,原理是通过最小化误差的平方和寻找数据的最佳函数匹配。

比如研究x和y之间的关系,假设我们拥有的数据是

机器学习线性怎么拟合折线 如何进行线性拟合_最小二乘法

将这些数据描绘在x-y直角坐标系中,发现这些点并没有能够连接成一条直线。

机器学习线性怎么拟合折线 如何进行线性拟合_拟合_02

但趋势近似一条曲线,这时可以假设这条曲线为:机器学习线性怎么拟合折线 如何进行线性拟合_拟合_03 。根据最小二乘的原理,使机器学习线性怎么拟合折线 如何进行线性拟合_最小二乘法_04

机器学习线性怎么拟合折线 如何进行线性拟合_拟合_05

最小化,可以得到机器学习线性怎么拟合折线 如何进行线性拟合_机器学习线性怎么拟合折线_06值,再根据直线过点机器学习线性怎么拟合折线 如何进行线性拟合_机器学习线性怎么拟合折线_07得出b的值。机器学习线性怎么拟合折线 如何进行线性拟合_拟合_08为横坐标的平均值,机器学习线性怎么拟合折线 如何进行线性拟合_数据_09为纵坐标的平均值。其中,

机器学习线性怎么拟合折线 如何进行线性拟合_拟合_10

,机器学习线性怎么拟合折线 如何进行线性拟合_最小二乘法_11

其实最小二乘法不仅可以拟合直线(一次),还可以拟合曲线(≥2次)。

在温习了高中所学的最小二乘法后,让我们使用大学里线性代数的知识,进行拟合吧。

Ax=b,A是m*n型的矩阵其中m>n,A列满秩,那么Ax=b可能有解,也可能无解。

如果Ax=b有解,因为列满秩,容易得知x的解是唯一的,其实可以想象成空间里投影,就是b在A的列空间上C(A)里投影是唯一的;

如果Ax=b无解,说明b ∉ C(A),那么我们把问题转化一下:

机器学习线性怎么拟合折线 如何进行线性拟合_拟合_12

,使得A

机器学习线性怎么拟合折线 如何进行线性拟合_数据_13

与b之间的距离最小,也就是Min

机器学习线性怎么拟合折线 如何进行线性拟合_数据_14

这时我们需要一点空间想象的能力,所要求的

机器学习线性怎么拟合折线 如何进行线性拟合_数据_13

,无非就是向量b在C(A)这个空间上的投影点,因为只有在这种情况下,||b-A

机器学习线性怎么拟合折线 如何进行线性拟合_数据_13

||才是最小。

我们来看一个点在直线上投影的例子:

机器学习线性怎么拟合折线 如何进行线性拟合_拟合_17

如图,我们要求b在a上的投影向量p,只要稍微懂点高中数学的向量知识,我们可以得到下面两个式子:

①p+e=b,e⊥a

②p=ta(t∈R)

因为e⊥a,所以

机器学习线性怎么拟合折线 如何进行线性拟合_数据_18

,也就是

机器学习线性怎么拟合折线 如何进行线性拟合_拟合_19

,所以

机器学习线性怎么拟合折线 如何进行线性拟合_数据_20

那么b在a上的投影向量为

机器学习线性怎么拟合折线 如何进行线性拟合_最小二乘法_21

又因为

机器学习线性怎么拟合折线 如何进行线性拟合_最小二乘法_22

所以投影向量又可以写成

机器学习线性怎么拟合折线 如何进行线性拟合_数据_23

习惯上,我们习惯将

机器学习线性怎么拟合折线 如何进行线性拟合_拟合_24

称为投影矩阵,比如对任意b∈

机器学习线性怎么拟合折线 如何进行线性拟合_机器学习线性怎么拟合折线_25

,Sb是b在a上的投影向量。我们会发现一个有趣的性质,

机器学习线性怎么拟合折线 如何进行线性拟合_最小二乘法_26

,其实很好理解,Sb是指b在a上的投影向量,那么

机器学习线性怎么拟合折线 如何进行线性拟合_最小二乘法_27

则是指b在a上投影一次后的投影,再投影一次,Sb和

机器学习线性怎么拟合折线 如何进行线性拟合_最小二乘法_27

无疑是相等的,所以

机器学习线性怎么拟合折线 如何进行线性拟合_数据_29

,根据

机器学习线性怎么拟合折线 如何进行线性拟合_数据_29

容易得出

机器学习线性怎么拟合折线 如何进行线性拟合_机器学习线性怎么拟合折线_31

,此处不进行推导。

机器学习线性怎么拟合折线 如何进行线性拟合_最小二乘法_32

接着进行分析,看上图,易知b-p⊥C(A),那么则有

机器学习线性怎么拟合折线 如何进行线性拟合_机器学习线性怎么拟合折线_33

,去括号得

机器学习线性怎么拟合折线 如何进行线性拟合_机器学习线性怎么拟合折线_34

,我们称此方程为法方程,Ax=b可能无解,但

机器学习线性怎么拟合折线 如何进行线性拟合_机器学习线性怎么拟合折线_34

一定有解。那么,

机器学习线性怎么拟合折线 如何进行线性拟合_数据_13

就是最小二乘法拟合下的最优值。接着来看p,因为p=A

机器学习线性怎么拟合折线 如何进行线性拟合_数据_13

,则

机器学习线性怎么拟合折线 如何进行线性拟合_拟合_38

。巧妙的,我们可以很容易地发现

机器学习线性怎么拟合折线 如何进行线性拟合_最小二乘法_39

这个东西也符合上面投影矩阵S的性质:

机器学习线性怎么拟合折线 如何进行线性拟合_最小二乘法_26


说了这么多,是不是感觉用线性代数完成最小二乘法特别的方便呢!