当前位置:   article > 正文

逻辑回归和多项逻辑回归

多项逻辑回归


一、逻辑回归

逻辑回归模型

逻辑回归(Logistic Regression)是统计中经典的二分类算法,逻辑回归模型如下:
P ( Y = 1 ∣ x ) = e x p ( w ⋅ x ) 1 + e x p ( w ⋅ x ) (1) P(Y=1|x)=\frac{exp(w·x)}{1+exp(w·x)}\tag{1} P(Y=1x)=1+exp(wx)exp(wx)(1)

P ( Y = 0 ∣ x ) = 1 1 + e x p ( w ⋅ x ) (2) P(Y=0|x)=\frac{1}{1+exp(w·x)}\tag{2} P(Y=0x)=1+exp(wx)1(2)

其中,输入 x = { x ( 1 ) , x ( 2 ) , . . . , x ( n ) , 1 } x=\{x^{(1)},x^{(2)},...,x^{(n)},1\} x={x(1),x(2),...,x(n),1},输出 Y ∈ [ 0 , 1 ] Y\in[0,1] Y[0,1] w = { w ( 1 ) , w ( 2 ) , . . . , w ( n ) , b } w=\{w^{(1)},w^{(2)},...,w^{(n)},b\} w={w(1),w(2),...,w(n),b}。对于给定的 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分到概率值较大的一类。

将上面的(1)式进行变换有
P ( Y = 1 ∣ x ) = e x p ( w ⋅ x ) 1 + e x p ( w ⋅ x ) = 1 1 + e x p ( − w ⋅ x ) (3) P(Y=1|x)=\frac{exp(w·x)}{1+exp(w·x)}=\frac{1}{1+exp(-w·x)}\tag{3} P(Y=1x)=1+exp(wx)exp(wx)=1+exp(wx)1(3)
从(3)可以看出逻辑回归就是在线性回归的基础上加了个 s i g m o i d sigmoid sigmoid函数( f ( x ) = 1 1 + e − x f(x)=\frac{1}{1+e^{-x}} f(x)=1+ex1)

几率(odds):指该事件发生的概率与该事件不发生的概率的比值,即 o d d s = p 1 − p odds=\frac{p}{1-p} odds=1pp,其中 p p p为事件发生的概率。该事件的对数几率或 l o g i t logit logit函数是:
l o g i t ( p ) = l o g p 1 − p (4) logit(p)=log\frac{p}{1-p}\tag{4} logit(p)=log1pp(4)
将逻辑回归模型的公式(1)和(2)带入(4)可得
l o g P ( Y = 1 ∣ x ) 1 − P ( Y = 1 ∣ x ) = l o g P ( Y = 1 ∣ x ) P ( Y = 0 ∣ x ) = w ⋅ x (5) log\frac{P(Y=1|x)}{1-P(Y=1|x)}=log\frac{P(Y=1|x)}{P(Y=0|x)}=w·x\tag{5} log1P(Y=1x)P(Y=1x)=logP(Y=0x)P(Y=1x)=wx(5)
从式(5)可以看出,在逻辑回归模型中, Y = 1 Y=1 Y=1的对数几率是关于 x x x的线性函数。

也就是说在线性回归模型中,输出 Y Y Y是关于输入 x x x的线性模型,在逻辑回归模型中输出 Y Y Y的几率是关于 x x x的线性模型。

线性函数 w ⋅ x w·x wx的值域为实数域,通过式(1)将线性函数转换为概率, w ⋅ x w·x wx的值越大概率值就越接近1, w ⋅ x w·x wx的值越小概率值就越接近0。

极大似然估计法求w

给定数据集 T = { ( x 1 , y 1 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),...,(x_N,y_N)\} T={(x1,y1),...,(xN,yN)},令 P ( Y = 1 ∣ x ) = p ( x ) P(Y=1|x)=p(x) P(Y=1x)=p(x),利用极大似然估计求解模型参数 w w w,似然函数为:
L ( w ) = ∏ i = 1 N [ p ( x i ) ] y i [ 1 − p ( x i ) ] 1 − y i (6) L(w)=\prod_{i=1}^{N}[p(x_i)]^{y_i}[1-p(x_i)]^{1-y_i}\tag{6} L(w)=i=1N[p(xi)]yi[1p(xi)]1yi(6)
对数似然函数为:
l o g L ( w ) = ∑ i = 1 N [ y i l o g p ( x i ) + ( 1 − y i ) l o g ( 1 − p ( x i ) ) ] = ∑ i = 1 N [ y i l o g p ( x i ) 1 − p ( x i ) + l o g ( 1 − p ( x i ) ) ] = ∑ i = 1 N [ y i ( w ⋅ x i ) − l o g ( 1 + e x p ( w ⋅ x i ) ) ] (7) logL(w)=\sum_{i=1}^{N}[{y_i}logp(x_i)+(1-y_i)log(1-p(x_i))]\\ =\sum_{i=1}^{N}[{y_i}log\frac{p(x_i)}{1-p(x_i)}+log(1-p(x_i))]\\ =\sum_{i=1}^{N}[{y_i}(w·x_i)-log(1+exp(w·x_i))]\tag{7} logL(w)=i=1N[yilogp(xi)+(1yi)log(1p(xi))]=i=1N[yilog1p(xi)p(xi)+log(1p(xi))]=i=1N[yi(wxi)log(1+exp(wxi))](7)
求解 l o g L ( w ) logL(w) logL(w)的极大值,得到 w w w的估计值。

