机器学习——逻辑回归


一下理解均为本人的个人理解,如有错误,欢迎指出


什么是逻辑回归

logistic回归又称logistic回归分析,是一种广义的线性回归分析模型

设想有这么一种情况,有一组数据,因变量只有0和1两种取值,我们想用一个函数去拟合这组数据,传统的线性回归的因变量取值是连续的,而逻辑回归用于处理因变量取值0-1时的函数拟合的情况,逻辑回归处理的是令人头疼的离散值连续化的问题(参考资料逻辑回归



如何处理因变量取值离散的情况

对于一个事物,在已知自变量的情况下,如果这个事物的取值为1,逻辑回归不是单纯的认为其取值为1,而是认为相对于取值为0,该事物取值为1的概率更大,若使用y表示已知自变量的情况下,该事物取值为1的概率,则1-y表示已知自变量的情况下,该事物取值为0的概率,则使用:

y1y1.0\frac{y}{1-y}(式1.0)

表示已知自变量的情况下,该事物作为取值为1的相对可能性,式1.0又称为几率,通过概率角度,我们将因变量的0-1取值转变为(0,+)(0,+\infin)区间的连续值,但是,线性回归的取值区间是(,+)(-\infin,+\infin),所以我们还需要一个手段,将几率的取值范围扩展为(,+)(-\infin,+\infin),逻辑回归采用了对数函数,即:

ln(y1y)1.1\ln(\frac{y}{1-y})(式1.1)

式1.1称为对数几率,式1.1的取值为(,+)(-\infin,+\infin),此时有:

ln(y1y)=wTx+b1.2\ln(\frac{y}{1-y})=w^Tx+b(式1.2)

对上式进行化简得:

y=11+e(wTx+b)(1.3)y=\frac{1}{1+e^{-(w^Tx+b)}}(式1.3)

该函数即为sigmoid函数复合 wTx+bw^Tx+b 后获得,sigmoid函数长这样:
在这里插入图片描述
这个函数因变量取值为(0,1),当自变量大到一定程度时,sigmoid函数的取值将趋近于1。

对于因变量取值为1的数据,逻辑回归只是认为该数据取值为1的相对概率较大,即对数几率比较大,那么,只需让式1.1的输出尽可能大,即y尽可能大,对于取值为0的数据,只需让式1.1的输出尽可能小,即y尽可能小。
说白了,逻辑回归只保证在已知自变量的情况下,对于取值为1的数据,式1.3的取值将会尽可能的趋近于1,对于取值为0的数据,式1.3的取值将会尽可能的趋近于0,但是并没有给出区分取值0-1的区分点,这就需要我们根据自己的实际需要进行确定,但这也给了逻辑回归一定的灵活性


如何求解w、b

经过上述分析,我们已经获得了逻辑回归的表达式——式1.3,接下来,该怎么求解wbw、b?依据线性回归的思想,我们很容易想到通过均方误差作为损失函数,如下:在这里插入图片描述
上图中的ϕ\phi函数即为sigmoid函数,但是这个函数是非凸函数,给定一组样本,考虑二维的情况,其函数图像如下:
在这里插入图片描述
如果使用常用的梯度下降法、牛顿法,将很容易陷入局部最小,也就是说,我们应该换一个损失函数,该损失函数为凸函数
若使用后验概率 p(y=1x)p(y=1|x)来表示y,即已知x的情况下,y取值为1的概率,则则p(y=0x)p(y=0|x)表示已知x的情况下,y取值为0的概率,式1.2可重写为:

ln(p(y=1x)p(y=0x))=wTx+b2.0)\ln(\frac{p(y=1|x)}{p(y=0|x)})=w^Tx+b(式2.0)

又有:

p(y=1x)+p(y=0x)=12.1)p(y=1|x)+p(y=0|x)=1(式2.1)

连立式2.0与2.1可得(初等解方程的问题,就不再列出过程):

p(y=1x)=ewTx+b1+ewTx+b2.2p(y=0x)=11+ewTx+b2.3p(y=1|x)=\frac{e^{w^Tx+b}}{1+e^{w^Tx+b}}(式2.2) \\ p(y=0|x)=\frac{1}{1+e^{w^Tx+b}} (式2.3)
从逻辑回归的角度出发,假设有m个样本,样本与样本间相互独立(即一个样本的出现不会影响其他样本的出现),我们来梳理一下我们现有的条件

  • 1、m个样本数据之间互相独立
  • 2、已知样本的概率密度函数(式2.2,式2.3)

