Logistic Regression

概述

线性回归和逻辑回归虽然名字中都有回归,但是线性回归是一种回归算法,而逻辑回归是一种分类算法,逻辑回归的预测结果是分类变量。比如,判断一封邮件是不是垃圾邮件。

模型

逻辑回归的模型是 Sigmoid 函数 $ y = \frac{1}{1+e^{-z}}$。我们假设一种情况,当 $y = ax + b$ 左侧的 y 变成一个二分类,那么$y \in (0, 1)$,但是此时右侧的 $ax + b \in (-\infty, +\infty)$,很明显两侧关系不对等。为了继续使用线性回归的思想,我们需要把右侧的 $ ax + b$ 也压缩到 $(0, 1)$ 区间。

为什么使用 Sigmoid 函数

在推导之前,我们先引入一个概念叫做比值比(优势比) $Odds = \frac{P}{1-P}$,从比值比的公式我们可以看出来,比值比的含义就是事件发生的概率比事件不发生的概率。我们在逻辑回归模型中,$y$ 就优势比,所以这里 $y = \frac{P}{1-P}$,但是我们线性回归的方程是 $ax + b$,怎样用一个公式可以把 $ax + b$ 转换为 $(0, 1)$ 区间并且和 $Odds$ 关联起来呢,这里就要引入 Logit 变换。

假设 $z = \theta^{T}x$,

$P(y = 1 | x) = \frac{1}{1 + e^{-z}}$

$P(y = 0 | x)= 1 - P(y = 1 | x) = 1- \frac{1}{1 + e^{-z}} = \frac{e^{z}}{e^{z}} - \frac{1}{1 + e^{-z}} = \frac{e^{z}(1 + e^{-z}) - e^{z}}{e^{z}(1 + e^{-z})} = \frac{1}{1 + e^{z}}$

$Odds = \frac{P(y = 1 | x)}{P(y = 0 | x)} = \frac{P(y = 1 | x)}{1 - P(y = 1 | x)} = \frac{1 + e^{z}}{1 + e^{-z}} = \frac{e^{z}(1 + e^{z})}{e^{z}(1 + e^{-z})} = \frac{e^{z}(1 + e^{z})}{1 + e^{z}} = e^{z}$

$\ln\frac{P(y = 1 | x)}{P(y = 0 | x)} = g(x) = z = \theta^Tx$

以上就是 Logistic 到线性方程的推导。

Question

为什么使用 $ y = \frac{P}{1-P}$,而不是用 $y = P$ ?

首先我们分析一下线性回归和逻辑回归的数据,线性回归的样本输出都是连续值 $ y \in (-\infty, +\infty)$,而逻辑回归的样本输出是 $$y \in (0, 1)$$,只能取 0 和 1。如果要直接通过回归的方法去预测二分类问题,最好的函数是单位阶跃函数,但是单位阶跃函数是一个不连续的函数,而 Sigmoid 的函数图像和单位阶跃函数的函数图像非常像,且连续,所以我们使用 Sigmoid 函数。

其实我们所求的 $y$ 并不是一个具体的事件发生的概率,而是要具体到 0 或者 1。我们思考一下,针对事件 $E$,如果 $P(E) = P(E’)$,那么 $Odds(E) = \frac {P(E)}{P(E’)} = 1$,此时 $P(E) = P(E’) = 0.5$,

sigmoid

上图为 Sigmoid 函数图,已知 $z = ax + b = \theta ^ TX$,我们可以看出,

当 $z > 0$ 时,$y > 0.5$,若 $z → +\infty$,则 $y → 1$,即 $y$ 为 1 类,即会发生;

当 $z < 0$ 时,$y < 0.5$,若 $z → -\infty$,则 $y → 0$,即 $y$ 为 0 类,即不会发生。

至此就可以看出,我们已经将线性公式转换成了 $(0, 1)$ 的二分类。

所以 $\frac{P}{1-P}$ 其实是一条决策边界,我们是用比值比让 $y$ 值无线逼近于决策边界来判断这个 $y$ 值到底属于哪个区域。

另一个层面来解释,$\frac{P}{1-P}$ 中,若一件事发生的概率越大,那么分子越大,分母越小,这个比值比也会越大,若一件事发生的概率越小,那么分子越小,分母越大,这个比值比也会越小,更显著的体现了这个 $y$ 值的意义。

总结:在线性回归中 $\theta^TX$ 为预测值的拟合函数,是对 $f(x)$ 的输出变量 $y$ 的拟合,在逻辑回归中 $\theta^TX = 0$ 为决策边界,是对 1 类的样本的概率的拟合。

