Logistic回归模型介绍与python实现

1. 引言

    对于回归问题,我们知道可以通过回归模型进行拟合,并挖掘各个特征变量对模板变量的影响机制,但是,对于分类问题,由于目标变量是离散型变量,因此,不能直接应用回归模型进行解决,这时,可以使用Logistic回归模型进行解决。

2. Logistic回归模型介绍

2.1 Logistic回归模型的介绍

    首先介绍Logistic分布,假设 X X X是连续随机变量, X X X服从Logistic分布是指 X X X具有下列分布函数和密度函数:
F ( x ) = P ( X ⩽ x ) = 1 1 + e − ( x − μ ) / γ f ( x ) = F ′ ( x ) = e − ( x − μ ) / γ γ ( 1 + e − ( x − μ ) / γ ) 2 \begin{array}{l}{F(x)=P(X \leqslant x)=\frac{1}{1+\mathrm{e}^{-(x-\mu) / \gamma}}} \\ {f(x)=F^{\prime}(x)=\frac{\mathrm{e}^{-(x-\mu) / \gamma}}{\gamma\left(1+\mathrm{e}^{-(x-\mu) / \gamma}\right)^{2}}}\end{array} F(x)=P(Xx)=1+e(xμ)/γ1f(x)=F(x)=γ(1+e(xμ)/γ)2e(xμ)/γ其中, μ \mu μ为位置参数, γ > 0 \gamma>0 γ>0为形状参数。密度函数和分布函数的分布图如下图所示。分布函数的图形是一条 S S S形曲线,该曲线的取值范围为 ( 0 , 1 ] (0,1] (0,1],并以点 ( μ , 1 2 ) \left(\mu, \frac{1}{2}\right) (μ,21)为中心对称,即有:
F ( − x + μ ) − 1 2 = − F ( x − μ ) + 1 2 F(-x+\mu)-\frac{1}{2}=-F(x-\mu)+\frac{1}{2} F(x+μ)21=F(xμ)+21
在这里插入图片描述
    因此,对于分类问题,虽然不能直接用回归模型进行拟合,但是可以将其转化计算每一个类别的概率问题,因为概率的取值范围为 [ 0 , 1 ] [0,1] [0,1],因此,可以采用Logistic分布来进行拟合。

2.2 二项Logistic回归模型

    对于二分类问题,假设随机变量为 X X X,目标变量为 Y Y Y,其取值为1或0,则可以通过Logistic模型来拟合条件概率分布 P ( Y ∣ X ) P(Y | X) P(YX),具体如下:
P ( Y = 1 ∣ x ) = exp ⁡ ( w ⋅ x + b ) 1 + exp ⁡ ( w ⋅ x + b ) P ( Y = 0 ∣ x ) = 1 1 + exp ⁡ ( w ⋅ x + b ) \begin{array}{l}{P(Y=1 | x)=\frac{\exp (w \cdot x+b)}{1+\exp (w \cdot x+b)}} \\ {P(Y=0 | x)=\frac{1}{1+\exp (w \cdot x+b)}}\end{array} P(Y=1x)=1+exp(wx+b)exp(wx+b)P(Y=0x)=1+exp(wx+b)1其中, x ∈ R n x \in \mathbf{R}^{n} xRn是输入, Y ∈ { 0 , 1 } Y \in\{0,1\} Y{0,1}是输出, w ∈ R n w \in \mathbf{R}^{n} wRn b ∈ R b \in \mathbf{R} bR是参数, w w w称为权值向量, b b b称为偏置, w ⋅ x w \cdot x wx表示内积,这样的模型称为二项Logistic回归模型
    对于给定的输入实例 x x x,只需要按照上式计算 P ( Y = 1 ∣ x ) P(Y=1 | x) P(Y=1x) P ( Y = 0 ∣ x ) P(Y=0 | x) P(Y=0x)两个概率值,将 x x x分到概率值大的那一类即可实现分类。为了方便,可以对权值向量和输入向量加以扩充,即 w = ( w ( 1 ) , w ( 2 ) , ⋯   , w ( n ) , b ) T w=(w^{(1)},w^{(2)}, \cdots, w^{(n)}, b )^T w=(w(1),w(2),,w(n),b)T x = ( x ( 1 ) , x ( 2 ) , ⋯   , x ( n ) , 1 ) T x=\left(x^{(1)}, x^{(2)}, \cdots, x^{(n)}, 1\right)^{\mathrm{T}} x=(x(1),x(2),,x(n),1)T,这时,可以将模型表达如下:
P ( Y = 1 ∣ x ) = exp ⁡ ( w ⋅ x ) 1 + exp ⁡ ( w ⋅ x ) P ( Y = 0 ∣ x ) = 1 1 + exp ⁡ ( w ⋅ x ) \begin{array}{l}{P(Y=1 | x)=\frac{\exp (w \cdot x)}{1+\exp (w \cdot x)}} \\ {P(Y=0 | x)=\frac{1}{1+\exp (w \cdot x)}}\end{array} P(Y=1x)=1+exp(wx)exp(wx)P(Y=0x)=1+exp(wx)1将上述两式相除,即可得:
log ⁡ P ( Y = 1 ∣ x ) 1 − P ( Y = 1 ∣ x ) = w ⋅ x \log \frac{P(Y=1 | x)}{1-P(Y=1 | x)}=w \cdot x log1P(Y=1x)P(Y=1x)=wx其中, logit ⁡ ( p ) = log ⁡ p 1 − p \operatorname{logit}(p)=\log \frac{p}{1-p} logit(p)=log1pp称为事件 P ( Y = 1 ∣ x ) P(Y=1 | x) P(Y=1x)的对数几率,也就是说,事件 P ( Y = 1 ∣ x ) P(Y=1 | x) P(Y=1x)的对数几率可以由输入 x x x的线性函数表示的模型,即Logistic模型。

2.3 模型的参数估计

    对于给定的训练数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x N , y N ) } T=\left\{\left(x_{1}, y_{1}\right),\left(x_{2}, y_{2}\right), \cdots\right.,\left(x_{N}, y_{N}\right) \} T={(x1,y1),(x2,y2),,(xN,yN)},其中, x i ∈ R n , y i ∈ { 0 , 1 } x_{i} \in \mathbf{R}^{n}, \quad y_{i} \in\{0,1\} xiRn,yi{0,1},Logistic回归模型采用极大似然估计法估计模型的参数,假设:
P ( Y = 1 ∣ x ) = π ( x ) , P ( Y = 0 ∣ x ) = 1 − π ( x ) P(Y=1 | x)=\pi(x), \quad P(Y=0 | x)=1-\pi(x) P(Y=1x)=π(x),P(Y=0x)=1π(x)则似然函数为:
∏ i = 1 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i \prod_{i=1}^{N}\left[\pi\left(x_{i}\right)\right]^{y_{i}}\left[1-\pi\left(x_{i}\right)\right]^{1-y_{i}} i=1N[π(xi)]yi[1π(xi)]1yi对数似然函数为:
L ( w ) = ∑ i = 1 N [ y i log ⁡ π ( x i ) + ( 1 − y i ) log ⁡ ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i log ⁡ π ( x i ) 1 − π ( x i ) + log ⁡ ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i ( w ⋅ x i ) − log ⁡ ( 1 + exp ⁡ ( w ⋅ x i ) ] \begin{aligned} L(w) &=\sum_{i=1}^{N}\left[y_{i} \log \pi\left(x_{i}\right)+\left(1-y_{i}\right) \log \left(1-\pi\left(x_{i}\right)\right)\right] \\ &=\sum_{i=1}^{N}\left[y_{i} \log \frac{\pi\left(x_{i}\right)}{1-\pi\left(x_{i}\right)}+\log \left(1-\pi\left(x_{i}\right)\right)\right] \\ &=\sum_{i=1}^{N}\left[y_{i}\left(w \cdot x_{i}\right)-\log \left(1+\exp \left(w \cdot x_{i}\right)\right]\right.\end{aligned} L(w)=i=1N[yilogπ(xi)+(1yi)log(1π(xi))]=i=1N[yilog1π(xi)π(xi)+log(1π(xi))]=i=1N[yi(wxi)log(1+exp(wxi)] L ( w ) L(w) L(w)求极大值,即可得到 w w w的估计值 w ^ \hat{w} w^,这样一来,对于任意给定的实例 x x x,就可以通过以下公式计算两个类别的概率,从而将概率值最大的类别作为预测的类别:
P ( Y = 1 ∣ x ) = exp ⁡ ( w ^ ⋅ x ) 1 + exp ⁡ ( w ^ ⋅ x ) P ( Y = 0 ∣ x ) = 1 1 + exp ⁡ ( w ^ ⋅ x ) \begin{array}{l}{P(Y=1 | x)=\frac{\exp (\hat{w} \cdot x)}{1+\exp (\hat{w} \cdot x)}} \\ {P(Y=0 | x)=\frac{1}{1+\exp (\hat{w} \cdot x)}}\end{array} P(Y=1x)=1+exp(w^x)exp(w^x)P(Y=0x)=1+exp(w^x)1

2.4 多项Logistic回归

    对于多分类问题,假设目标变量有 K K K个类,其取值集合为 { 1 , 2 , ⋯   , K } \{1,2, \cdots, K\} {1,2,,K},则Logistic回归模型会选择其中一个类别作为主类别,不妨以第 K K K类为主类别,然后将其与其他 K − 1 K-1 K1个类别分别构建 K − 1 K-1 K1个二项Logistic回归模型,具体如下所示:
log ⁡ P ( Y = 1 ) P ( Y = K ) = w 1 ⋅ x log ⁡ P ( Y = 2 ) P ( Y = K ) = w 2 ⋅ x ⋮ log ⁡ P ( Y = K − 1 ) P ( Y = K ) = w K − 1 ⋅ x \begin{aligned} {\log \frac{P\left(Y=1\right)}{P\left(Y=K\right)}=w_{1} \cdot x} \\ {\log \frac{P\left(Y=2\right)}{P\left(Y=K\right)}=w_{2} \cdot x} \\ \vdots \\ {\log \frac{P\left(Y=K-1\right)}{P\left(Y=K\right)}=w_{K-1} \cdot x} \end{aligned} logP(Y=K)P(Y=1)=w1xlogP(Y=K)P(Y=2)=w2xlogP(Y=K)P(Y=K1)=wK1x其中, x ∈ R n + 1 , w k ∈ R n + 1 x \in \mathbf{R}^{n+1}, w_{k} \in \mathbf{R}^{n+1} xRn+1,wkRn+1,对上述公式两边同时指数化易得:
P ( Y = 1 ) = P ( Y = K ) exp ⁡ w 1 ⋅ x P ( Y = 2 ) = P ( Y = K ) exp ⁡ w 2 ⋅ x ⋮ P ( Y = K − 1 ) = P ( Y = K ) exp ⁡ w K − 1 ⋅ x \begin{aligned} P\left(Y=1\right) &=P\left(Y=K\right) \exp^{w_{1} \cdot x} \\ P\left(Y=2\right) &=P\left(Y=K\right) \exp^{w_{2} \cdot x} \\ \vdots \\ P\left(Y=K-1\right) &=P\left(Y=K\right) \exp^{w_{K-1} \cdot x} \end{aligned} P(Y=1)P(Y=2)P(Y=K1)=P(Y=K)expw1x=P(Y=K)expw2x=P(Y=K)expwK1x由于每个类别的概率加和必须等于1,因此,可以得到多项Logistic回归模型的计算公式:
P ( Y = k ∣ x ) = exp ⁡ ( w k ⋅ x ) 1 + ∑ k = 1 K − 1 exp ⁡ ( w k ⋅ x ) , k = 1 , 2 , ⋯   , K − 1 P ( Y = K ∣ x ) = 1 1 + ∑ k = 1 K − 1 exp ⁡ ( w k ⋅ x ) \begin{array}{c}{P(Y=k | x)=\frac{\exp \left(w_{k} \cdot x\right)}{1+\sum_{k=1}^{K-1} \exp \left(w_{k} \cdot x\right)}, \quad k=1,2, \cdots, K-1} \\ \\{P(Y=K | x)=\frac{1}{1+\sum_{k=1}^{K-1} \exp \left(w_{k} \cdot x\right)}}\end{array} P(Y=kx)=1+k=1K1exp(wkx)exp(wkx),k=1,2,,K1P(Y=Kx)=1+k=1K1exp(wkx)1

3.Logistic回归模型的python实现

    sklearn已经支持Logistic回归模型。具体的代码实现可以参见本人的github项目:

4.总结

    最后,讲一下Logistic回归模型的优缺点吧:

  • Logistic回归模型具有很强的解释性,模型简单;
  • Logistic由于是对数线性函数,因此,模型仅限于线性的场合,对于非线性场合可能拟合效果比较差,不过可以通过对连续型变量进行分箱操作,转化为虚拟变量,这样可以进一步提高模型的非线性能力。
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值