线性回归与最小二乘法
最小二乘法是我们经常用到的求解模型的回归方法,是一种优化方法,对于一个线性模型
Xθ=y X θ = y
X X
为
行
n n
列的矩阵,代表
个样本,每个样本有
n n
个变量,即有
个等式,未知数
n n
个,
,
θ θ
和
y y
为一维向量,该方程没有解,但可以选择适合的
使等式尽可能接近,如果以残差平方和评价,代价函数为
loss=||Xθ−y||2 l o s s = | | X θ − y | | 2
如何使代价最小是一个优化问题,可以通过梯度下降法求解,也可以通过最小二乘求解,最小二乘解为
θ^=(XTX)−1XTy θ ^ = ( X T X ) − 1 X T y
最小二乘解是未知变量的无偏估计,但当X不是列满秩或某些列之间的线性相关性比较大时,
XTX X T X
的这些行相同或线性相关性也比较大,使行列式接近于0,即
XTX X T X
接近于奇异,此时
XTX X T X
条件数很大,计算
(XTX)−1 ( X T X ) − 1
时的误差会很大,其解缺乏稳定性和可靠性。X矩阵中不同列之间具有完全或高度相关关系叫做多重共线性,这种情况下用最小二乘求得的解释不可靠的,一言蔽之,模型无偏,方差大,解决办法有:
- 找到引起多重共线性的变量,将其排除;
- 使用逐步回归法,逐步添加和排除变量,使最终使用的变量集合最优;(最常用,最有效)
- 通过加入扰动(正则项),增加解的稳定性,即岭回归。
- 通过主成分分析得到新的变量集合。
可以用最小二乘法求解的线性回归模型为
y=Xθ+b y = X θ + b
对于y的取值为{0,1}或在[0,1]区间的问题,可以用逻辑回归模型建模
y=σ(Xθ+b) y = σ ( X θ + b )
其中
σ σ
是sigmoid函数
岭回归
岭回归(ridge regression),是线性模型一种有偏回归方法,相比最小二乘法增加了偏差,减小了方差,将最小二乘法中的 loss l o s s 增加l2正则项(二范数的平方 ||θ||22 | | θ | | 2 2 ,向量内积 <θ,θ> < θ , θ > <script id="MathJax-Element-207" type="math/tex"><\theta,\theta></script>,向量所有元素的平方和 ∑ni=1θ2i ∑ i = 1 n θ i 2 ),损失函数为
loss=||Xθ−y||2+α∑i=1nθ2i l o s s = | | X θ − y | | 2 + α ∑ i = 1 n θ i 2
岭回归的解为
θ(α)=(XTX+αI)−1XTy θ ( α ) = ( X T X + α I ) − 1 X T y
其中
I I
为单位矩阵,随着
的增大,
θ θ
的各项相对于正确值的偏差越来越大,
α α
无穷大时,
θ θ
趋近于0,可以取多组不同的
α α
,画出每个
θ θ
分量的变化轨迹,也叫岭迹图,借助岭迹图可以确定最佳
α α
。
Lasso回归:(Least Absolute Shrinkage and Selection Operator),在最小二乘法的损失函数中添加l1正则项(一范数 ||θ||1 | | θ | | 1 ,向量所有元素的绝对值之和 ∑ni=1|θi| ∑ i = 1 n | θ i | ),损失函数为
loss=||Xθ−y||2+α∑i=1n|θi| l o s s = | | X θ − y | | 2 + α ∑ i = 1 n | θ i |
Lasso回归的特点,具有特征选择性,对于不重要的特征,对应的
θ θ
容易收缩为0,比岭回归更快速。lasso回归的解法主要有坐标轴下降法和最小角回归法。
坐标轴下降法是一种非梯度优化方法,与梯度下降法沿一个特定方向迭代不同,在每次迭代过程中按一定的次序分别沿着各个坐标轴方向搜索极小值。坐标轴下降法在稀疏矩阵上的计算速度非常快,同时也是lasso回归最快的解法。
最小角回归法是前向选择算法和前向梯度算法的折中版本,详情看 Lasso Regression,利用lasso回归也可以做特征选择。Lasso惩罚项超参数可以基于交叉验证,或者基于信息准则。
ElasticNet回归:同时包含l1和l2正则项的最小二乘法,损失函数为
loss=||Xθ−y||2+α∑i=1n|θi|+β∑i=1nθ2i l o s s = | | X θ − y | | 2 + α ∑ i = 1 n | θ i | + β ∑ i = 1 n θ i 2
另外,可以将ridge,lasso和elasticNet表示成带约束的优化问题
min||Xθ−y|