满足使用极大似然估计的条件,则最大化对数似然:

ι(w,b)=i=1mln(yixi;w,b)2.4\iota(w,b)=\sum_{i=1}^m\ln(y_i|x_i;w,b)(式2.4)

等等,极大似然估计真的很好的解释逻辑回归的思想么?即对于取值为1的样本,式1.3的输出尽可能靠近1 。取值为0的样本,式1.3的输出尽可能靠近0。
首先注意到式(2.2)分子分母同除以e(wTx+b)e^{(w^Tx+b)}就可以得到式1.3 。
极大似然法是想令每个样本属于其真实标记的概率越大越好,那么对于取值为1的样本,极大似然法将使式2.2的取值尽可能大,即y的取值尽可能大,即式1.3的取值尽可能趋近于1,对于取值为0的样本,极大似然法将使式2.3的取值尽可能大,即y的取值尽可能小,即式1.3的取值尽可能趋近于0

对式2.2,2.3使用0-1规划,可得:

ln(yixi;w,b)=yip(yi=1xi)+(1yi)p(yi=0xi)2.5\ln(y_i|x_i;w,b)=y_ip(y_i=1|x_i)+(1-y_i)p(y_i=0|x_i)(式2.5)

连立式2.2、2.3、2.4、2.5,可将对数似然转变为(基本的初等变换,这里不列出推导过程):

ι(w,b)=i=1m(ln(yiewTxi+b+1yi)ln(1+ewTxi+b))(2.6)\iota(w,b)=\sum_{i=1}^m(\ln(y_ie^{w^Tx_i+b}+1-y_i)-\ln(1+e^{w^Tx_i+ b})) (式2.6)

观察式子ln(yiewTxi+b+1yi)\ln(y_ie^{w^Tx_i+b}+1-y_i),当yiy_i取值为1时,其取值为wTxi+bw^Tx_i+b,当yiy_i取值为0时,其取值为0,则可用yi(wTxi+b)y_i(w^Tx_i+b)来表示ln(yiewTxi+b+1yi)\ln(y_ie^{w^Tx_i+b}+1-y_i)

则式2.6可表示为:
ι(w,b)=i=1m(yi(wTxi+b)ln(1+ewTxi+b))(2.7)\iota(w,b)=\sum_{i=1}^m(y_i(w^Tx_i+b)-\ln(1+e^{w^Tx_i+ b})) (式2.7)

最大化式2.7等价于最小化式2.8

ι(w,b)=i=1m(yi(wTxi+b)+ln(1+ewTxi+b))(2.8)\iota(w,b)=\sum_{i=1}^m(-y_i(w^Tx_i+b)+\ln(1+e^{w^Tx_i+ b})) (式2.8)

式2.8的海森矩阵为半正定,故其为凸函数,可以使用最优化理论获得其最小值
这里我们使用梯度下降法,下面给出梯度下降法的推导过程



梯度下降法的推导

xix_i表示(xi1,xi2,....,xin)(x_{i1},x_{i2},....,x_{in}),即数据具有n个特征,ww表示(w1,w2,.....,wn)(w_1,w_2,.....,w_n),共有m组数据,yiy_i表示第i组数据的取值,式2.8对wbw、b求导得
ιw1=i=1m(yixi1)+i=1m(ln(1+ewTxi+b)xi1)ιw2=i=1m(yixi2)+i=1m(ln(1+ewTxi+b)xi2).....ιwn=i=1m(yixin)+i=1m(ln(1+ewTxi+b)xin)ιb=i=1m(yi)+i=1m(ln(1+ewTxi+b)) \begin{aligned} & \frac{\partial \iota}{\partial w_1}=\sum_{i=1}^m(-y_{i}x_{i1})+\sum_{i=1}^m(\ln(1+e^{w^Tx_i+b})x_{i1})\\ & \frac{\partial \iota}{\partial w_2}=\sum_{i=1}^m(-y_{i}x_{i2})+\sum_{i=1}^m(\ln(1+e^{w^Tx_i+b})x_{i2})\\ &.....\\ &\frac{\partial \iota}{\partial w_n}=\sum_{i=1}^m(-y_{i}x_{in})+\sum_{i=1}^m(\ln(1+e^{w^Tx_i+b})x_{in})\\ &\frac{\partial \iota}{\partial b}=\sum_{i=1}^m(-y_{i})+\sum_{i=1}^m(\ln(1+e^{w^Tx_i+b})) \end{aligned}

