线性回归、岭回归、lasso回归与逻辑回归LR

线性回归与逻辑回归LR

  • 线性回归
    • 应用场合
    • 求解
      • 最小二乘法
      • 梯度下降法
    • 加入正则化
      • 岭回归Ridge regression
      • lasso回归lasso regression
      • 从贝叶斯角度理解这俩回归
  • 逻辑回归LR
    • 交叉熵损失(极大似然损失)
    • 梯度下降法
    • 优缺点
  • 区别与联系以及其他常见问题

线性回归

回归是监督学习的一个重要问题,回归用于预测输入变量和输出变量之间的关系。回归模型是表示输入变量到输出变量之间映射的函数。
回归问题的学习等价于函数拟合:使用一条函数曲线使其很好的拟合已知函数且很好的预测未知数据。

回归问题按照输入变量的个数可以分为一元回归和多元回归;按照输入变量和输出变量之间关系的类型,可以分为线性回归和非线性回归。
一元回归: y = a x + b y = ax + b y=ax+b
多元回归: h 0 ( x ) = ∑ i = 0 n θ i x i = θ T x h_{0}(x)= \sum _{i=0}^{n}\theta _{i}x_{i}= \theta ^{T}x h0(x)=i=0nθixi=θTx

应用场合

线性回归的应用场合大多是回归分析,一般不用在分类问题上,原因可以概括为一下两个:

1)回归模型是连续模型,即预测出的值都是连续值(实数值),非离散值;

2)线性回归在整个实数域内敏感度一致,预测结果受样本噪声的影响比较大。

求解

最小二乘法

假设模型结果与测量值误差满足,均值为0的高斯分布,即正态分布。这个假设是靠谱的,符合一般客观统计规律。
ϵ i = y i − h θ ( x i ) \epsilon _i = y_i-h_{\theta}(x_i) ϵi=yihθ(xi)
p ( ϵ i ) = p ( y i ∣ x i ; θ ) = 1 2 π δ e x p ( − ( y i − h θ ( x i ) ) 2 2 δ 2 ) p(\epsilon _i ) = p(y_{i}|x_{i};\theta)=\frac{1}{\sqrt{2\pi}\delta}exp(-\frac{( y_i-h_{\theta}(x_i))^2}{2\delta ^2}) p(ϵi)=p(yixi;θ)=2π δ1exp(2δ2(yihθ(xi))2)
似然函数:
L ( θ ) = ∏ i = 1 m p ( y i ∣ x i ; θ ) L(\theta)= \prod _{i=1}^{m}p(y_{i}|x_{i};\theta) L(θ)=i=1mp(yixi;θ)
取对数:线性回归、岭回归、lasso回归与逻辑回归LR_第1张图片
需要极大似然估计,即最后一项的后半部分最小,即得到损失函数:

损失函数:平方损失函数 J ( θ ) = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 = 1 2 ( X θ − y ) T ( X θ − y ) J(\theta)= \frac{1}{2}\sum _{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^{2}=\frac{1}{2}(X \theta -y)^{T}(X \theta -y) J(θ)=21i=1m(hθ(x(i))y(i))2=21(Xθy)T(Xθy)
最小化目标函数: 由于目标函数连续,那么 θ \theta θ 取值一定为目标函数的驻点,所以我们求导寻找驻点。

求导可得: ∇ θ J ( θ ) = ∇ θ ( 1 2 ( X θ − y ) T ( X θ − y ) ) = ∇ θ ( 1 2 ( θ T X T − y T ) ( X θ − y ) ) = ∇ θ ( 1 2 ( θ T X T X θ − θ T X T y − y T X θ + y T y ) ) = 1 2 ( 2 X T X θ − X T y − ( y T X ) T ) = X T X θ − X T y \nabla_{\theta}J(\theta)=\nabla_{\theta}(\frac{1}{2}(X \theta -y)^{T}(X \theta -y))= \nabla _{\theta}(\frac{1}{2}(\theta ^{T}X^{T}-y^{T})(X \theta -y)) \\ =\nabla_{\theta}(\frac{1}{2}(\theta ^{T}X^{T}X \theta - \theta ^{T}X^{T}y-y^{T}X \theta +y^{T}y)) \\ =\frac{1}{2}(2X^{T}X \theta -X^{T}y-(y^{T}X)^{T})=X^{T}X \theta -X^{T}y θJ(θ)=θ(21(Xθy)T(Xθy))=θ(21(θTXTyT)(Xθy))=θ(21(θTXTXθθTXTyyTXθ+yTy))=21(2XTXθXTy(yTX)T)=XTXθXTy
矩阵求导可参考:
标量、向量与矩阵的求导https://blog.csdn.net/weixin_42764932/article/details/113107265
向量、矩阵求导的重要公式https://blog.csdn.net/weixin_42764932/article/details/113107962

解得: θ = ( X T X ) − 1 X T y \theta=(X^{T}X)^{-1}X^{T}y θ=(XTX)1XTy

然鹅有解的前提是 X T X X^{T}X XTX是可逆的

梯度下降法

θ = θ − α ⋅ ∂ J ( θ ) ∂ θ \theta= \theta - \alpha \cdot \frac{\partial J(\theta)}{\partial \theta} θ=θαθJ(θ)
∂ ∂ θ j J ( θ ) = ∂ ∂ θ j 1 2 ( h θ ( x ) − y ) 2 = ( h θ ( x ) − y ) x j \frac{\partial}{\partial \theta _{j}}J(\theta)= \frac{\partial}{\partial \theta _{j}}\frac{1}{2}(h_{\theta}(x)-y)^{2}=(h_{\theta}(x)-y)x_{j} θjJ(θ)=θj21(hθ(x)y)2=(hθ(x)y)xj

  1. BGD:所有n个样本的平均损失

  2. SGD:单个样本处理

  3. mini-batch:多个样本处理

由于在线性回归中,目标函数收敛而且为凸函数,是有一个极值点,所以局部最小值就是全局最小值。

加入正则化

前面说了解析解是 θ = ( X T X ) − 1 X T y \theta=(X^{T}X)^{-1}X^{T}y θ=(XTX)1XTy

并且有解的前提是 X T X X^{T}X XTX是可逆的

X T X X^{T}X XTX不可逆或为了防止过拟合,我们可以增加lambda扰动 θ = ( X T X + λ I ) − 1 X T y \theta=(X^{T}X+ \lambda I)^{-1}X^{T}y θ=(XTX+λI)1XTy

按着求解过程倒回去,可以得到带有正则化项的损失函数

从另一个角度来看,这相当与给我们的线性回归参数增加一个惩罚因子,这是必要的,我们数据是有干扰的,不正则的话有可能数据对于训练集拟合的特别好,但是对于新数据的预测误差很大。

加入 L1 或 L2 正则化,让权值尽可能小,最后构造一个所有参数都比较小的模型。因为一般认为参数值小的模型比较简单,能适应不同的数据集,也在一定程度上避免了过拟合现象。

可以设想一下对于一个线性回归方程,若参数很大,那么只要数据偏移一点点,就会对结果造成很大的影响;但如果参数足够小,数据偏移得多一点也不会对结果造成什幺影响,一种流行的说法是『抗扰动能力强』。

岭回归Ridge regression

岭回归(ridge regression)其实就是在标准线性回归的基础上加入L2 正则化(regularization)
J = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 J= \frac{1}{2}\sum _{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^{2}+ \lambda \sum _{j=1}^{n}\theta _{j}^{2} J=21i=1m(hθ(x(i))y(i))2+λj=1nθj2
L2约束就是一个圆,

要求的就是在约束的条件下寻找最小的损失。所以其实就是找约束的图形和等值线的交点。
线性回归、岭回归、lasso回归与逻辑回归LR_第2张图片
ridge 更容易使得权重接近 0,但由于交点在坐标轴(某维度值为零)的概率较小,所以没有让参数稀疏化的作用,但可以让参数变小,减缓过拟合。

lasso回归lasso regression

lasso回归其实就是在标准线性回归的基础上加入L1 正则化(regularization)
J = 1 2 ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∣ ∣ w ∣ ∣ 1 J=\frac{1}{2}\sum _{i=1}^{m}(h_{\theta}(x^{(i)})-y^{(i)})^{2}+ \lambda ||w||_{1} J=21i=1m(hθ(x(i))y(i))2+λw1
线性回归、岭回归、lasso回归与逻辑回归LR_第3张图片
而L1损失的交点更容易在坐标轴上,所以更容易让参数稀疏化

正是由于 lasso 容易使得部分权重取 0,所以可以用其做 feature selection,lasso 的名字就指出了它是一个 selection operator。权重为 0 的 feature 对回归问题没有贡献,直接去掉权重为 0 的 feature,模型的输出值不变。

从贝叶斯角度理解这俩回归

给定观察数据D, 贝叶斯方法通过最大化后验概率估计参数w。
p(D|w)是似然函数(likelihood function): 参数向量w的情况下,观测数据D出现的概率

p(w)是参数向量的先验概率(prior)

对于似然函数部分有:
在这里插入图片描述
对后验概率取对数有
线性回归、岭回归、lasso回归与逻辑回归LR_第4张图片
当先验概率分布满足正态分布的时候
在这里插入图片描述
线性回归、岭回归、lasso回归与逻辑回归LR_第5张图片
可以看到,似然函数部分对应于损失函数(经验风险),而先验概率部分对应于正则项。L2正则,等价于参数w的先验概率分布满足正态分布。

当先验概率分布满足拉普拉斯分布的时候
在这里插入图片描述
线性回归、岭回归、lasso回归与逻辑回归LR_第6张图片
L1正则,等价于参数w的先验概率分布满足拉普拉斯分布。

线性回归、岭回归、lasso回归与逻辑回归LR_第7张图片

对比拉普拉斯分布和高斯分布,可以看到拉普拉斯分布在0值附近突出;而高斯分布在0值附近分布平缓,两边分布稀疏。对应地,L1正则倾向于产生稀疏模型,L2正则对权值高的参数惩罚重。

逻辑回归LR

逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的一种回归模型。

LR本质上还是线性回归,其实仅为在线性回归的基础上,套用了一个逻辑函数sigmoid。

逻辑曲线在z=0时,十分敏感,在z>>0或z<<0处,都不敏感,将预测值限定为(0,1)。

线性回归、岭回归、lasso回归与逻辑回归LR_第8张图片
逻辑回归不是回归,是分类

交叉熵损失(极大似然损失)

满足二项分布 p ( y = 1 ∣ x ; w ) = π ( x ) , p ( y = 0 ∣ x ; w ) = 1 − π ( x ) p(y=1|x;w)= \pi(x),p(y=0|x;w)=1- \pi(x) p(y=1x;w)=π(x),p(y=0x;w)=1π(x)
{ p ( y = 1 ∣ x ; w ) = e x p ( w T x ) 1 + e x p ( w T x ) p ( y = 0 ∣ x ; w ) = 1 1 + e x p ( w T x ) \left\{ \begin{matrix} p(y=1|x;w)= \frac{exp(w^{T}x)}{1+exp(w^{T}x)}\\ \\p(y=0|x;w)= \frac{1}{1+exp(w^{T}x)}\\ \end{matrix} \right. p(y=1x;w)=1+exp(wTx)exp(wTx)p(y=0x;w)=1+exp(wTx)1

则对于单个样本,其后验概率为:
p ( y i ∣ x i ; w ) = ( e x p ( w T x i ) 1 + e x p ( w T x i ) ) y i ( 1 1 + e x p ( w T x i ) ) 1 − y i p(y_{i}|x_{i};w)=(\frac{exp(w^{T}x_{i})}{1+exp(w^{T}x_{i})})^{y_{i}}(\frac{1}{1+exp(w^{T}x_{i})})^{1-y_{i}} p(yixi;w)=(1+exp(wTxi)exp(wTxi))yi(1+exp(wTxi)1)1yi

似然函数:
L ( w ) = ∏ i = 1 m p ( y i ∣ x i ; w ) = ∏ i = 1 m ( π ( x i ) ) y i ( 1 − π ( x i ) ) 1 − y i L(w)= \prod _{i=1}^{m}p(y_{i}|x_{i};w)=\prod _{i=1}^{m}( \pi(x_i))^{y_i}(1-\pi(x_i))^{1-y_i} L(w)=i=1mp(yixi;w)=i=1m(π(xi))yi(1π(xi))1yi
对数似然函数:
l o g ( L ( W ) ) = ∑ i = 1 m ( y i l o g π ( x i ) + ( 1 − y i ) l o g ( 1 − π ( x i ) ) ) log(L(W)) = \sum_{i=1}^{m}(y_i log \pi(x_i) + (1-y_i)log(1- \pi(x_i))) log(L(W))=i=1m(yilogπ(xi)+(1yi)log(1π(xi)))
对对数似然函数求最大值,得到 w w w 的极大似然估计值 w ′ w' w

梯度下降法

损失函数:

J ( W ) = − 1 m ( ∑ i = 1 m ( y i l o g π ( x i ) + ( 1 − y i ) l o g ( 1 − π ( x i ) ) ) ) J(W) =-\frac{1}{m}( \sum_{i=1}^{m}(y_i log \pi(x_i) + (1-y_i)log(1- \pi(x_i)))) J(W)=m1(i=1m(yilogπ(xi)+(1yi)log(1π(xi))))

优缺点

优点:

1)预测结果是介于0和1之间的概率

2)可以适用于连续性和类别性自变量

3)容易使用和解释

缺点:

1)对模型中自变量多重共线性较为敏感,例如两个高度相关自变量同时放入模型,可能导致较弱的一个自变量回归符号不符合预期,符号被扭转。需要利用因子分析或者变量聚类分析等手段来选择代表性的自变量,以减少候选变量之间的相关性;

2)预测结果呈“S”型,因此从kog(odds)向概率转化的过程是非线性的,在两端随着log(odds)值的变化,概率变化很小,边际值太小,slope太小,而中间概率的变化很大,很敏感,导致很多区间的变量变化对目标概率的影响没有区分度,无法确定阈值。

区别与联系以及其他常见问题

  1. 线性回归,采用的是平方损失函数。而逻辑回归采用的是 对数 损失函数
  2. 过拟合问题问题起源?如何解决?
    模型太复杂,参数过多,特征数目过多。
    方法:
    1) 减少特征的数量,有人工选择,或者采用模型选择算法
    2) 正则化,即保留所有特征,但降低参数的值的影响。正则化的优点是,特征很多时,每个特征都会有一个合适的影响因子。

你可能感兴趣的:(机器学习,机器学习)