逻辑回归简介

逻辑回归模型(Logistic regression,LR),又称对数几率模型。由于逻辑回归模型简单,可解释强,易实现,广泛应用于机器学习、深度学习、推荐系统、广告预估、智能营销、金融风控、社会学、生物学、经济学等领域[1]

相关知识

伯努利分布

伯努利分布(英语:Bernoulli distribution),又名两点分布或者0-1分布,是一个离散型概率分布,为纪念瑞士科学家雅各布·伯努利而命名[7]

逻辑函数

逻辑回归中的逻辑,就是指逻辑函数。至于为什么叫做逻辑函数,其提出者韦吕勒并没有给出明确的解释,后人推断这个词的来源是希腊语λογῐστῐκός(logistikos),意为“算术”或“实用数学”,以与对数曲线(logarithmic)区分[4]
逻辑回归的函数如下所示:
f ( x ) = L 1 + e − k ( x − x 0 ) (1) f(x) = \frac{L}{{1 + {e^{ - k(x - {x_0})}}}} \tag{1} f(x)=1+ek(xx0)L(1)
其中 x 0 {x_0} x0表示函数中点对应的变量值; L L L表示曲线最大值; k k k表示曲线的陡峭程度。当 L = 1 , k = 1 , x 0 = 0 L = 1,k = 1,{x_0} = 0 L=1,k=1,x0=0时,就得到标准的sigmoid函数:
S ( x ) = 1 1 + e − x (2) S(x) = {1 \over {1 + {e^{ - x}}}} \tag{2} S(x)=1+ex1(2)
因为sigmoid函数的输入为整个实数,而输出为[0, 1]之间的实数并且容易求导,所以在表示概率的场合广泛使用。

回归分析

逻辑回归中的回归,是指回归分析。回归分析(英语:Regression Analysis)是一种统计学上分析数据的方法,目的在于了解两个或多个变量间是否相关、相关方向与强度,并建立数学模型以便观察特定变量来预测研究者感兴趣的变量[6]

线性回归

在机器学习领域,线性回归模型记为:
y = w 1 x 1 + w 2 x 2 + ⋯ + w n x n + b = [ w 1    w 2 ⋯    w n ] [ x 1 x 2 ⋮ x n ] + b (3) y = {w_1}{x_1} + {w_2}{x_2} + \cdots + {w_n}{x_n} + b = [{w_1}\;{w_2} \cdots \;{w_n}]\left[ \begin{array}{l} {x_1}\\ {x_2}\\ \vdots \\ {x_n} \end{array} \right] + b \tag{3} y=w1x1+w2x2++wnxn+b=[w1w2wn]x1x2xn+b(3)
可以简写为:
y = ∑ i = 1 n w i x i + b = w T x + b (4) y = \sum\limits_{i = 1}^n {{w_i}{x_i} + b} = {{\rm{w}}^T}{\rm{x}} + b\tag{4} y=i=1nwixi+b=wTx+b(4)
其中 y y y表示预测函数; w {\rm{w}} w是模型参数; x {\rm{x}} x是输入特征; b b b是偏置量; n n n是特征维度。
为了计算和表达的便捷,常常取 b = w 0 b{\rm{ = }}{w_0} b=w0 x 0 = 1 {x_0} = 1 x0=1,则公式(3)可以重写为:
y = w 0 + w 1 x 1 + w 2 x 2 + ⋯ + w n x n = [ w 0    w 1 ⋯    w n ] [ x 0 x 1 ⋮ x n ] (5) y = {w_0}+{w_1}{x_1} + {w_2}{x_2} + \cdots + {w_n}{x_n} = [{w_0}\;{w_1} \cdots \;{w_n}]\left[ \begin{array}{l} {x_0}\\ {x_1}\\ \vdots \\ {x_n} \end{array} \right] \tag{5} y=w0+w1x1+w2x2++wnxn=[w0w1wn]x0x1xn(5)
则可以进一步简写为:
y = ∑ i = 0 n w i x i = w T x (6) y = \sum\limits_{i = 0}^n {{w_i}{x_i}} = {{\rm{w}}^T}{\rm{x}} \tag{6} y=i=0nwixi=wTx(6)

算法说明

LR假设

逻辑回归需要满足两个假设条件:

  1. 数据服从伯努利分布。
  2. 样本的概率是sigmoid函数。

LR说明

