Logistics Regression 的推导(from Linear Regression)

线性回归和逻辑回归是机器学习算法中常用的两种算法,分别用于回归预测和分类问题。对于回归问题,当回归的目标变量变为离散且有限的变量时,回归问题就可以简化为分类问题,故而分类问题可以看作是回归问题在某种条件下的特例。故而,我们也可以从一些回归问题的模型中推导出分类问题的模型。本文中就将从回归问题中的简单模型 —— 线性回归(linear regression)推导出简单的分类模型逻辑回归(logistic regression)。

在简单的二分类问题中,目标值分别为 1 和 0 (或 1 和 -1)。故而可以将这种二分类任务简单地理解成估计某一事件发生的概率 P,通过对这一概率的大小的区别来达到分类的目的。因此,根据概率的定义,模型输出值$y_i$的取值范围必须满足$$0 < y_i < 1,\ 且 \sum_i y_i = 1.$$

然而,根据我们对线性回归模型的了解:$$P = f_\theta(x) = \theta^T x,$$输出值的范围应该是在$[-inf, +inf]$之间,很明显不满足于分类,尤其是二分类问题的要求。 所以为了使得线性模型在分类问题中可用,我们应该对其输出值做出限定,即:$$logistic(x) = g(f_\theta (x)) = g(\theta^T x)$$。接下来是对$g(x)$的推导。

我们可以从反面考虑,通过对分类模型的因变量值域限制的移除进行变换来反推出我们所需要的$g(x)$。

首先,选用优势比 Odds 代替概率。优势比就是时间发生概率和不发生概率之间的比值,记作:$$odds = \frac{P}{1-P}$$。通过改变换,我们可以将[0,1]之间的任意数映射到[0, +inf]之间的任意实数。但是线性回归的输出还可以是负数,故而还需要另一步变换将[0,inf]的实数域映射到整个实数域空间。

在众多非线性函数中,log函数的值域为整个实数域且单调,因此可以通过计算优势比的对数,得到前面所需要的变换: $$\eta = log(odds) = log\frac{P}{1-P} = logit(P),$$ 其中logit函数表示分对数。经过以上两步,我们已经将因变量的值域限制去掉,即将因变量的值域[0,1],映射到了一个[-inf, +inf]上。如果概率等于0,那么优势比为0,logit的值为-inf;如果概率等于1,那么优势比为+inf,logit的值也为+inf,当概率值小于0.5时,logit的值为负数,反之,为正数。

接着,我们可以通过反推,从线性回归的模型函数中得到逻辑回归的模型的数学表达: $$logit(p) = log(\frac{p}{1-p}) = \eta = f_\theta(x) = \theta^T x,$$ $$\Rightarrow p = g(x) = antilogit(x)$$ $$\Rightarrow \frac{p}{1-p} = e^\eta$$ $$\Rightarrow p = \frac{e^\eta}{1 + e^\eta} = \frac{e^{\theta^T \cdot x}}{1 + e^{\theta^T \cdot x}} = sigmoid(x)$$

讲到这里,还有一个问题是为什么要选用sigmoid函数呢?为什么不选用其他函数,如probit函数? 其实,无论是sigmoid函数还是probit函数都是广义线性模型的连接函数(link function)中的一种。选用联接函数是因为,从统计学角度而言,普通线性回归模型是基于响应变量和误差项均服从正态分布的假设,且误差项具有零均值,同方差的特性。但是,例如分类任务(判断肿瘤是否为良性、判断邮件是否为垃圾邮件),其响应变量一般不服从于正态分布,其服从于二项分布,所以选用普通线性回归模型来拟合是不准确的,因为不符合假设,所以,我们需要选用广义线性模型来拟合数据,通过标准联接函数(canonical link or standard link function)来映射响应变量,如:正态分布对应于恒等式,泊松分布对应于自然对数函数,二项分布对应于logit函数(二项分布是特殊的泊松分布)。

Reference:

机器学习-逻辑回归与最大似然估计 by Longfei Han