【机器学习基础算法系列】【壹】全面详解逻辑回归LR(Logistics Regression)

算法流程

逻辑回归(Logistics Regression)虽然名为回归,但大部分的场景都用来做分类任务,其与线性回归等一系列回归任务仅存在因变量分布的区别,这点会在【广义线性模型】章节详述。

  • 回归问题的常规步骤
    1. 构造假设预测函数(hypothesis)
    2. 构造损失函数(loss)
    3. 寻找损失函数最小优化算法(optimization)

可以对于LR套用常规步骤。

  • 构造假设预测函数

对于LR来说,假设因变量( x x x)的分布是二项分布的,因此在线性回归的的基础上利用了sigmoid函数对其进行了变换,至于为何会使用sigmoid函数,这点会在【LR使用Sigmoid函数的原因】章节详述。

sigmoid函数表达式为:
g ( z ) = 1 1 + e − z g(z)=\frac 1 {1+e^{-z}} g(z)=1+ez1
其函数图像有:
在这里插入图片描述
可以看出sigmoid函数可以将数值挤压到[0,1]之间,可以视为取1的概率使用。对于线性回归,有以下表达式
θ 0 + θ 1 x 1 + , . . . , + θ n x x = ∑ i + 1 n θ i x i = θ T x \theta_0+\theta_1x_1+,...,+\theta_nx_x=\sum_{i+1}^n\theta_ix_i=\theta^T \Bbb x θ0+θ1x1+,...,+θnxx=i+1nθixi=θTx
构造假设预测函数有
h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x h_{\theta}(x)=g(\theta^T \Bbb x)=\frac 1 {1 + e^{-\theta^T \Bbb x}} hθ(x)=g(θTx)=1+eθTx1
由于 h θ ( x ) h_{\theta}(x) hθ(x)经过sigmoid后的输出可以视为取1的概率,因此有
{ P ( y = 1 ∣ x ; θ ) = h θ ( x ) P ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) \begin{cases}{P(y=1|x;\theta)=h_{\theta}(x)}\\{P(y=0|x;\theta)=1-h_{\theta}(x)}\end{cases} {P(y=1x;θ)=hθ(x)P(y=0x;θ)=1hθ(x)
到此,逻辑回归的目标即预测 P P P

  • 构造损失函数

上式可以合写成损失函数形式,这里只有经验风险最小而没有结构风险最小(即正则项)
l o s s ( x , y ) = h θ ( x ) y ∗ ( 1 − h θ ( x ) ) 1 − y loss(x,y) = h_{\theta}(x)^y*(1-h_{\theta}(x))^{1-y} loss(x,y)=hθ(x)y(1hθ(x))1y

  • 损失函数优化方法

对于LR的损失函数使用极大似然估计进行优化,损失函数的似然函数为
L ( θ ) = ∏ i = 1 m h θ ( x i ) y i ∗ ( 1 − h θ ( x i ) ) 1 − y i L(\theta)=\prod_{i=1}^mh_{\theta}(x_i)^{y_i}*(1-h_{\theta}(x_i))^{1-y_i} L(θ)=i=1mhθ(xi)yi(1hθ(xi))1yi
两边去对数有对数似然函数为
l ( θ ) = L ( θ ) = ∑ i = 1 m y i l o g h θ ( x i ) + ( 1 − y i ) l o g ( 1 − h θ ( x i ) ) l(\theta)=L(\theta)=\sum_{i=1}^m y_i logh_{\theta}(x_i)+(1-y_i)log(1-h_{\theta}(x_i)) l(θ)=L(θ)=i=1myiloghθ(xi)+(1yi)log(1hθ(xi))
这里要求 l ( θ ) l(\theta) l(θ)取最大时的 θ \theta θ,利用梯度上升求法,做一个简单变换有
J ( θ ) = − 1 m l ( θ ) J(\theta)=-\frac 1 m l(\theta) J(θ)=m1l(θ)
对于 J ( θ ) J(\theta) J(θ)即求其在最小值时的 θ \theta θ,采用梯度下降法迭代,迭代公式为
θ j : = θ j − α ∂ J ( θ ) ∂ θ j \theta_j:=\theta_j-\alpha \frac {\partial J(\theta)} {\partial \theta_j} θj:=θjαθjJ(θ)
其中 α \alpha α为步长, ∂ J ( θ ) ∂ θ j \frac {\partial J(\theta)} {\partial \theta_j} θjJ(θ)推导结果如下

在这里插入图片描述
θ \theta θ的更新过程可以写成:
θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x i ) − y i ) x i j \theta_j:=\theta_j-\alpha \frac 1 m \sum_{i=1}^m(h_\theta(x_i)-y_i)x_i^j θj:=θjαm1i=1m(hθ(xi)yi)xij
其中 i i i为样本的序号, j j j为特征的序号


正则化

LR可以使用L1正则和L2正则,加入正则项后损失函数为
J ( θ ) = − 1 m l ( θ ) + α ∑ j = 1 n ∣ θ j ∣ + λ ∑ j = 1 n θ j 2 J(\theta)=-\frac 1 ml(\theta)+\alpha\sum_{j=1}^n|\theta_j|+\lambda\sum_{j=1}^n \theta_j^2 J(θ)=m1l(θ)+αj=1nθj+λj=1nθj2
L1和L2正则的原理都是对过大的系数进行惩罚。

  • L1为什么能做特征选择,L2能够平滑特征?

