逻辑斯谛回归(logistics regression,LR)

逻辑斯谛分布

之前学到的感知机线性回归说过,一个分离超平面S将特征空间分成两个部分,实例在不同的子空间中被分为相对应的类。但是当一个样本点与超平面的距离非常近时,被分成类A的可能性为51%,分成类B的可能性为49%,此时线性回归会直接给出该样本点属于A类的结论,并没有告诉我们它属于A类的概率是多少,这样就忽略了49%分成B类的可能性。

为了得到这个概率,引出了Sigmoid函数(也叫Logistic,逻辑斯谛函数)。
关于函数的简介,可以在百度中自行了解:
https://baike.baidu.com/item/Sigmoid%E5%87%BD%E6%95%B0/7981407
Sigmoid函数经常在深度学习中作为激励函数使用,它的基本形式如下:
S i g m o i d ( x ) = 1 1 + e x Sigmoid(x)=\frac{1}{1+e^{x}}S i g m o i d (x )=1 +e x 1 ​
Sigmoid函数能够将线性回归产生的值 x ∈ ( − ∞ , + ∞ ) x\in{(-\infty,+\infty)}x ∈(−∞,+∞) 转换到 y ∈ ( 0 , 1 ) y\in(0,1)y ∈(0 ,1 ) 区间内,而概率的取值也在(0,1)内,这样,就可以得到一个样本被分为一个类的概率是多少了。

逻辑斯谛回归(logistics regression,LR)
引入Sigmoid函数之后,加入形状参数γ \gamma γ和位置参数μ \mu μ,便得到了逻辑斯谛分布:

当连续随机变量X服从逻辑斯谛分布时,X具有下列分布函数:
F ( x ) = 1 1 + e − ( x − μ ) / γ F(x)=\frac{1}{1+e^{-(x-\mu)/\gamma}}F (x )=1 +e −(x −μ)/γ1 ​
分布函数求导后得到密度函数:
f ( x ) = e − ( x − μ ) / γ γ ( 1 + e − ( x − μ ) / γ ) 2 f(x)=\frac{e^{-(x-\mu)/\gamma}}{\gamma(1+e^{-(x-\mu)/\gamma})^2}f (x )=γ(1 +e −(x −μ)/γ)2 e −(x −μ)/γ​
其中,形状参数γ \gamma γ越小,曲线在中心附近越陡,增长的越快。

; 二项逻辑斯谛回归模型

当μ = 0 , γ = 1 \mu=0,\gamma=1 μ=0 ,γ=1,随机变量Y只有两个取值0或1时,二项逻辑斯谛回归模型的形式为:
P ( Y = 0 ∣ x ) = 1 1 + e ( ω ⋅ x + b ) P(Y=0|x)=\frac{1}{1+e^{(\omega \cdot x+b)}}P (Y =0 ∣x )=1 +e (ω⋅x +b )1 ​
P ( Y = 1 ∣ x ) = 1 − 1 1 + e ( ω ⋅ x + b ) = e ( ω ⋅ x + b ) 1 + e ( ω ⋅ x + b ) P(Y=1|x)=1- \frac{1}{1+e^{(\omega \cdot x+b)}} = \frac{e^{(\omega \cdot x+b)}}{1+e^{(\omega \cdot x+b)}}P (Y =1 ∣x )=1 −1 +e (ω⋅x +b )1 ​=1 +e (ω⋅x +b )e (ω⋅x +b )​
有时为了方便,将权值向量ω \omega ω扩充为( ω ( 1 ) , ω ( 2 ) , . . . , ω ( n ) , b ) T (\omega^{(1)},\omega^{(2)},…,\omega^{(n)},b)^T (ω(1 ),ω(2 ),…,ω(n ),b )T,将输入向量x扩充为( x ( 1 ) , x ( 2 ) , . . . , x ( n ) , 1 ) (x^{(1)},x^{(2)},…,x^{(n)},1)(x (1 ),x (2 ),…,x (n ),1 ),扩充后的ω ⋅ x = ω ( 1 ) x ( 1 ) + ω ( 2 ) x ( 2 ) + . . . + ω ( n ) x ( n ) + b \omega \cdot x=\omega^{(1)}x^{(1)}+\omega^{(2)}x^{(2)}+…+\omega^{(n)}x^{(n)}+b ω⋅x =ω(1 )x (1 )+ω(2 )x (2 )+…+ω(n )x (n )+b,等价于扩充前的ω ⋅ x + b \omega \cdot x+b ω⋅x +b。
这时的逻辑斯谛回归模型如下:
P ( Y = 0 ∣ x ) = 1 1 + e ( ω ⋅ x ) P(Y=0|x)=\frac{1}{1+e^{(\omega \cdot x)}}P (Y =0 ∣x )=1 +e (ω⋅x )1 ​
P ( Y = 1 ∣ x ) = 1 − 1 1 + e ( ω ⋅ x ) = e ( ω ⋅ x ) 1 + e ( ω ⋅ x ) P(Y=1|x)=1- \frac{1}{1+e^{(\omega \cdot x)}} = \frac{e^{(\omega \cdot x)}}{1+e^{(\omega \cdot x)}}P (Y =1 ∣x )=1 −1 +e (ω⋅x )1 ​=1 +e (ω⋅x )e (ω⋅x )​

