最小二乘法解方程往往适用于方程的个数大约未知量的个数,往往无精确解的情况。也就是说,因为用高斯消去法无法求解不相容方程,但确可以用最小二乘法求近似解。
假定我们有这样一个应用
我们想知道70后,80后,90后,对电影演技和剧本的评价。首先让一个人对一部影片的演技评分x1,对一个剧本评分x2,然后评一个总体分y。我们假定β1是演技的权重,β2是剧本的权重,并假设y=β1*x1+β2*x2。
已知70后用户3人,对影片评价的结果如下
x1 x2 y
1 1 2
1 -1 1
1 1 3
即,第一个人给演技打1分,剧本打1分,总体加2分,第二个人给演技打1分,剧本打-1分,总体打1分,第三个人给演技打1分,给剧本打1分,总体打3分。
我们需要找到一个(β1,β2)使得
β1*x1+β2*x2≈y (≈表示尽可能接近y)
这个方程可以看作是Ax=b的一个方程,其中(A为3*2矩阵,x为2*1列向量,b为3*1列向量)
A= 1 1
1 -1
1 1
x = β1
β2
b = 2
1
3
b表示为A的列向量无关组,两个3维列向量构成了一个平面,只有当b落在这个平面内,方程才有精确解。如果解不存在,那么平面Ax中必然存在一点x'与b最接近,这一特殊向量使得b-Ax'垂直于Ax平面。
即(b-Ax')⊥Ax
(b-Ax')*(Ax)T=0 (如果uT*v=0,则向量u和v正交,uT表示u的转置)
展开得到
xTAT(b-Ax')=0
AT(b-Ax')与任何x正交,说明AT(b-Ax')=0
展开得到
x'=(ATA)-1ATb [和Andrew Ng的解结果一致]
因此如果突破了求逆阵的困难,求近似解将变得简单。
本文参考了《Numerical Analysis》 Timothy Sauer