最小二乘法#最小二乘法其实可以从投影的角度理解,个人认为这是最巧妙,无需计算的解法了(相比于对均方误差求导的解法)
假设我们有 mmm 个点 (t1,b1),(t2,b2),…,(tm,bm)(t_1,b_1),(t_2,b_2),\dots,(t_m,b_m)(t1,b1),(t2,b2),…,(tm,bm),要找一条直线 y=cx+dy=cx+dy=cx+d,最佳拟合它们,即令 ∑(cti+d−bi)2\sum (ct_i+d-b_i)^2∑(cti+d−bi)2(也被称为均方误差,mean square error, MSE)最小。
只需令
b=[b1b2⋮bm]A=[1t11t2⋮⋮1tm]x=[dc]\boldsymbol{b}=\left[
\begin{array}{ll}
b_1 \\
b_2 \\
\vdots \\
b_m
\end{array}\right]\qquad
A=\left[
\begin{array}{ll}
1 & t_1 \\
1 & t_2 \\
\vdots & \vdots \\
1 & t_m
\end{array}\right]\qquad
\boldsymbol{x}=\left[
\begin{array}{ll}
d \\
c
\end{array}\right]b=b1b2⋮bmA=11⋮1t1t2⋮tmx=[dc]就有 Ax=bA\boldsymbol{x}=\boldsymbol{b}Ax=b。假如 mmm 个点落在同一条直线上,这个方程才有解,大多数情况下,它是无解的,运用前面推导的式子,有
ATA=[m∑ti∑ti∑ti2]ATb=[∑bi∑biti]A^T A=\left[\begin{array}{ll}
m & \sum t_i \\
\sum t_i & \sum t_i^2
\end{array}\right]\qquad
A^T \boldsymbol{b}=\left[\begin{array}{l}
\sum b_i \\
\sum b_i t_i
\end{array}\right]ATA=[m∑ti∑ti∑ti2]ATb=[∑bi∑biti]只需解
[m∑ti∑ti∑ti2][dc]=[∑bi∑biti]\left[\begin{array}{ll}
m & \sum t_i \\
\sum t_i & \sum t_i^2
\end{array}\right]\left[\begin{array}{l}d\\ c\end{array}\right]=\left[\begin{array}{l}
\sum b_i \\
\sum b_i t_i
\end{array}\right][m∑ti∑ti∑ti2][dc]=[∑bi∑biti]即可得到使MSE最小的ccc和ddd。