将上面这一坨式子写成矩阵的形式,则有:

{ιw1ιw2..ιwnιb}={x11x21...xm1x12x22...xm2........x1nx2n...xmn1111}{y1y2..ym}+{x11x21...xm1x12x22...xm2........x1nx2n...xmn1111}{ln(1+ewTx1+b)ewTx1+bln(1+ewTx2+b)ewTx2+b..ln(1+ewTxm+b)ewTxm+b} \left\{ \begin{matrix} \frac{\partial \iota}{\partial w_1}\\ \frac{\partial \iota}{\partial w_2}\\ .\\ .\\ \frac{\partial \iota}{\partial w_n}\\ \frac{\partial \iota}{\partial b} \end{matrix} \right\} = \left\{ \begin{matrix} x_{11} & x_{21} & ... & x_{m1} \\ x_{12} & x_{22} & ... & x_{m2} \\ . & . & . &.\\ . & . & . &.\\ x_{1n} & x_{2n} & ... & x_{mn} \\ 1 & 1 & 1 &1\\ \end{matrix} \right\} \left\{ \begin{matrix} -y_1\\ -y_2\\ .\\ .\\ -y_m \end{matrix} \right\}+ \left\{ \begin{matrix} x_{11} & x_{21} & ... & x_{m1} \\ x_{12} & x_{22} & ... & x_{m2} \\ . & . & . &.\\ . & . & . &.\\ x_{1n} & x_{2n} & ... & x_{mn} \\ 1 & 1 & 1 &1\\ \end{matrix} \right\} \left\{ \begin{matrix} \ln(1+e^{w^Tx_1+b})e^{w^Tx_1+b} \\ \ln(1+e^{w^Tx_2+b})e^{w^Tx_2+b} \\ . \\ . \\ \ln(1+e^{w^Tx_m+b})e^{w^Tx_m+b} \\ \end{matrix} \right\}

XT={x11x21...xm1x12x22...xm2........x1nx2n...xmn1111}X^T=\left\{ \begin{matrix} x_{11} & x_{21} & ... & x_{m1} \\ x_{12} & x_{22} & ... & x_{m2} \\ . & . & . &.\\ . & . & . &.\\ x_{1n} & x_{2n} & ... & x_{mn} \\ 1 & 1 & 1 &1\\ \end{matrix} \right\}
Y={y1y2..ym} Y=\left\{ \begin{matrix} y_1\\ y_2\\ .\\ .\\ y_m \end{matrix} \right\}
H={ln(1+ewTx1+b)ewTx1+bln(1+ewTx2+b)ewTx2+b..ln(1+ewTxm+b)ewTxm+b} H= \left\{ \begin{matrix} \ln(1+e^{w^Tx_1+b})e^{w^Tx_1+b} \\ \ln(1+e^{w^Tx_2+b})e^{w^Tx_2+b} \\ . \\ . \\ \ln(1+e^{w^Tx_m+b})e^{w^Tx_m+b} \\ \end{matrix} \right\}
ww的更新值w,w^,可表示为:

w,=wα(XT(Y)+XTH)w^,=w-\alpha( X^T(-Y)+X^TH)



逻辑回归的用途

分类:因变量取值0-1本身可看成二分类问题,本文介绍的逻辑回归模型适用于二分类问题



如何衡量逻辑回归模型的好坏

对于分类问题,可以使用ROC和AUC进行度量,这里偷个懒,不自己写了(两个星期打了三场比赛一场答辩,都要吐了,呕)可以参考:机器学习之分类器性能指标之ROC曲线、AUC值,内容讲解的是正确的,和周志华老师的《机器学习》中讲的差不多,只是更详细



逻辑回归的使用条件

总结自百度百科 数模缺大腿

因变量满足二项分布

从推导过程可以看到,因变量取值只有两种,并且要求相互独立,因为相互独立是使用极大似然法的前提,百度百科上也说过残差满足二项分布,其实只要因变量满足二项分布,残差也一定满足,因为残差的取值也只有两种

逻辑回归是一个线性模型,因为逻辑回归的分界面是一个直线(平面)

展开阅读全文

没有更多推荐了,返回首页