逻辑回归原理详解

逻辑回归原理详解

逻辑回归主要用于解决分类问题,并且是对于概率的分类,例如今天是雨天还是晴天,是雨天就是0概率,是晴天就是1概率。通常我们预测出的情况是今天是晴天的概率值。谈及逻辑回归的原理,需要先从广义线性回归(GLM)讲起:

广义线性回归(GLM)

广义线性回归满足以下的三个条件:

  1. 对于参数 θ \theta θ,y|x满足指数族分布
  2. T ( y ) = y T(y)=y T(y)=y, T ( y ) T(y) T(y)为充分统计量,对于预测值 h θ ( x ) = E [ T ( y ) ∣ x ] h_\theta(x)=E[T(y)|x] hθ(x)=E[T(y)x]
  3. η = Θ T x \eta=\Theta^T x η=ΘTx

指数族分布

p ( y ; η ) = b ( y ) e x p ( η T T ( y ) − a ( η ) ) ( 1 ) p(y;\eta)=b(y)exp(\eta^TT(y)-a(\eta))\quad (1) p(y;η)=b(y)exp(ηTT(y)a(η))(1)

  1. η \eta η被称为自然参数
  2. T ( y ) T(y) T(y)被称为充分统计量,常用的是 T ( y ) = y T(y)=y T(y)=y
  3. a ( η ) a(\eta) a(η)被称为对割函数,可以起到归一化的作用
  4. 指数族参数 η \eta η x x x的线性组合,可以表示为 η = Θ T x \eta=\Theta^T x η=ΘTx
  5. 常见的指数族分布有:伯努利分布,高斯分布,多项式分布,泊松分布…

由指数族分布到逻辑回归

