简介
逻辑回归常用来处理分类问题,最常用来处理二分类问题。
生活中经常遇到具有两种结果的情况(冬天的北京会下雪,或者不会下雪;暗恋的对象也喜欢我,或者不喜欢我;今年的期末考试会挂科,或者不会挂科……)。对于这些二分类结果,我们通常会有一些输入变量,或者是连续性,或者是离散型。那么,我们怎样来对这些数据建立模型并且进行分析呢?
我们总是试图来构造一些规则,从我们的输入变量来猜测出二分类的结果。然而,简单的给一个回答“是”或者“不是”显得太过粗鲁,尤其是当我们没有完美的规则的时候。总之呢,我们不希望给出的结果就是武断的“是”或“否”,我们希望能有一个概率来表示我们的结果。
一个很好的想法就是,在给定输入\(X\)的情况下,我们能够知道Y的条件概率$$Pr(Y|X)。一旦给出了这个概率,我们就能够知道我们预测结果的准确性。
让我们把其中一个类称为1,另一个类称为0。(具体哪一个是1,哪一个是0都无所谓。)\(Y\)变成了一个指示变量,现在,你要让自己相信,\(Pr(Y=1)=EY\),类似的,\(Pr(Y=1|X=x)=E[Y|X=x]\)。一句话,条件概率是就是指示变量的条件期望。这对我们有帮助,因为从这个角度上,知道所有关于条件期望的估计。我们要做的最直接的事情是挑选出我们喜欢的平滑器,并估计指示变量的回归函数,这将是条件概率函数的估计。
有两个理由让我们放弃陷入上述想法。第一,概率必须介于0和1之间,但是我们在上面估计出来的平滑函数的输出结果却不能保证如此;第二,我们想更好地利用我们试图估计概率的事实,通过更明确的概率建模。
假设\(Pr(Y=1|X=x)=p(x;\theta)\),\(p\)是参数为\(\theta\)的函数。进一步,假设我们的所有观测都是相互独立的,那么条件似然函数可以写成:
\[\prod _{i=1}^nPr(Y=y_i|X=x_i)=\prod _{i=1}^np(x_i;\theta)^{y_i}(1-p(x_i;\theta))^{1-y_i}\]
回忆一下,对于一系列的伯努利试验\(y_1,y_2,\cdots,y_n\),如果成功的概率都是\(p\),那么似然函数为:
\[\prod _{i=1}^n p^{y_i}(1-p)^{1-y_i}\]
我们知道,当\(p=\hat{p}=\sum _{i=1}^ny_i/n\)是,似然函数取得最大值。
如果每一个试验的成功概率是\(p_i\),那么似然函数就变成了
\[\prod _{i=1}^n p_i^{y_i}(1-p_i)^{1-y_i}\]
不添加任何约束的通过最大化似然函数来估计上述模型是没有意义的。当\(\hat{p_i}=1\)的时候,\(y_i=1\),当\(\hat{p_i}=0\)的时候,\(y_i=0\)。我们学不到任何东西。如果我们假设所有的\(p_i\)不是任意的数字,而是相互连接在一起的,这些约束给我们提供了一个很重要的参数,我们可以通过这个约束来求得似然函数的最大值。对于我们正在讨论的这种模型,约束条件就是\(p_i=p(x_i;\theta)\),当\(x_i\)相同的时候,\(p_i\)也必须相同。因为我们假设的\(p\)是未知的,因此似然函数是参数为\(\theta\)的函数,我们可以通过估计\(\theta\)来最大化似然函数。
逻辑回归
我们为什么不能与线性回归来解决上述问题呢?
- 最简单的一个想法就是令\(p(x)\)为线性函数。无论\(x\)在什么位置,\(x\)每增加一个单位,\(p\)的变化量是一样的。由于线性函数不能保证预测结果位于0和1之间,因此从概念上线性函数就不适合。另外,在很多情况下,根据我们的经验可知,当\(p\)很大的时候,对于\(p\)的相同的变化量,\(x\)的变化量将会大于