逻辑回归本质上是分类学习。逻辑回归中的回归是指将输入参数映射为0-1到之间的实数,数据表示如下:
y = 1 1 + e − w T x (7) y = \frac{1}{{1 + {e^{ - {{\rm{w}}^T}{\rm{x}}}}}} \tag{7} y=1+ewTx1(7)
通过比较发现,公式(7)就是公式(2)公式(6)的结合。
根据使用使用场景不同, y y y的取值可能会有些微的变化。如在点击率(CTR,click through rate)预测中,倾向于 y ∈ { 0 , 1 } y \in \{ 0,1\} y{0,1};在正负样本分类中,倾向于 y ∈ { − 1 , 1 } y \in \{ -1,1\} y{1,1}。不过这两种差异并不会影响逻辑回归训练及预测的推导流程,所以本文参考机器学习课程[8]仅讨论 y ∈ { 0 , 1 } y \in \{ 0,1\} y{0,1}的情况。
假设 y = 1 y = 1 y=1表示正样本, y = 0 y = 0 y=0表示负样本,则正样本的逻辑回归概率公式为:
P ( y = 1 ∣ x ; w ) = σ ( x ) = 1 1 + e − W T x = e W T x 1 + e W T x (8) P(y = 1|{\rm{x}};{\rm{w}}) = \sigma (x) = \frac{1}{{1 + {e^{ - {{\rm{W}}^T}{\rm{x}}}}}}{\rm{ = }}\frac{{{e^{{{\rm{W}}^T}{\rm{x}}}}}}{{1{\rm{ + }}{e^{{{\rm{W}}^T}{\rm{x}}}}}} \tag{8} P(y=1x;w)=σ(x)=1+eWTx1=1+eWTxeWTx(8)
负样本的概率公式为:
P ( y = 0 ∣ x ; w ) = 1 − σ ( x ) = 1 − e W T x 1 + e W T x = 1 1 + e W T x (9) P(y = 0|{\rm{x}};{\rm{w}}) = 1{\rm{ - }}\sigma (x) = 1{\rm{ - }}\frac{{{e^{{{\rm{W}}^T}{\rm{x}}}}}}{{1{\rm{ + }}{e^{{{\rm{W}}^T}{\rm{x}}}}}}{\rm{ = }}\frac{1}{{1{\rm{ + }}{e^{{{\rm{W}}^T}{\rm{x}}}}}} \tag{9} P(y=0x;w)=1σ(x)=11+eWTxeWTx=1+eWTx1(9)
比较正负样本的概率公式,可以统一为:
P ( y ∣ x ; w ) = σ ( x ) y ( 1 − σ ( x ) ) 1 − y (10) P(y|{\rm{x}};{\rm{w}}) = \sigma {({\rm{x}})^y}{(1 - \sigma ({\rm{x}}))^{1 - y}} \tag{10} P(yx;w)=σ(x)y(1σ(x))1y(10)
因为正负样本的概率和1,所以能够通过正样本的概率来反应逻辑回归的预测结果,对此逻辑回归有如下假设:

  1. 如果 P ( y = 1 ∣ x ; w ) ≥ 0.5 P(y = 1|{\rm{x}};{\rm{w}}) \ge 0.5 P(y=1x;w)0.5,则属于正样本;
  2. 如果 P ( y = 1 ∣ x ; w ) < 0.5 P(y = 1|{\rm{x}};{\rm{w}}) < 0.5 P(y=1x;w)<0.5,则属于负样本。

