引子
大家在日常的工作和学习中是不是经常有这样的疑问:邮箱是如何自动区分正常邮件和垃圾邮件的呢?银行是如何判断是否通过你的贷款申请的呢?经常收到某种商品的推荐信息,商家又是如何知道你对这个商品感兴趣的呢?
为了回答上述疑问,这一期给大家介绍逻辑回归算法。逻辑回归,也称Logistic Regression,主要区别于一般的线性回归模型。我们知道,一般的线性回归模型都是处理因变量是连续变量的问题,如果因变量是分类变量,一般线性回归模型就不再适用。逻辑回归算法因其原理的相对简单,可解释性强等优点已成为互联网领域最常用也最有影响力的分类算法之一,同时它还可以作为众多集成算法以及深度学习的基本组成单位,所以学好逻辑回归尤其重要。
我们知道,一般的线性回归模型都是处理因变量是连续变量的问题,如果因变量是定性变量,一般线性回归模型就不再适用了。
或许有人会有疑问,为什么对于分类问题,逻辑回归行而一般的线性回归模型却不行呢?二者的区别又是什么呢?下面将从现实意义和数学理论上给出解释。
定性因变量回归方程的意义
设因变量y是只取0,1两个值,考虑简单线性回归模 $y=\beta_{0}+\beta_{1}x_{i} +\varepsilon$
在这种y只取0和1两个值的情况下,因变量均值 $E(y_{i})=\beta_{0}+\beta_{1}x_{i}$ 有着特殊的意义。
由于$y$是0-1型随机变量,得到如下概率分布
$$ P(y = 1)= p$$
$$ P(y = 0)= 1-p $$
根据离散型随机变量期望值的定义,可得
$$ E(y)=1( p )+0(1-p)= p $$
所以,作为由回归函数给定的因变量均值,$E(y)=\beta_{0}+\beta_{1}x$是自变量水平为$x$时$y=1$的概率。
逻辑回归模型的特别之处
对于一般的线性模型
$$y=\beta_{0}+\beta_{1}x +\varepsilon$$
误差项有大三假定条件:
(1)误差项$\varepsilon$是一个期望为0的随机变量,即$E(\varepsilon)=0$
(2)对于所有的$x$,$\varepsilon$的方差都相同,这意味着对于一个特定的x值,y的方差也都等于$\sigma^2$。
(3)误差项$\varepsilon$是一个服从正态分布的随机变量,且相互独立,即$\varepsilon\sim N(0,\sigma^2)$。
而在因变量y只能取0和1的逻辑回归模型,误差项 $\varepsilon=y-(\beta_{0}+\beta_{1}x)$ 显然是两点型的离散分布,不满足误差项正态分布的基本假定;同时误差项的方差 $Var(\varepsilon_{i})=Var(y_{i})=(\beta_{0}+\beta_{1}x_{i})(1-\beta_{0}-\beta_{1}x_{i})$,可以看出误差项随着$x$的不同水平而变化,是异方差,不满足线性回归的基本假定;当因变量为0和1时,回归方程代表的是概率分布,所以因变量的均值受到如下限制$0\leq E(y_{i})\leq1$,一般的线性回归方程不会有这种限制。而逻辑回归却利用一些数学变化巧妙的解决了这些的问题,请看下面一节。
从一般线性回归到逻辑回归
当被解释变量$y$为0和1的二分类变量时,虽然无法采用一般的线性回归模型建模,但是可以借鉴其理论基础:
第一,一般线性模型$p(y=1|x)=\beta_{0}+\beta_{1}x_{1}+\dots+\beta_{p}x_{p}$,方程左侧的概率$p$的取值范围为[0,1],方程右边的额取值范围在$-\infty\sim +\infty$之间。如果对概率p做合理的变换,使其的取值范围与右侧吻合,则左侧和右侧可以通过等号连接起来。
第二,一般线性模型$p(y=1|x)=\beta_{0}+\beta_{1}x_{1}+\dots+\beta_{p}x_{p}$,方程中的概率$p$与解释变量之间的关系是线性的。但在实际的应用中,它们之间的关系往往是非线性的。例如通过银行贷款申请的概率通常不会随着年收入(或者年龄等)的增长而线性增长。于是对概率$p$的变换应该是采用非线性变换。
基于以上的分析,可采取一下两步变换:
第一步,将概率$p$转换成$\Omega:\Omega=\frac{p}{1-p}$。其中,$\Omega$称为优势,是事件发生的概率与不发生的概率之比。这种变换是非线性的,且$\Omega$是$p$的单调函数,保证了$\Omega$和$p$增长的一致性,是模型易于理解。优势的取值范围在0和无穷大之间。
第二步,将$\Omega$换成$ln\Omega:ln\Omega=ln\frac{p}{1-p}$。其中,$ln\Omega$称为$logit P$.
上述的两步变换称为logit变换。经过logit变换,$logit P$的取值范围范围$-\infty\sim+\infty$,与一般线性回归模型右侧的取值范围吻合。同时$logitP$与$p$之间保持单调一致性。
至此,用等号将$logitP$和一般线性模型的右侧连接起来,得到$logit P=\beta_{0}+\beta_{1}x_{1}+\dots+\beta_{p}x_{p}$,即为逻辑回归模型。这样我们就完成从一般线性模型到逻辑回归模型的演变。
或许有人还会质疑logit变换的合理性,那么我们就继续往下扒。
从以上的推导和变换我们得到,$$ln\frac{p}{1-p}=\beta_{0}+\beta_1 x_{1}+\beta_2 x_{i}+\cdots +\beta_p x_{p}$$
故有 $p=\frac{1}{1+e^{-(\beta_{0}+\beta_1 x_{1}+\beta_2 x_{2}+\cdots +\beta_p x_{p})}}$,其为(0,1)型的Sigmoid函数,如下图所示。这是一个非线性函数,很好的体现了概率$p$与解释变量之间的非线性关系。
逻辑回归模型的解读
逻辑回归方程的右侧与一般线性回归方程的形式一致,可用类似的方法解释逻辑回归方程系数的含义,即当其他自变量保持不变时,自变量$x_i$每增加一个单位,$logitP$平均增加(或减少)$\beta_{i}$个单位。
在实际应用中,人们更关心自变量为优势$\Omega$带来的变化,其中优势$\Omega=\frac{p}{1-p}$,表示某一事件的发生概率与不发生概率之比。同时我们还会通过优势比来进行不同组别之间风险的对比分析。
在逻辑回归方程中,$\Omega=e^{(\beta_{0}+\beta_1 x_{1}+\beta_2 x_{2}+\cdots +\beta_p x_{p})}$,当其他自变量不变时,$x_{i}$每增加一个单位,优势变为原来优势的$e^{\beta_i}$倍,优势比即为$e^{\beta_i}$。
逻辑回归模型的参数估计
设y是0-1型变量,$x_{1},x_{2},\cdots ,x_{p}$是与y相关的确定性变量,n组观测数据为$(x_{i1},x_{i2},\cdots ,x_{ip};y_{i})(i=1,2,\cdots,n)$,其中,$y_{1},y_{2},\cdots ,y_{n}$是取值0或1的随机变量,$y_{i}$与$x_{i1},x_{i2},\cdots ,x_{ip}$的关系如下:
$$E(y_{i})=p_{i}=f(\beta_{0}+\beta_1 x_{i1}+\beta_2 x_{i2}+\cdots +\beta_p x_{ip})$$
其中,函数f(x)是值域在[0,1]区间内的单调增函数。对于逻辑回归
$$f(x)=\frac{e^{x}}{1+e^{x}}$$
于是$y_{i}$是均值为$p_{i}=f(\beta_{0}+\beta_1 x_{i1}+\beta_2 x_{i2}+\cdots +\beta_p x_{ip})$的0-1分布,概率函数为
$$P(y_{i}=1)=p_{i}$$
$$P(y_{i}=0)=1-p_{i}$$
可以把$y_{i}$的概率函数合写为
$$P(y_{i})=p_{i}^{y_{i}}(1-p_{i})^{1-y_{i}},y_{i}=0,1;i=1,2,\cdots,n$$
于是,$y_{1},y_{2},\cdots ,y_{n}$的似然函数为
$$L=\prod_{i=1}^{n}P(y_{i})=\prod_{i=1}^{n}p_{i}^{y_{i}}(1-p_i)^{1-y_i}$$
对似然函数取自然对数,得
$$lnL=\sum_{i=1}^{n}[y_i lnp_i+(1-y_i)ln(1-p_i)]\\
=\sum_{i=1}^{n}[y_i ln\frac{p_i}{(1-p_i)}+ln(1-p_i)]$$
对于logistic回归,将
$$p_i=\frac{e^{(\beta_{0}+\beta_1 x_{i1}+\beta_2 x_{i2}+\cdots +\beta_p x_{ip})}}{1+e^{(\beta_{0}+\beta_1 x_{i1}+\beta_2 x_{i2}+\cdots +\beta_p x_{ip})}}$$
代入得
$$lnL=\sum_{i=1}^{n}[y_i (\beta {0}+\beta_1 x_{i1}+\beta_2 x_{i2}+\cdots +\beta_p x_{ip})-ln(1+e^{(\beta_{0}+\beta_1 x_{i1}+\beta_2 x_{i2}+\cdots +\beta_p x_{ip})})]$$
最大似然估计就是选取$\beta_{0},\beta_1,\beta_2,\cdots ,\beta_p$的估计值$\hat{\beta}_0,\hat{\beta}_1,\hat{\beta}_2,\cdots,\hat{\beta}_p$,使上式最大。同时,作为一个最优化问题,可以采用梯度下降法和牛顿法等最优化算法。
逻辑回归模型的检验
逻辑回归方程的显著性检验的目的是检验所有自变量与$logitP$的线性关系是否显著,是否可以选择线性模型。原假设是假设各回归系数同时为0,自变量全体与$logitP$的线性关系不显著。如果方程中的诸多自变量对$logitP$的线性解释有显著意义,那么必然会使回归方程对样本的拟合得到显著提高。可通过对数似然比测度拟合程度是否有所提高。
我们通常采用似然比检验统计量$-ln(\frac{L}{L_{x_{i}}})^2$也可称为似然比卡方,其中$L$表示引入变量$x_{i}$前回归方程的似然函数值,$L_{x_{i}}$表示引入变量$x_{i}$后回归方程的似然函数值。似然比检验统计量越大表明引入变量$x_{i}$越有意义。如果似然比卡方观测值的概率p值小于给定的显著性水平,不接受原假设,即认为自变量全体与$logitP$之间的线性关系显著。反之,线性关系不显著。
回归系数的显著性检验
逻辑回归系数的显著性检验是检验方程中各变量与$logitP$之间是否具有线性关系。原假设是假设变量$x_{i}$与$logitP$之间的线性关系不显著,即$\beta_{i}=0$。
后记
逻辑回归虽然虽然简单,但是因为其运算过程简单,而且分类效果不会太差,所以在业界应用广泛。我们大名鼎鼎的围棋高手AlphaGo在快速走子的过程中,也有用到该算法哟。