线性回归
线性回归到底是什么?
假设数据为:
D=(x1,y1),⋯,(xN,yN)
记为:
X=(x1,x2,⋯,xN)T,Y=(y1,y2,⋯,yN)T
假设:
h(x)=hθ(x)=θ0+θ1x1+θ2x2+⋯+θNxN=θTX
线性回归假设特征和结果满足线性关系。其实线性关系的表达能力非常强大,每个特征对结果的影响强弱可以由前面的参数体现,而且每个特征变量可以首先映射到一个函数,然后再参与线性计算。这样就可以表达特征与结果之间的非线性关系。
x1,⋯,xN代表了不同的特征(features),θ在这里是参数,也可以理解为权重,意思是调整特征中每个分量的占比,那么我们需要设计一个机制来对θ进行评估,来用一个函数J(θ)来描述hθ(x)不好的程度。
核心思想
所以如何构造J(θ),也就是我们所谓的损失函数就十分重要!
最小二乘法
我们采用二范数定义的平方误差来定义损失函数:
J(θ)=i=1∑N∣∣θTxi−yi∣∣22
展开得到:
J(θ)=(θ)TXTXθ−2θTXTY+YTY
估计最小化上面的值的θ^:
θ^=argθminJ(θ)
我们对损失函数关于参数θ求导使其等于0,从而解出θ^。
θ^=(XTX)−1XTY=X+Y
这个等式也叫normal equation,其中的θ^=(XTX)−1XT被称为伪逆。对于行或列满秩的X,可以直接求解,但是矩阵的逆可能会求起来比较慢,而对于非满秩的样本,需要使用奇异值分解,也就是SVD方法,得到
X=UΣVT
所以:
X+=VΣ−1UT
在几何角度上
这里,最小二乘法相当于直线与实验值的距离的平方和,我们希望这个距离越小越好,也就是所谓点到直线的最短距离,就是垂直的情况。那么延伸到高维的情况,假设我们的实验样本张成一个p维空间(满秩):X=Span(x1,⋯,xN),而h(x)=hθ(x)=θTX,也就是x1,⋯,xN的某种线性组合,那么这个距离的差值应该和这个张成的空间垂直才能保证距离的最小化。
XT⋅(Y−θTX)=0⇒θ=(XTX)−1XTY
梯度下降法
J(θ)=21i=1∑N(hθ(x(i))−y(i))2
我们要寻找θ使得J(θ)最小,因此问题归结为求极小值问题,步骤如下:
- 首先对参数随机赋值
- 改变参数,使得损失函数按梯度下降的方向减少,梯度方向有偏导决定,因为求的为极小值,所以梯度方向是偏导的反方向,迭代方式有两种:
- 重复直到收敛
选用误差函数为平方和的概率解释
至于为什么我们把损失函数定义为上述的形式,我们从概率方面来解释。假设根据特征的预测结果和实际结果有误差ϵ(i),那么预测结果和真实结果满足:
y(i)=θTx(i)+ϵ(i)
一般,误差满足均值为0的正态分布,那么
p(y(i)∣x(i);θ)=2πσ1exp(−2σ2(y(i)−θTx(i))2)
这样就估计了一条样本结果的概率,然而我们希望概率积最大。注意这里的概率积是概率密度函数积,连续函数的概率密度函数与离散值的概率函数不同。这个概率积成为最大似然估计。
J(θ)=log p(Y∣X;θ)=log i=1∏Np(y(i)∣x(i);θ)
argθminJ(θ)=argθmini=1∑N(y(i)−θTx(i))2
这就解释了为什么损失函数使用平方和。
线性回归的优缺点
-
优点:
- 建模速度快:不需要复杂计算,数据量大时运行速度很快
- 可根据洗漱给出每个变量的解释
-
缺点:
改进
正则化
针对过拟合情况,我们有以下选择:
-
加数据
-
特征选择
-
正则化
正则化一般是在损失函数基础上加入正则项,对模型复杂度进行惩罚
L1:argθminJ(θ)+λ∣∣θ∣∣1,λ>0
L2:argθminJ(θ)+λ∣∣θ∣∣22,λ>0
-
L1 Lasso
Lasso可以引起稀疏解,λ过大,模型复杂度过低会欠拟合,过小相当于没有进行惩罚,这个参数需要调试,选取最优
-
L2 Ridge
Ridge不会引起稀疏解,但会使得某些参数十分接近0,λ的改变情况也跟L1一样
补充:
实际应用和代码展示
小结
线性回归模型是最简单的模型,但是麻雀虽小,五脏俱全,在这里,我们利用最小二乘误差得到了闭式解。同时也发现,在噪声为正态分布的时候,MLE的解等价于最小二乘误差,而增加了正则项后对模型过拟合情况进行改善,分别介绍了Lasso和Ridge的特点和区别。
虽然线性模型简单且易于理解,但是也有很多局限性,比如对非线性数据效果不好,对异常值敏感,无法解决分类问题,受制于特征间的线性相关性以及易造成维数灾难等等。