当输入一个样本点x时,二项逻辑斯谛回归模型比较P(Y=0|x)和P(Y=1|x)的大小,将x分到概率值较大的那一类。其实只需计算一个条件概率值就行了,因为P(Y=0|x)+P(Y=1|x)=1。
例如当P(Y=0|x)=0.49,P(Y=1|x)=0.51时,x的类别为y=1,属于类1的概率为0.51。

这样,当一个样本点x输入到感知机模型sign(w•x+b)中时,只能得到样本点的类别;
当x输入到二项逻辑回归模型中时,不仅可以得到样本点的类别,还可以得到属于该类别的概率。

二项逻辑斯谛回归模型参数估计

下一个要解决的问题是,怎么得到模型中的未知参数ω \omega ω?

假如给你一个训练集,包括10个样本,其中7个样本为类0,3个样本为类1,类0出现的概率为p,类1出现的概率为1-p,那么出现训练样本这种现象的概率就是p7(1-p)3。

既然这个样本结果已经出现了,为什么不利用已知的样本结果信息,反推最有可能(最大概率)导致这些样本结果出现的模型参数值ω \omega ω呢?而这就是极大似然估计法的思想。

也就是说,我们可以用极大似然估计法估计ω \omega ω。通过最大化对数似然函数,得到未知参数ω \omega ω的估计值。

如果x是已知确定的,参数ω \omega ω是未知的,P ( x ∣ ω ) P(x|\omega)P (x ∣ω)叫做似然函数, 它描述对于不同的参数ω \omega ω,出现x这个样本点的概率是多少。
关于极大似然估计更详细的解说,可以看这篇文章https://zhuanlan.zhihu.com/p/26614750

下面我们具体应用到二项逻辑回归模型中。
设训练数据集T={(x1,y1),(x2,y2),…,(xN,yN)}有N个样本,yi为0或1。
为了方便表述,设:
P ( Y = 1 ∣ x ) = e ( ω ⋅ x ) 1 + e ( ω ⋅ x ) = π ( x ) , P ( Y = 0 ∣ x ) = 1 1 + e ( ω ⋅ x ) = 1 − π ( x ) ( 1 ) P(Y=1|x)=\frac{e^{(\omega \cdot x)}}{1+e^{(\omega \cdot x)}}=\pi(x), P(Y=0|x)=\frac{1}{1+e^{(\omega \cdot x)}}=1-\pi(x) \tag{\color{red}{1}}P (Y =1 ∣x )=1 +e (ω⋅x )e (ω⋅x )​=π(x ),P (Y =0 ∣x )=1 +e (ω⋅x )1 ​=1 −π(x )(1 )

