一.线性回归
- 线性回归形式简单、易于建模,但却蕴涵着机器学习中一些重要的基本思想。许多功能更为强大的非线性模型(nonlinear model)可在线性模型的基础上通过引入层级结构或高维映射而得。此外,由于线性回归的解????直观表达了各属性在预测中的重要性,因此线性回归有很好的可解释性。
1.线性回归原理
线性回归遇到的问题一般是这样的。我们有????个样本,每个样本对应于????维特征和一个结果输出。
训练数据的形式:
(x1(0),x2(0),...xn(0),y0),(x1(1),x2(1),...xn(1),y1),...(x1(m),x2(m),...xn(m),yn)
我们主要做的是通过找到参数(θ0,θ1,...θm),线性回归模型如下:
hθ,(x1,x2,...xn)=θ0+θ1x1+...+θnxn
矩阵化如下:
hθ(X)=Xθ
得到了模型,我们需要求出需要的损失函数,一般线性回归我们用均方误差作为损失函数。损失函数的代数法表示如下:
J(θ0,θ1,...θn)=i=0∑m(hθ(x0,x1,...xn)−yi)2
矩阵化如下:
J(θ)=21(Xθ−Y)T(Xθ−Y)
2.线性回归的算法
对于线性回归的损失函数J(θ)=21(Xθ−Y)T(Xθ−Y),J(θ)′=XT(Xθ−Y)我们常用的有两种方法来求损失函数最小化时候的θ参数:一种是梯度下降法,一种是最小二乘法。
-
如果采用梯度下降法,则????的迭代公式是这样的:
θ=θ−αXT(Xθ−Y)
其中α是学习率(步长),XT(Xθ−Y)是梯度
通过若干次迭代后,我们可以得到最终的????的结果
-
如果采用最小二乘法,则θ的结果公式如下:
θ=(XTX)−1XTY
推导如下:
令J(θ)′=0,即XT(Xθ−Y)
所以θ=(XTX)−1XTY
当然线性回归,还有其他的常用算法,比如牛顿法和拟牛顿法,这里不详细描述。
3.多项式线性回归
我们遇到的数据不一定都是线性的形式,如果是y=x12+x22的模型,那线性回归很难拟合这个函数,这时候就需要用到多项式回归了。
回到我们开始的线性模型,hθ,(x1,x2,...xn)=θ0+θ1x1+...+θnxn,如果这里不仅仅是x的一次方,而是二次方,那么模型就变成了多项式回归。这里写一个只有两个特征的2次多项式回归的模型:
hθ(x1,x2)=θ0+θ1x1+θ2x2+θ3x12+θ4x22+θ5x1x2
我们令x0=1,x1=x1,x2=x2,x3=x12,x4=x22,x5=x1x2,这样我们就得到下式:
hθ(x1,x2)=θ0+θ1x1+θ2x2+θ3x3+θ4x4+θ5x5
可以发现,我们又重新回到了线性回归,这是一个五元线性回归,可以用线性回归的方法来完成算法。对于每个二元样本特征(x1,x2),我们得到一个五元样本特征(1,x1,x2,x12,x22,x1,x2),通过这个改进的五元样本特征,我们重新把不是线性回归的函数变回线性回归,但是达到了非线性拟合的效果。
二.岭回归
1.参数推导
线性回归模型的目标函数
J(β)=∑(y−Xβ)
为了保证回归系数β可求,岭回归模型在目标函数上加了一个L2范数的惩罚项
J(β)=∑(y−Xβ)2+λ∣∣β∣∣2=∑(y−Xβ)2+∑λβ2
其中λ为非负数,λ越大,则为了使J(β)最小,回归系数β就越小。
推导过程:
J(β)=(y−Xβ)T(y−Xβ)+λβTβ=yTy−yTXβ−βTXTy+βTXTXβ+λβTβ
令∂β∂J(β)=0
⇒0−XTy−XTy+2XTXβ+2λβ=0
⇒β=(XTX+λI)−1XTy
L2范数惩罚项的加入使得(XTX+λI)满秩,保证了可逆,但是也由于惩罚项的加入,使得回归系数β的估计不再是无偏估计。所以岭回归是以放弃无偏性、降低精度为代价解决病态矩阵问题的回归方法。
单位矩阵I的对角线上全是1,像一条山岭一样,这也是岭回归名称的由来。
2.λ的选择
- 模型的方差:回归系数的方差
- 模型的偏差:预测值和真实值的差异
随着模型复杂度的提升,在训练集上的效果就越好,即模型的偏差就越小;但是同时模型的方差就越大。对于岭回归的λ而言,随着λ的增大,∣XTX+λI∣就越大,(XTX+λI)−1就越小,模型的方差就越小;而λ越大使得β的估计值更加偏离真实值,模型的偏差就越大。所以岭回归的关键是找到一个合理的λ值来平衡模型的方差和偏差。
根据凸优化,可以将岭回归模型的目标函数J(β)最小化问题等价于
f(x)={argmin{∑(y−Xβ2)}∑β2≤t
其中t为一个常数。以最简单的二维为例,即β(β1,β2)其几何图形是
抛物面代表的是∑(y−Xβ)2的部分,圆柱体代表的是β12+β22≤t的部分。最小二乘解是抛物面的中心,岭回归解是抛物面与圆柱体的交点。岭回归的惩罚项∑λβ2是关于回归系数β的二次函数,对目标函数求偏导时会保留β,抛物面与圆柱体很难相交于轴上使某个变量的回归系数为0,因此岭回归不能实现变量的剔除。
(1) 岭迹法确定λ值
由β=(XTX+λI)−1XTy可知β是λ的函数,当λ∈[0,∞)时,在平面直角坐标系中的β−λ曲线称为岭迹曲线。当β趋于稳定的点就是所要寻找的λ值。
(2)交叉验证法确定λ\lambdaλ值
交叉验证法的思想是,将数据集拆分为k个数据组(每组样本量大体相当),从k组中挑选k-1组用于模型的训练,剩下的1组用于模型的测试,则会有k-1个训练集和测试集配对,每一种训练集和测试集下都会有对应的一个模型及模型评分(如均方误差),进而可以得到一个平均评分。对于λ值则选择平均评分最优的λ值。