损失函数

损失函数一般是越小越好,所以取负对数似然,防止求和之后数值过大,再取个平均,损失函数如下:
min ⁡ w J ( w ) = − 1 N l o g L ( w ) = − 1 N ∑ i = 1 N [ y i l o g p ( x i ) + ( 1 − y i ) l o g ( 1 − p ( x i ) ) ] = − 1 N ∑ i = 1 N [ y i ( w ⋅ x i ) − l o g ( 1 + e x p ( w ⋅ x i ) ) ] (8) \min_wJ(w)=-\frac{1}{N}logL(w)=-\frac{1}{N}\sum_{i=1}^{N}[{y_i}logp(x_i)+(1-y_i)log(1-p(x_i))]\\ =-\frac{1}{N}\sum_{i=1}^{N}[{y_i}(w·x_i)-log(1+exp(w·x_i))]\tag{8} wminJ(w)=N1logL(w)=N1i=1N[yilogp(xi)+(1yi)log(1p(xi))]=N1i=1N[yi(wxi)log(1+exp(wxi))](8)

梯度下降求解w

有了损失函数,采用梯度下降算法求参数 w w w
∇ J ( w ) = ∂ J ( w ) ∂ w w = w − α ∇ J ( w ) (9) \nabla J(w)=\frac{\partial J(w)}{\partial w}\\ w=w-{\alpha}\nabla J(w)\tag{9} J(w)=wJ(w)w=wαJ(w)(9)

二、多项逻辑回归

上面说的逻辑回归适用于二分类,如果遇到多分类任务就要用到多项逻辑回归。

假设因变量 Y ∈ { 1 , 2 , . . . , K } Y\in\{1,2,...,K\} Y{1,2,...,K},那么多项逻辑回归模型为:
P ( Y = k ∣ x ) = e x p ( w k ⋅ x ) 1 + ∑ j = 1 K − 1 e x p ( w j ⋅ x ) , k ∈ 1 , . . . , K − 1 P ( Y = K ∣ x ) = 1 1 + ∑ j = 1 K − 1 e x p ( w j ⋅ x ) (10) P(Y=k|x)=\frac{exp(w_k·x)}{1+\sum_{j=1}^{K-1}exp(w_j·x)},k\in1,...,K-1\\ P(Y=K|x)=\frac{1}{1+\sum_{j=1}^{K-1}exp(w_j·x)}\tag{10} P(Y=kx)=1+j=1K1exp(wjx)exp(wkx),k1,...,K1P(Y=Kx)=1+j=1K1exp(wjx)1(10)
其中, x ∈ R n + 1 , w j , w k ∈ R n + 1 x\in R^{n+1},w_j,w_k\in R^{n+1} xRn+1,wj,wkRn+1。其实多项逻辑回归就是把逻辑回归中的 s i g m o i d sigmoid sigmoid函数换成了 s o f t m a x softmax softmax,多项逻辑回归可以表示为:
p ( Y = k ∣ x ) = e x p ( w k ⋅ x ) ∑ j = 1 K e x p ( w j ⋅ x ) , k ∈ 1 , . . . , K (11) p(Y=k|x)=\frac{exp(w_k·x)}{\sum_{j=1}^{K}exp(w_j·x)},k\in1,...,K\tag{11} p(Y=kx)=j=1Kexp(wjx)exp(wkx),k1,...,K(11)
j = K j=K j=K时, e x p ( w K ⋅ x ) = 1 exp(w_K·x)=1 exp(wKx)=1,就是(10)式了。

多项逻辑回归实际上是二分类逻辑回归在多标签分类下的一种拓展。

三、问题

1.逻辑回归如何处理多标签问题?

若某个样本属于多个标签,可以训练 k k k个二分类的逻辑回归分类器。第 i i i个分类器用以区分每个样本是否可以归为第 i i i类,训练该分类器时,需要把标签重新整理为“第 i i i类标签”与“非第 i i i类标签”两类。通过这样的办法,就解决了每个样本可能拥有多个标签的情况。

2.为什么不用平方误差(MSE)作为Logistic回归的损失函数?

逻辑回归引入softmax函数,使输出值与模型参数之间的关系不再是线性关系。此时如果选择与线性回归一样的平方损失函数,就会导致cost function可能是非凸函数。对于非凸函数进行梯度下降法,会导致陷入局部最优情况。选择对数损失函数,会使这个函数变成凸函数。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/179876
推荐阅读
相关标签
  

闽ICP备14008679号