对于上述假设,使用交叉熵作为损失函数,其数学表达为:
L ( w ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ σ ( x ( i ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − σ ( x ( i ) ) ) ] (11) L({\rm{w}}) = - \frac{1}{m}\sum\limits_{i = 1}^m {[{y^{(i)}}\log \sigma ({{\rm{x}}^{(i)}}) + (1 - {y^{(i)}})\log (1 - \sigma ({{\rm{x}}^{(i)}}))]} \tag{11} L(w)=m1i=1m[y(i)logσ(x(i))+(1y(i))log(1σ(x(i)))](11)

训练模型的过程就是不断降低损失函数值得过程,而降低这些损失函数值的方法多种多样,使用梯度下降法进行训练得到模型参数的迭代公式为:
∂ L ( w ) ∂ w j = − ∑ i = 1 m ( y ( i ) − δ ( x ( i ) ) ) x j ( i ) (12) \frac{{\partial L({\rm{w}})}}{{\partial {w_j}}} = - \sum\limits_{i = 1}^m {({y^{(i)}} - \delta ({{\rm{x}}^{(i)}}))x_j^{(i)}} \tag{12} wjL(w)=i=1m(y(i)δ(x(i)))xj(i)(12)

关于梯度下降的公式推导可以参考附录梯度下降迭代公式推导

总结

优缺点

逻辑回归的优缺点是:

  1. 模型简单,解释性好。
  2. 训练快,资源消耗小,易调整。

缺点是:

  1. 准确率不高。
  2. 不适合数据不平衡的问题,因为区分度不好。
  3. 不适合大规模数据集,因为容易过拟合。

softmax

逻辑回归的使用场所是二分类问题,而softmax则是逻辑回归的泛化,用于处理多分类问题[12]
假设有 K K K个类别需要进行分类,则softmax规定某个类别的可能性为:
δ ( z ) i = e z i ∑ j = 1 K e z j (13) \delta {({\rm{z}})_i} = \frac{{{e^{{{\rm{z}}_i}}}}}{{\sum\limits_{j = 1}^K {{e^{{{\rm{z}}_j}}}} }} \tag{13} δ(z)i=j=1Kezjezi(13)
其中 i = 1 , … , K , z = ( z 1 , … , z K ) ∈ R K i = 1, \ldots ,K,{\rm{z}} = ({z_1}, \ldots ,{z_K}) \in {R^K} i=1,,K,z=(z1,,zK)RK。从公式(13)也可以看到softmax的两个关键点:1 soft就是指每个类别都会计算一个概率,而不是非0即1;2 max指模型最终指定的类别是概率最大的类别。

附录

梯度下降迭代公式推导 {#addition-1}

待优化的目标函数如下:
L ( w ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ σ ( x ( i ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − σ ( x ( i ) ) ) ] L({\rm{w}}) = - {1 \over m}\sum\limits_{i = 1}^m {[{y^{(i)}}\log \sigma ({{\rm{x}}^{(i)}}) + (1 - {y^{(i)}})\log (1 - \sigma ({{\rm{x}}^{(i)}}))]} L(w)=m1i=1m[y(i)logσ(x(i))+(1y(i))log(1σ(x(i)))]

为了简化推导表示,先去掉求和项及上标:
l ( w ) = y log ⁡ δ ( x ) + ( 1 − y ) log ⁡ ( 1 − δ ( x ) ) l({\rm{w}}) = y\log \delta ({\rm{x}}) + (1 - y)\log (1 - \delta ({\rm{x}})) l(w)=ylogδ(x)+(1y)log(1δ(x))

对上式进行求导:
l ( w ) ′ = ( y log ⁡ δ ( x ) ) ′ + ( ( 1 − y ) log ⁡ ( 1 − δ ( x ) ) ) ′ l({\rm{w}})' = (y\log \delta ({\rm{x}}))' + ((1 - y)\log (1 - \delta ({\rm{x}})))' l(w)=(ylogδ(x))+((1y)log(1δ(x)))

l ( w ) ′ = y δ ( x ) ′ δ ( x ) + ( 1 − y ) ( 1 − δ ( x ) ) ′ 1 − δ ( x ) l({\rm{w}})' = y\frac{{\delta ({\rm{x}})'}}{{\delta ({\rm{x}})}} + (1 - y)\frac{{(1 - \delta ({\rm{x}}))'}}{{1 - \delta ({\rm{x}})}} l(w)=yδ(x)δ(x)+(1y)1δ(x)(1δ(x))

现在的关键就是$\delta ({\rm{x}}) $的求导:
δ ( x ) = 1 1 + e − W T x \delta ({\rm{x}}) = \frac{1}{{1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}} δ(x)=1+eWTx1

因为:
( u v ) ′ = u ′ v − u v ′ v 2 (\frac{u}{v})' = \frac{{u'v - uv'}}{{{v^2}}} (vu)=v2uvuv

所以:
δ ( x ) ′ = ( 1 1 + e − W T x ) ′ = 1 ′ × e − W T x − 1 × ( e − W T x ) ′ ( 1 + e − W T x ) 2 = 0 − e − W T x ( − W T x ) ′ ( 1 + e − W T x ) 2 = e − W T x ( W T x ) ′ ( 1 + e − W T x ) 2 \delta ({\rm{x}})' = (\frac{1}{{1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}})' = \frac{{1' \times {e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}} - 1 \times ({e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}})'}}{{{{(1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}})}^2}}} = \frac{{0 - {e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}( - {{\rm{W}}^T}{\rm{x}})'}}{{{{(1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}})}^2}}} = \frac{{{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}({{\rm{W}}^T}{\rm{x}})'}}{{{{(1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}})}^2}}} δ(x)=(1+eWTx1)=(1+eWTx)21×eWTx1×(eWTx)=(1+eWTx)20eWTx(WTx)=(1+eWTx)2eWTx(WTx)

