最小二乘法是历史上非常有名的用于解决回归最值的方法,其可以理解为回归问题平方损失函数的解析解。
假设数据集为
(
X
,
y
)
(\boldsymbol X,\boldsymbol y)
(X,y),线性模型系数为
W
\boldsymbol W
W,则对应的平方损失函数为:
L
(
X
,
y
;
W
)
=
(
y
−
X
W
)
T
(
y
−
X
W
)
L(\boldsymbol X,\boldsymbol y;\boldsymbol W) =(\boldsymbol y-\boldsymbol {XW})^T(\boldsymbol y-\boldsymbol {XW})
L(X,y;W)=(y−XW)T(y−XW)将上式对
W
\boldsymbol W
W求偏导,并另值为0,则:
∂
L
∂
W
=
−
X
T
(
y
−
X
W
)
=
0
\frac{\partial L}{\partial \boldsymbol W}=-\boldsymbol X^T(\boldsymbol y-\boldsymbol {XW})=0
∂W∂L=−XT(y−XW)=0可得:
W
=
(
X
T
X
)
−
1
X
T
y
\boldsymbol W=(\boldsymbol {X^TX})^{-1}\boldsymbol {X^Ty}
W=(XTX)−1XTy上式即为最小二乘法的矩阵计算公式。相较于梯度下降法、牛顿法等梯度下降方法,最小二乘法可以一次性求出线性模型的系数,但其缺点也非常明显:
(1)若数据规模大,则整个矩阵运算的存储量和计算量均很大;
(2)当数据特征间存在多重共线性时,数据协方差矩阵
X
T
X
\boldsymbol {X^TX}
XTX并不可逆,这会导致最小二乘法失效。
解决上述多重共线性问题的常见方法有三种:
(1)特征筛选或数据降维。基于统计学知识,对特征的相关性进行排查;或者直接采用PCA等降维算法生成独立的特征。
(2)向前逐步回归,可看做一种基于模型的向前特征选择。
(3)对线性模型进行改造,使其能够使用应对多重共线性的场合。
在上述第(3)种方案中,岭回归(Ridge Regression)通过引入L2惩罚项,实现对协方差矩阵的调整,尽量避免了其不可逆的问题。
此时,损失函数为
L
(
X
,
y
;
W
)
=
(
y
−
X
W
)
T
(
y
−
X
W
)
+
α
∣
∣
W
∣
∣
2
2
L(\boldsymbol X,\boldsymbol y;\boldsymbol W) =(\boldsymbol y-\boldsymbol {XW})^T(\boldsymbol y-\boldsymbol {XW})+\alpha||\boldsymbol W||_2^2
L(X,y;W)=(y−XW)T(y−XW)+α∣∣W∣∣22式中
α
\alpha
α为惩罚因子,上式对
W
\boldsymbol W
W求偏导,可得:
∂
L
∂
W
=
−
X
T
(
y
−
X
W
)
+
2
α
W
=
0
\frac{\partial L}{\partial \boldsymbol W}=-\boldsymbol X^T(\boldsymbol y-\boldsymbol {XW})+2\alpha\boldsymbol W=0
∂W∂L=−XT(y−XW)+2αW=0从而,可得:
W
=
(
X
T
X
+
2
α
I
)
−
1
X
T
y
\boldsymbol W=(\boldsymbol {X^TX+2\alpha\boldsymbol I})^{-1}\boldsymbol {X^Ty}
W=(XTX+2αI)−1XTy上式中,逆矩阵内的项在决大多数情况下正定。即使存在行列式为0的情况,也可通过适当调整
α
\alpha
α值进行回避。