逻辑回归的数据分布满足伯努利分布,假设伯努利分布的均值为 ϕ \phi ϕ,则伯努利分布的概率密度函数可以表示为:
P ( y ; ϕ ) = ϕ y ( 1 − ϕ ) 1 − y P(y;\phi)=\phi^y(1-\phi)^{1-y} P(y;ϕ)=ϕy(1ϕ)1y
= e x p ( y l o g ϕ + ( 1 − y ) l o g ( 1 − ϕ ) \qquad \quad =exp(ylog\phi+(1-y)log(1-\phi) =exp(ylogϕ+(1y)log(1ϕ)
= e x p ( y l o g ϕ 1 − ϕ + l o g ( 1 − ϕ ) ) ( 2 ) \qquad \quad =exp(ylog\frac{\phi}{1-\phi}+log(1-\phi)) \quad (2) =exp(ylog1ϕϕ+log(1ϕ))(2)
因为 T ( y ) = y T(y)=y T(y)=y,因此可以得到 η = l o g ϕ 1 − ϕ ( 3 ) \eta=log\frac{\phi}{1-\phi} \quad(3) η=log1ϕϕ(3)
此时我们可以得到 ϕ = 1 1 + e − η ( 4 ) \phi=\frac{1}{1+e^{-\eta}} \quad(4) ϕ=1+eη1(4)
这样我们就得到了sigmoid函数

逻辑回归模型

对于二分类的问题 ,设伯努利分布的均值为 ϕ \phi ϕ,则可以得到:
ϕ = 1 1 + e − η = 1 1 + e − θ T x ( 5 ) \phi=\frac{1}{1+e^{-\eta}}=\frac{1}{1+e^{-\theta^Tx}} \quad(5) ϕ=1+eη1=1+eθTx1(5)
为了方便计算,我们使得 h θ = 1 1 + e − θ T x ( 6 ) h_\theta=\frac{1}{1+e^{-\theta^T x}} \quad (6) hθ=1+eθTx1(6)
此时逻辑回归(满足伯努利分布)的表达式为:
P ( y ∣ x ; θ ) = ( h θ ( x ) y ( 1 − h θ ( x ) ) 1 − y ( 7 ) P(y|x;\theta)=(h_\theta(x)^y(1-h_\theta(x))^{1-y}\quad(7) P(yx;θ)=(hθ(x)y(1hθ(x))1y(7)
我们得到了样本的分布情况,我们想要那个最可能导致样本这样分布的参数。因此我们使用极大似然函数求最可能导致结果的那个参数。
似然函数为:
L ( θ ) = P ( Y ∣ X ; θ ) L(\theta)=P(Y|X;\theta) L(θ)=P(YX;θ)
= ∏ i = 0 i = m ( h θ ( x i ) y i ( 1 − h θ ( x i ) ) 1 − y i ( 8 ) \qquad =\prod_{i=0}^{i=m}(h_\theta(x_i)^{y_i}(1-h_\theta(x_i))^{1-y_i}\quad(8) =i=0i=m(hθ(xi)yi(1hθ(xi))1yi(8)
对数似然函数为:
l ( θ ) = l o g L ( θ ) l(\theta)=logL(\theta) l(θ)=logL(θ)
   = ∑ i = 0 i = m y i l o g h θ ( x i ) + ( 1 − y i ) l o g ( 1 − h θ ( x i ) ) ( 9 ) \quad \ \ =\sum_{i=0}^{i=m}y_ilog{h_\theta}(x_i)+(1-y_i)log(1-h_\theta(x_i))\quad(9)   =i=0i=myiloghθ(xi)+(1yi)log(1hθ(xi))(9)
我们的目标是使对数函数最大化,此时只能使用梯度上升的算法去求最大值,为了使用梯度下降算法。我们将式(9)变为如下形式(除以m是使误差不再依赖样本数量)
J ( θ ) = − 1 m [ ∑ i = 0 i = m y i l o g h θ ( x i ) + ( 1 − y i ) l o g ( 1 − h θ ( x i ) ) ] ( 10 ) J(\theta)=-\frac{1}{m} [\sum_{i=0}^{i=m}y_ilog{h_\theta}(x_i)+(1-y_i)log(1-h_\theta(x_i))]\quad(10) J(θ)=m1[i=0i=myiloghθ(xi)+(1yi)log(1hθ(xi))](10)
此时的误差是由 θ \theta θ导致的,因此我们使用梯度下降更新 θ \theta θ:
θ j = θ j − α ∂ J ( θ ) ∂ θ j \theta_j=\theta_j-\alpha \frac{\partial J(\theta)}{\partial \theta_j} θj=θjαθjJ(θ)
∂ J ( θ ) ∂ θ j = − 1 m ∑ i = 0 i = m ( y i 1 h θ ( x i ) ∂ h θ ( x i ) ∂ θ j − ( 1 − y i ) 1 1 − h θ ( x i ) ∂ ( x i ) ∂ θ j ) \frac{\partial J(\theta)}{\partial \theta_j}=-\frac{1}{m}\sum_{i=0}^{i=m}(y_i\frac{1}{h_\theta(x_i)}\frac{\partial h_\theta(x_i)}{\partial \theta_j}-(1-y_i)\frac{1}{1-h_\theta(x_i)}\frac{\partial(x_i)}{\partial \theta_j}) θjJ(θ)=m1i=0i=m(yihθ(xi)1θjhθ(xi)(1yi)1hθ(xi)1θj(xi))
= − 1 m ∑ i = 0 i = m ( y i 1 h θ ( x i ) − ( 1 − y i ) 1 1 − h θ ( x i ) ) ∂ h θ ( x i ) ∂ θ j \qquad =-\frac{1}{m}\sum_{i=0}^{i=m}(y_i\frac{1}{h_\theta(x_i)}-(1-y_i)\frac{1}{1-h_\theta(x_i)})\frac{\partial h_\theta(x_i)}{\partial \theta_j} =m1i=0i=m(yihθ(xi)1(1yi)1hθ(xi)1)θjhθ(xi)
= − 1 m ∑ i = 0 i = m ( y i 1 h θ ( x i ) − ( 1 − y i ) 1 1 − h θ ( x i ) ) h θ ( x j i ) ( 1 − h θ ( x j i ) ) \qquad =-\frac{1}{m}\sum_{i=0}^{i=m}(y_i\frac{1}{h_\theta(x_i)}-(1-y_i)\frac{1}{1-h_\theta(x_i)})h_\theta(x^i_j)(1-h_\theta(x^i_j)) =m1i=0i=m(yihθ(xi)1(1yi)1hθ(xi)1)hθ(xji)(1hθ(xji))
= 1 m ∑ i = 0 i = m ( h θ ( x i ) − y i ) x j i ( 11 ) \qquad = \frac{1}{m}\sum_{i=0}^{i=m}(h_\theta(x_i)-y_i)x_j^i \quad(11) =m1i=0i=m(hθ(xi)yi)xji(11)

其中sigmoid函数求导的性质: ∂ f ( x ) ∂ x = f ( x ) ( 1 − f ( x ) ) \frac{\partial f(x)}{\partial x}=f(x)(1-f(x)) xf(x)=f(x)(1f(x))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值