损失函数

LR 的损失函数是对数似然函数。

参数的计算

$P(y = 1 | x;\theta) = h_\theta(x)$
$P(y = 0 | x;\theta) = 1 - h_\theta(x)$
上述两个公式可以得出,
$P(y | x;\theta) = (h_\theta(x))^{y}(1 - h_\theta(x))^{1-y}$

当样本独立同分布时,可得

$L(\theta) = \prod_{i=1}^n P(y_i | x_i;\theta) = \prod_{i=1}^n(h_\theta(x_i))^{y_i}(1 - h_\theta(x_i))^{1 - y_i}$

我们的目的是求出使得这一似然函数值最大的参数估计,最大的似然估计就是求出参数 $\theta_0, \theta_1,…,\theta_n$,使得 $L(\theta)$ 最大,对 $L(\theta)$ 取对数得,

$l(\theta) = \ln L(\theta) = \sum_{i = 1}^n(y_i\ln h_\theta(x_i) + (1 - y_i)\ln (1 - h_\theta(x_i)))$

这里的 $l(\theta)$ 就是 Logistic Regression 的损失函数。这里 $l(\theta)$ 对每个 $\theta$ 求导,得,

$\frac{\partial}{\partial \theta_j}l(\theta) = (y\frac{1}{g(\theta^Tx)} - (1 - y)\frac{1}{1 - g(\theta^Tx)})\frac{\partial}{\partial \theta_j}g(\theta^Tx)$

其中对于 $\frac{1}{1 + e^{-z}}$ 求导,将 $y = \frac{1}{1 + e^{-z}}$ 转换为 $e^{-z} = \frac{1 - y}{y}$,

$\frac{\partial}{\partial \theta_j} \frac{1}{1 + e^{-z}} = \frac{e^{-x}}{(1 + e^{-x})^{2}}$,此时将 $e^{-z}$ 代入,

$\frac{\partial}{\partial \theta_j} \frac{1}{1 + e^{-z}} = \frac{e^{-x}}{(1 + e^{-x})^{2}} = y (1 - y)$

所以,$\frac{\partial}{\partial \theta_j}l(\theta) = (y\frac{1}{g(\theta^Tx)} - (1 - y)\frac{1}{1 - g(\theta^Tx)})\frac{\partial}{\partial \theta_j}g(\theta^Tx) = (y \frac{1}{g(\theta^Tx)} - (1 - y)\frac{1}{1 - g(\theta^Tx)})g(\theta^Tx)(1 - g(\theta^Tx))\frac{\partial}{\partial \theta_j}\theta^Tx = (y -h_\theta(x))x_j$

如上式,如果特征较多,且数据量较大,那么直接对 $\theta$ 求偏导,需要联立一组个数为 $n + 1$ 的方程组,这种方法比较麻烦,并不能直接求出 $\theta$ 的值。

如何求 $\theta$ 的值

通常情况下,求得 $\theta$ 的值有两种常用的方法,梯度下降法牛顿法与拟牛顿法。这里不做太多说明,下一次再详细介绍用这两种方法如何求 $\theta$ 的值。

关于 LR

优点

  1. 广泛用于分类问题
  2. 不要求自变量和因变量是线性关系,可以处理各种类型的关系

缺点

  1. 需要大量样本
  2. 自变量之间不应该相互关联,即不具有多重共线性,因为似然要求样本独立

多重共线性

多重共线性(Multicollinearity)是指线性回归模型中的解释变量之间由于存在精确相关关系或高度相关关系而使模型估计失真或难以估计准确。

解决方案

  1. 排除引起共线性的变量:找出引起多重共线性的解释变量,将它排除出去,比如逐步回归法
  2. 差分法:时间序列数据、线性模型,将原模型变换为差分模型
  3. 减小参数估计量的方差:岭回归法

与线性回归的关系

  1. 前边已经说到了,将线性回归的值域映射到了 $(0, 1)$ 之间
  2. 减少了离群点对预测值的影响

多分类问题

通常采用 One-vs-All 的方法来实现多分类,本质是将多分类问题转化为了多次二分类问题。

假定有 $n$ 个特征

  1. 随机选择一个特征作为正样本,即视为“1”分类,其他全部视作负样本
  2. 用数据集进行训练后可以得到这个特征的决策边界

给定输入后,为确定分类,需要分别计算,越趋近于 1,越接近这个分类。