δ ( x ) ′ = 1 1 + e − W T x × e − W T x 1 + e − W T x × ( W T x ) ′ \delta ({\rm{x}})'{\rm{ = }}\frac{1}{{1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}} \times \frac{{{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}}{{1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}} \times ({{\rm{W}}^T}{\rm{x}})' δ(x)=1+eWTx1×1+eWTxeWTx×(WTx)

因为:
e − W T x 1 + e − W T x = 1 − 1 1 + e − W T x \frac{{{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}}{{1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}} = 1 - \frac{1}{{1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}} 1+eWTxeWTx=11+eWTx1

所以:
δ ( x ) ′ = 1 1 + e − W T x × ( 1 − 1 1 + e − W T x ) × ( W T x ) ′ \delta ({\rm{x}})'{\rm{ = }}\frac{1}{{1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}} \times (1 - \frac{1}{{1{\rm{ + }}{e^{{\rm{ - }}{{\rm{W}}^T}{\rm{x}}}}}}) \times ({{\rm{W}}^T}{\rm{x}})' δ(x)=1+eWTx1×(11+eWTx1)×(WTx)

δ ( x ) ′ = δ ( x ) ( 1 − δ ( x ) ) ( W T x ) ′ \delta ({\rm{x}})' = \delta ({\rm{x}})(1 - \delta ({\rm{x}}))({{\rm{W}}^T}{\rm{x}})' δ(x)=δ(x)(1δ(x))(WTx)

同理:
( 1 − δ ( x ) ) ′ = − δ ( x ) ( 1 − δ ( x ) ) ( W T x ) ′ (1 - \delta ({\rm{x}}))' = - \delta ({\rm{x}})(1 - \delta ({\rm{x}}))({{\rm{W}}^T}{\rm{x}})' (1δ(x))=δ(x)(1δ(x))(WTx)

返回 l ( w ) ′ l({\rm{w}})' l(w)的求解过程:
l ( w ) ′ = y δ ( x ) ′ δ ( x ) + ( 1 − y ) ( 1 − δ ( x ) ) ′ 1 − δ ( x ) = y δ ( x ) ( 1 − δ ( x ) ) ( W T x ) ′ δ ( x ) + ( 1 − y ) − δ ( x ) ( 1 − δ ( x ) ) ( W T x ) ′ 1 − δ ( x ) l({\rm{w}})' = y\frac{{\delta ({\rm{x}})'}}{{\delta ({\rm{x}})}} + (1 - y)\frac{{(1 - \delta ({\rm{x}}))'}}{{1 - \delta ({\rm{x}})}}{\rm{ = }}y\frac{{\delta ({\rm{x}})(1 - \delta ({\rm{x}}))({{\rm{W}}^T}{\rm{x}})'}}{{\delta ({\rm{x}})}}{\rm{ + }}(1 - y)\frac{{ - \delta ({\rm{x}})(1 - \delta ({\rm{x}}))({{\rm{W}}^T}{\rm{x}})'}}{{1 - \delta ({\rm{x}})}} l(w)=yδ(x)δ(x)+(1y)1δ(x)(1δ(x))=yδ(x)δ(x)(1δ(x))(WTx)+(1y)1δ(x)δ(x)(1δ(x))(WTx)

l ( w ) ′ = y ( 1 − δ ( x ) ) ( W T x ) ′ δ ( x ) δ ( x ) − ( 1 − y ) δ ( x ) ( W T x ) ′ ( 1 − δ ( x ) ) 1 − δ ( x ) l({\rm{w}})' = y(1 - \delta ({\rm{x}}))({{\rm{W}}^T}{\rm{x}})'\frac{{\delta ({\rm{x}})}}{{\delta ({\rm{x}})}} - (1 - y)\delta ({\rm{x}})({{\rm{W}}^T}{\rm{x}})'\frac{{(1 - \delta ({\rm{x}}))}}{{1 - \delta ({\rm{x}})}} l(w)=y(1δ(x))(WTx)δ(x)δ(x)(1y)δ(x)(WTx)1δ(x)(1δ(x))

l ( w ) ′ = y ( 1 − δ ( x ) ) ( W T x ) ′ − ( 1 − y ) δ ( x ) ( W T x ) ′ l({\rm{w}})' = y(1 - \delta ({\rm{x}}))({{\rm{W}}^T}{\rm{x}})' - (1 - y)\delta ({\rm{x}})({{\rm{W}}^T}{\rm{x}})' l(w)=y(1δ(x))(WTx)(1y)δ(x)(WTx)

l ( w ) ′ = y ( W T x ) ′ − y δ ( x ) ( W T x ) ′ − δ ( x ) ( W T x ) ′ + y δ ( x ) ( W T x ) ′ l({\rm{w}})' = y({{\rm{W}}^T}{\rm{x}})' - y\delta ({\rm{x}})({{\rm{W}}^T}{\rm{x}})' - \delta ({\rm{x}})({{\rm{W}}^T}{\rm{x}})' + y\delta ({\rm{x}})({{\rm{W}}^T}{\rm{x}})' l(w)=y(WTx)yδ(x)(WTx)δ(x)(WTx)+yδ(x)(WTx)

l ( w ) ′ = y ( W T x ) ′ − δ ( x ) ( W T x ) ′ + y δ ( x ) ( W T x ) ′ − y δ ( x ) ( W T x ) ′ l({\rm{w}})' = y({{\rm{W}}^T}{\rm{x}})' - \delta ({\rm{x}})({{\rm{W}}^T}{\rm{x}})' + y\delta ({\rm{x}})({{\rm{W}}^T}{\rm{x}})' - y\delta ({\rm{x}})({{\rm{W}}^T}{\rm{x}})' l(w)=y(WTx)δ(x)(WTx)+yδ(x)(WTx)yδ(x)(WTx)

l ( w ) ′ = ( y − δ ( x ) ) ( W T x ) ′ l({\rm{w}})' = (y - \delta ({\rm{x}}))({{\rm{W}}^T}{\rm{x}})' l(w)=(yδ(x))(WTx)

l ( w ) ′ l({\rm{w}})' l(w)带入 L ( w ) ′ L({\rm{w}})' L(w)
L ( w ) ′ = − ∑ i = 1 m ( y − δ ( x ) ) ( W T x ) ′ L{({\rm{w}})^\prime } = - \sum\limits_{i = 1}^m {(y - \delta ({\rm{x}}))({{\rm{W}}^T}{\rm{x}})'} L(w)=i=1m(yδ(x))(WTx)

因为:
z = W T x = w 0 + w 1 x 1 + w 2 x 2 + ⋯ + w n x n z = {{\rm{W}}^T}{\rm{x}} = {w_0} + {w_1}{x_1} + {w_2}{x_2} + \cdots + {w_n}{x_n} z=WTx=w0+w1x1+w2x2++wnxn

∂ z ∂ w j = x j \frac{{\partial z}}{{\partial {w_j}}} = {x_j} wjz=xj

所以:
∂ L ( w ) ∂ w j = − ∑ i = 1 m ( y − δ ( x ) ) ∂ z ∂ w j = − ∑ i = 1 m ( y − δ ( x ) ) x j {{\partial L({\rm{w}})} \over {\partial {w_j}}} = - \sum\limits_{i = 1}^m {(y - \delta ({\rm{x}})){{\partial z} \over {\partial {w_j}}}} = - \sum\limits_{i = 1}^m {(y - \delta ({\rm{x}})){x_j}} wjL(w)=i=1m(yδ(x))wjz=i=1m(yδ(x))xj

最后补全标识某个样本的上标:
∂ L ( w ) ∂ w j = − ∑ i = 1 m ( y ( i ) − δ ( x ( i ) ) ) x j ( i ) {{\partial L({\rm{w}})} \over {\partial {w_j}}} = - \sum\limits_{i = 1}^m {({y^{(i)}} - \delta ({{\rm{x}}^{(i)}}))x_j^{(i)}} wjL(w)=i=1m(y(i)δ(x(i)))xj(i)

Reference

[1] 知乎 LR逻辑回归模型的原理、公式推导、Python实现和应用
[2] 知乎 如何理解似然函数?
[3] wiki 似然函数
[4] wiki 逻辑函数
[5] wiki Pierre François Verhulst
[6] wiki 回归分析
[7] wiki 伯努利分布
[8] coursera 机器学习
[9] 未知网站 Gradient Descent: An Introduction to 1 of Machine Learning’s Most Popular Algorithms
[10] 未知网站 Logistic回归-代价函数求导过程 | 内含数学相关基础
[11] 知乎 交叉熵的推导
[12] wiki Softmax function

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值