为什么L1稀疏,L2平滑?,这是一个常见问题,从数学角度,L1正则参数的导数要么是1要么是-1,那么参数w每次迭代都以固定的步长增大或减小,有可能减小到0,而L2正则的导数为w,wi=wi-η*wi,以一个等比例的尺度迭代,是不会为0的。从几何角度,优化函数的等值线与L1正则项的等值线交点会更多的出现在坐标轴上,使得某维的特征权重为0,而L2正则的等值线与之的交点更多的在象限之中。还可以参考机器学习中正则化项L1和L2的直观理解


LR使用Sigmoid函数的原因

想要回答这个问题,首先先要了解两个概念,即【指数族分布】和【广义线性模型】。

  • 指数族分布

指数族分布指满足以下形式的一类函数,即:
p ( y ; η ) = b ( y ) e η T ( y ) − a ( η ) p(y;\eta)=b(y)e^{\eta T(y)-a(\eta)} p(y;η)=b(y)eηT(y)a(η)
其中 η \eta η为自然参数, T ( y ) T(y) T(y)为充分统计量,通常 T ( y ) = y T(y)=y T(y)=y a ( η ) a(\eta) a(η)为正则化项。

  • 广义线性模型

Logistic回归与多重线性回归实际上有很多相同之处,最大的区别就在于它们的因变量,正是因为如此,这两种回归可以归于同一个家族,即广义线性模型(generalizedlinear model)。

这一家族中的模型形式基本上都差不多,不同的就是因变量不同:

如果是连续的,就是多重线性回归;

如果是二项分布,就是Logistic回归;

如果是Poisson分布,就是Poisson回归;

广义线性模型的一般性定义为满足一下三个假设:

  1. y ∣ x ; θ y|x;\theta yx;θ满足一个以 η \eta η为参数的指数族分布
  2. 给定 x x x,目标是预测 y y y的期望值,即 h ( x ) = E ( y ∣ x ) h(x)=E(y|x) h(x)=E(yx)
  3. η = θ T x \eta=\theta^T\Bbb x η=θTx
  • 使用Sigmoid的原因

在二分类中,假设 y y y服从伯努利二项分布,有
KaTeX parse error: No such environment: eqnarray at position 8: \begin{̲e̲q̲n̲a̲r̲r̲a̲y̲}̲p(y|\theta)&=&\…
根据指数族分布的表达式 p ( y ; η ) = b ( y ) e η T ( y ) − a ( η ) p(y;\eta)=b(y)e^{\eta T(y)-a(\eta)} p(y;η)=b(y)eηT(y)a(η)
{ η = l o g ϕ 1 − ϕ = > ϕ = 1 1 + e − η a ( η ) = − l o g ( 1 − ϕ ) = l o g ( 1 + e η ) b ( y ) = 1 \begin{cases}\eta=log\frac \phi {1-\phi} => \phi=\frac 1 {1+e^{-\eta}}\\a(\eta)=-log(1-\phi)=log(1+e^\eta)\\b(y)=1\end{cases} η=log1ϕϕ=>ϕ=1+eη1a(η)=log(1ϕ)=log(1+eη)b(y)=1
因此伯努利分布属于指数族分布。因此伯努利二项分布满足了广义线性模型的第一个假设: y ∣ x ; θ y|x;\theta yx;θ满足一个以 η \eta η为参数的指数族分布

对于第二个假设:给定 x x x,目标是预测 y y y的期望值,即 h ( x ) = E ( y ∣ x ) h(x)=E(y|x) h(x)=E(yx),对于伯努利二项分布有 h θ ( x ) = E ( y ∣ x ) = ϕ h_\theta(x)=E(y|x)=\phi hθ(x)=E(yx)=ϕ,带入上式 ϕ \phi ϕ的表达式有
h θ ( x ) = E ( y ∣ x ) = ϕ = 1 1 + e − η h_\theta(x)=E(y|x)=\phi=\frac 1 {1+e^{-\eta}} hθ(x)=E(yx)=ϕ=1+eη1
对于第三个假设: η = θ T x \eta=\theta^T\Bbb x η=θTx,带入上式有
h θ ( x ) = 1 1 + e − η = 1 1 + e − θ T x = S i g m o i d h_\theta(x)=\frac 1 {1+e^{-\eta}}=\frac 1 {1+e^{-\theta^T\Bbb x}}=Sigmoid hθ(x)=1+eη1=1+eθTx1=Sigmoid
因此当使用Sigmoid函数做预测函数时LR的预测函数同时满足指数族分布与广义线性模型,且预测的结果即为后验概率 p ( y = 1 ∣ x ) p(y=1|x) p(y=1x)


LR的输出是否为真实的概率

从指数族分布和广义线性模型的角度看LR的训练过程是这样的:

  • 给定 x \Bbb x x,根据 θ T x \theta^T \Bbb x θTx计算 η \eta η(即预测值)

  • 根据 η \eta η通过预测函数sigmoid算出 ϕ \phi ϕ(即经过sigmoid后的输出值), ϕ \phi ϕ既是伯努利分布的唯一参数,也是该分布的期望,所以将 ϕ \phi ϕ作为预测值。

  • 通过loss function计算 ϕ \phi ϕ与真实的标签 y y y之间的误差loss。

  • 通过优化方法来更新 θ \theta θ ,降低loss。

从以上步骤中可以发现将 ϕ \phi ϕ作为后验概率 p ( y = 1 ∣ x ) p(y=1|x) p(y=1x)需要满足两个重要假设:

  1. y y y是一个服从伯努利二项分布的二值随机变量
  2. η \eta η x x x之间存在线性关系,即可以用 η = θ T x \eta=\theta^T\Bbb x η=θTx表示

如果以上两个假设满足,则LR的输出(对于其他模型也是一样)是真实的后验概率,但是实际情况不一定严格满足,当然,我们在建模的时候就已经率先假设了这两个条件作为大前提,故而输出更多的可以当做为置信度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值