把实际的某问题转化成最小二乘优化问题,形式如下:
X:系数矩阵,已知量
y:因变量,列向量,已知量
a:待优化参数,列向量,未知量对上式进行推算:
因 与 互为转置,且最终都是一个标量,因此它们相等
等价于求极值:
此时有用的公式:
得到结果:
求a变成了求上述带矩阵的方程式。线性方程组求解:
上述问题转为线性方程组求解问题:
令:
则问题转化为:
求解方式有以下:
- 若 A 可逆,直接左右乘A逆即可。但是我们很难做出这样的假设,无法保证A可逆。
- numpy.linalg.solve() 方法,使用的是 LU分解的解法。
- 还可使用梯度下降法