机器学习python:机器学习相关矩阵知识(八)矩阵的近似与拟合(近似解问题)
在之前的讨论中,我们了解到线性方程组有三种情况①唯一解;②无解;③无数解;通过矩阵推导我们了解到如何解决唯一解与如何表示无数解。但在实际生活工作中,方程无解的情况非常常见
如:
通过计算我们发现这个方程组无解,等号右边的向量b不在矩阵A的列空间中,
所以此时我们需要找到一组近似解A,使方程组左侧得到的结果离右侧的目标尽可能最近,这个就是近似解问题。例如,在R2平面上任取3个点,需要找到一条直线同时通过这三个点,显然是不可能的,但是我们可以找到一条直线使这条直线到三个点的距离最近的方案,这个问题就是拟合。
从投影谈“最近”
当我们求空间中的一点b到空间中过原点的向量a的最近距离时,我们将过b点做a的垂直线段,而我们寻找的最短距离点就是这个垂直线段与向量a的所在直线的交点 。此时我们有,向量b与向量a的夹角θ,以及向量b在向量a的投影向量p,那么点b到向量a的最短距离为垂线段的长度可以表-为|b|sinθ。此时我们规定向量e=b-p,它的长度就是我们要找的最短距离。
利用矩阵描述一维空间的投影
通过上图我们可以发现,当向量b在向量a上的投影p可以用向量a进行表示即p=
x ^ \hat{x} x^a( x ^ \hat{x} x^是一个标量),接下来的目标就是求去标量系数 x ^ \hat{x} x^,投影向量p,以及向量b到向量p的投影矩阵P.
由先前讨论可知,误差亮相e=b-p与向量a垂直,于是有:
a·e = 0 → a·(b-p)=0 → a·(b- x ^ \hat{x} x^a)=0
化简得:a·b- x ^ \hat{x} x^a·a=0 → x ^ \hat{x} x^= a T ⋅ b a T ⋅ a \frac{a^T·b}{a^T·a} aT⋅aaT⋅b
由于p= x ^ \hat{x} x^a( x ^ \hat{x} x^是一个标量),我们可以求出投影向量p与投影矩阵P分别为:
投影向量: p= x ^ \hat{x} x^a= x ^ \hat{x} x^= a T ⋅ b a T ⋅ a \frac{a^T·b}{a^T·a} aT⋅aaT⋅ba=a· a T ⋅ b a T ⋅ a \frac{a^T·b}{a^T·a} aT⋅a