出现训练集T这个结果的似然函数就是把每个样本点出现的概率相乘起来:
∏ i = 1 N [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i \prod_{i=1}^{N}[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i}i =1 ∏N ​[π(x i ​)]y i ​[1 −π(x i ​)]1 −y i ​
假如训练集T只有两个样本点,第一个样本点是类0,第二个是类1,代入上式就是:
∏ i = 1 2 [ π ( x i ) ] y i [ 1 − π ( x i ) ] 1 − y i = [ π ( x 1 ) ] y 1 [ 1 − π ( x 1 ) ] 1 − y 1 [ π ( x 2 ) ] y 2 [ 1 − π ( x 2 ) ] 1 − y 2 = [ π ( x 1 ) ] 0 [ 1 − π ( x 1 ) ] 1 [ π ( x 2 ) ] 1 [ 1 − π ( x 2 ) ] 0 = [ 1 − π ( x 1 ) ] [ π ( x 2 ) ] \begin{aligned} &\prod_{i=1}^{2}[\pi(x_i)]^{y_i}[1-\pi(x_i)]^{1-y_i}\ &=[\pi(x_1)]^{y_1}[1-\pi(x_1)]^{1-y_1}[\pi(x_2)]^{y_2}[1-\pi(x_2)]^{1-y_2}\ &=[\pi(x_1)]^{0}[1-\pi(x_1)]^{1}[\pi(x_2)]^{1}[1-\pi(x_2)]^{0}\ &=[1-\pi(x_1)][\pi(x_2)] \end{aligned}​i =1 ∏2 ​[π(x i ​)]y i ​[1 −π(x i ​)]1 −y i ​=[π(x 1 ​)]y 1 ​[1 −π(x 1 ​)]1 −y 1 ​[π(x 2 ​)]y 2 ​[1 −π(x 2 ​)]1 −y 2 ​=[π(x 1 ​)]0 [1 −π(x 1 ​)]1 [π(x 2 ​)]1 [1 −π(x 2 ​)]0 =[1 −π(x 1 ​)][π(x 2 ​)]​
是不是相当于那个p7(1-p)3呢。

为了让连乘变成连加,对上面的似然函数取对数,得到对数似然函数:
L ( ω ) = ∑ i = 1 N [ l o g [ π ( x i ) ] y i + l o g [ 1 − π ( x i ) ] 1 − y i ] = ∑ i = 1 N [ y i l o g π ( x i ) + ( 1 − y i ) l o g ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i l o g π ( x i ) − y i l o g ( 1 − π ( x i ) ) + l o g ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i [ l o g π ( x i ) − l o g ( 1 − π ( x i ) ) ] + l o g ( 1 − π ( x i ) ) ] = ∑ i = 1 N [ y i l o g π ( x i ) 1 − π ( x i ) + l o g ( 1 − π ( x i ) ) ] 将 前 面 设 的 式 1 代 入 = ∑ i = 1 N [ y i l o g e ( ω ⋅ x i ) 1 + e ( ω ⋅ x i ) 1 1 + e ( ω ⋅ x i ) + l o g 1 1 + e ( ω ⋅ x i ) ] = ∑ i = 1 N [ y i ( ω ⋅ x i ) − l o g ( 1 + e ( ω ⋅ x i ) ) ] \begin{aligned} L(\omega)&=\sum_{i=1}^{N}[log[\pi(x_i)]^{y_i}+log[1-\pi(x_i)]^{1-y_i}]\ &=\sum_{i=1}^{N}[y_ilog\pi(x_i)+(1-y_i)log(1-\pi(x_i))]\ &=\sum_{i=1}^{N}[y_ilog\pi(x_i)-y_ilog(1-\pi(x_i))+log(1-\pi(x_i))]\ &=\sum_{i=1}^{N}[y_i[log\pi(x_i)-log(1-\pi(x_i))]+log(1-\pi(x_i))]\ &=\sum_{i=1}^{N}[y_ilog\frac{\pi(x_i)}{1-\pi(x_i)}+log(1-\pi(x_i))]\ 将前面设的式1代入&=\sum_{i=1}^{N}[y_ilog\frac{\frac{e^{(\omega \cdot x_i)}}{1+e^{(\omega \cdot x_i)}}}{\frac{1}{1+e^{(\omega \cdot x_i)}}}+log\frac{1}{1+e^{(\omega \cdot x_i)}}]\ &=\sum_{i=1}^{N}[y_i(\omega \cdot x_i)-log(1+e^{(\omega \cdot x_i)})] \end{aligned}L (ω)将前面设的式1 代入​=i =1 ∑N ​[l o g [π(x i ​)]y i ​+l o g [1 −π(x i ​)]1 −y i ​]=i =1 ∑N ​[y i ​l o g π(x i ​)+(1 −y i ​)l o g (1 −π(x i ​))]=i =1 ∑N ​[y i ​l o g π(x i ​)−y i ​l o g (1 −π(x i ​))+l o g (1 −π(x i ​))]=i =1 ∑N ​[y i ​[l o g π(x i ​)−l o g (1 −π(x i ​))]+l o g (1 −π(x i ​))]=i =1 ∑N ​[y i ​l o g 1 −π(x i ​)π(x i ​)​+l o g (1 −π(x i ​))]=i =1 ∑N ​[y i ​l o g 1 +e (ω⋅x i ​)1 ​1 +e (ω⋅x i ​)e (ω⋅x i ​)​​+l o g 1 +e (ω⋅x i ​)1 ​]=i =1 ∑N ​[y i ​(ω⋅x i ​)−l o g (1 +e (ω⋅x i ​))]​
对L ( ω ) L(\omega)L (ω)求极大值,就可以得到参数ω \omega ω的估计值,进一步得到二项逻辑回归模型。
到此,求二项逻辑回归模型就变成了求目标函数为L ( ω ) L(\omega)L (ω)的最优化问题。求解该最优化问题一般使用梯度下降法和拟牛顿法。

梯度下降法的学习文章

Original: https://blog.csdn.net/weixin_46838605/article/details/123190502
Author: 卡卡西~
Title: 逻辑斯谛回归(logistics regression,LR)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/630447/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球