线性回归(Linear Regression,LR)
对于m个样本
X=[x1,x2⋯xn]T,用参数
Θ=[θ1,θ2⋯θn]T进行估计,记为
hθ(x)=ΘTX=θ0x0+θ1x1+⋯θnxn(为表示方便令x0=1。)定义损失函数
J(θ)=21i=1∑m(hθ(xi)−yi)2
目标为最小化损失函数
J(θ),可使用梯度下降法或者最小二乘法。
- 梯度下降法
求
J(θ)相对于
θ的梯度
∂θj∂J(θ)=(hθ(xi)−yi)xji,这里上标i表示第i个样本,下标j表示样本的第j个特征。在梯度的负方向上更新
θ,即
θj:=θj−α∂θj∂J(θ)=θj+α(yi−hθ(xi))xji
- 最小二乘法
将样本整体表示为矩阵X,结果表示为向量
y
,则参数
θ可由下式求得
θ=(XTX)−1XTy
但要求X为列满秩(列满秩要求行数大于列数,即样本数量应大于特征维度,否则
(XTX)为奇异矩阵,不可逆),并且求逆矩阵较慢。并且当出现多重共线性时无法计算。
线性回归注意事项
- 特征归一化:即对特征数据进行归一化操作,进行特征缩放的好处有两点,一是能够提升模型的收敛速度,因为如果特征间的数据相差级别较大的话,以两个特征为例,以这两个特征为横纵坐标绘制等高线图,绘制出来是扁平状的椭圆,这时候通过梯度下降法寻找梯度方向最终将走垂直于等高线的之字形路线,迭代速度变慢。但是如果对特征进行归一化操作之后,整个等高线图将呈现圆形,梯度的方向是指向圆心的,迭代速度远远大于前者。二是能够提升模型精度。关于归一化可以参考模式识别之样本数据归一化(Normalization)与标准化(Standardization)
- 学习率α的选取:如果学习率α选取过小,会导致迭代次数变多,收敛速度变慢;学习率α选取过大,有可能会跳过最优解,最终导致根本无法收敛。可使用3倍法选择学习率,即0.01,0.03,0.1,0.3,1,3···
- 绘制迭代次数与损失函数的曲线判断优化效率即选择合适的参数。此方法适用于梯度下降法。
- 在线性回归中,可能出现多重共线性,会对结果产生较大影响。多重共线性即不同特征之间存在近似线性关系。解决方法可参考多重共线性的解决方法。
岭回归(Ridge Regression)和Lasso回归
在线性回归中,存在以下问题:
- 变量间存在多重共线性时模型估计不准或者无法估计
- 样本数较小时发生过拟合
为解决此类问题提出岭回归和Lasso回归,其分别对应L2正则化和L1正则化。
岭回归
损失函数修改为
J(θ)=21i=1∑m(hθ(xi)−yi)2+λj=1∑nθj2
λ为惩罚系数,可以限制参数的范围,使用的是L2正则化项。
Lasso回归
损失函数修改为
J(θ)=21i=1∑m(hθ(xi)−yi)2+λj=1∑n∣θj∣
λ为惩罚系数,可以限制参数的范围,使用的是L1正则化项。
如果
λ选取过大,会把所有参数θ均最小化,造成欠拟合,如果λ选取过小,会导致对过拟合问题解决不当
岭回归和Lasso回归的联系与区别
二者都通过正则化项来减少过拟合,但Lasso使用L1正则化可以使更多参数变为0,起到特征选择的作用,一定程度上优于岭回归。关于L1的稀疏作用参考文章L1相较于L2的稀疏性。
无论对于岭回归还是lasso回归,本质都是通过调节λ来实现模型误差vs方差的平衡调整。
参考资料:
线性回归、岭回归、Lasso回归
岭回归及LASSO回归
正则化的线性回归 —— 岭回归与Lasso回归
多元线性回归模型的特征压缩:岭回归和Lasso回归
逻辑回归
softmax