数据科学多元统计学 08:线性和二次分类

墨尔本大学 MAST90138 课程笔记

Posted by YEY on September 22, 2020

Lecture 08 线性和二次分类

参考教材

  • Hardle, W. and Simar, L (2015). Applied multivariate statistical analysis, 4th edition.
  • Hastie, T. Tibshirani, R. and Friedman, J. (2009). The elements of statistical learning, 2nd edition

1. 引言

在分类问题中,总体中我们感兴趣的个体来自一些不同的类别 (例如:$K$ 个类别)。

例如,$K=2$:健康;患病。

我们可以从观测到的 $(X_1,G_1),\dots, (X_n, G_n)$ 中获得训练样本,其中

  • $G_i \in \{1,2,\dots,K\}$ 是第 $i$ 个观测样本的分组标签 (每个个体都刚好属于一个分组)。
  • $X_i$ 是一个解释变量 (例如,年龄、血压等),或者,更常见的是由多个变量组成的一个向量 $X_i=(X_{i1},\dots, X_{ip})^{\mathrm T}$。

问题:假设现在又来了一个新的个体,我们只观测到了它的解释变量 $X=x=(x_1,\dots,x_p)^{\mathrm T}$,但是不知道它来自哪个分组。

目标:我们需要将这个新的个体分类到正确的分组之中 (即找到其所属的分组)。这等价于找到这个新个体的分组标签 $G\in \{1,\dots, K\}$。

我们应该怎么做?

2. 主要技术思想

主要思想:将该新值 $x$ 与训练样本 $X_i$ 进行比较。

如果 $x$ 与来自分组 $k$ 中的 $X_i$ 要比来自其他分组的样本更相似,那么我们就将这个新个体分到组 $k$。

那么如何确定 $x$ 与来自分组 $k$ 中的 $X_i$ 要比来自其他分组的样本 “更相似” 呢?

对于 $k=1,\dots, K$,使用训练数据来估计在给定 $X$ 等于 $x$ 的情况下,一个个体来自组 $k$ 的概率:

\[P(G=k\mid X=x)\]

将其估计值表示为:

\[\hat P(G=k\mid X=x)\]

然后,将这个新个体分类到组 $k$,如果

\[\hat P(G=k\mid X=x) > \max_{j=1,\dots,K,j\ne k} \hat P(G=j\mid X=x)\]

存在许多不同的分类方法,但它们本质上都对应于估计上述概率的各种方式。

有两类主要方法:

  • 回归估计技术
  • 贝叶斯方法

首先介绍二分类情况下的方法,即 $K=2$(可以扩展到 $K > 2$ 个类的情况)。

在本章中:我们观测到 i.i.d. 的训练样本数据 $(X_i, G_i), i=1,\dots,n$。当我们不想突显样本这一概念时,可以用符号 $(X,G)$ 表示来自同一总体的一般个体。

3. 对于 $K=2$ 类的简单回归方法

假设所有个体都只来自 $K=2$ 个分组,那么我们可以将一个新个体分到组 $1$,如果

\[P(G=1\mid X=x) > P(G=2\mid X=x)\]

在实践中:仅给定样本 $(X_1,G_1),\dots,(X_n, G_n)$,我们需要寻找 $P(G=k\mid X=x), k=1,2$ 的估计量。

主要思想:通过回归来估计 $P(G=k\mid X=x)$。

为此,我们需要根据 $G$ 定义一个新的变量。对于 $k=1,2$,令

\[Y_k=I\{G=k\}=\begin{cases}1 & \text{if } G=k \\[2ex] 0 & \text{otherwise}\end{cases}\]

在样本级别,这意味着对于 $i=1,\dots,n$,我们定义

\[Y_{ik}=I\{G_i=k\}\]

例如:假设我们观测到的训练样本大小为 $n=7$,其中 $G_i$ 为

\[(G_1,\dots,G_7)=(1,1,1,2,2,2,1)\]

那么,对于 $i=1,\dots,n$ 和 $k=1,2$,$Y_{ik}$ 由下式给出:

\[\begin{align}(Y_{11},\dots,Y_{71}) &= (1,1,1,0,0,0,1) \\[2ex] (Y_{12},\dots,Y_{72}) &= (0,0,0,1,1,1,0)\end{align}\]

如果我们定义回归曲线

\[m_k(x)=E(Y_k \mid X=x)\]

那么,我们有

\[P(G=k\mid X=x)=E\left(I\{G=k\} \mid X=x\right)=m_k(x)\]

我们可以使用标准回归估计技术来估计 $m_k$。

由于每个个体都必须属于两组之一,因此,对于所有 $x\in \mathbb R^p$,我们有

\[P(G=1\mid X=x) + P(G=2\mid X=x) = 1\]

即,

\[m_2(x) = 1- m_1(x)\]

因此,我们只需要估计 $m_1$ (然后 $m_2$ 可由上述关系推得)。

3.1 线性回归分类器

当我们使用线性回归分类器时,我们假设

\[m_1(x)=E(Y_1\mid X=x)=P(G=1\mid X=x) = \beta_0 + \beta^{\mathrm T}x\]

使用 $\beta_0$ 和 $\beta$ 的 LS 估计量 (或者 PCR 或者 PLS;关于如何计算分类的 CV,请参见教材第 35 页) 来估计 $m_1$

\[\hat m_1(x) = \hat \beta_0 + \hat \beta^{\mathrm T} x\]

可以推得 $\hat m_2=1-\hat m_1$。

将一个新的 $x$ 分类到组 $1$,如果

\[\hat m_1(x) > \hat m_2(x) \quad \Longleftrightarrow \quad \hat \beta_0 + \hat \beta^{\mathrm T} x > 1- \hat \beta_0 - \hat \beta^{\mathrm T} x \quad \Longleftrightarrow \quad \color{red}{\hat \beta_0 + \hat \beta^{\mathrm T} x > 1/2}\]

否则,将 $x$ 分类到组 $2$。

注意:该方法依赖于线性回归模型的有效性,通常只是现实世界的一种近似。

例子:Golub 数据

Golub TR et al (1999), Molecular Classification of cancer: class Discovery and Class Prediction by gene expression monitoring, Science 286:531-7

  • 两种类型的患者,对应于两种类型的白血病 (ALL 和 AML)。
  • $X =(X_1, X_2)^{\mathrm T}$:两个已知的与白血病类型相关的基因表达。

根据估计的线性模型,我们可以得到

\[\begin{align} \hat m_1(x) &= 0.9231 + 0.2454 x_1− 0.4800 x_2 \\[2ex] \hat m_2(x) &= 0.07691 − 0.24542 x_1+ 0.47999 x_2 \approx 1 − \hat m_1(x) \end{align}\]

(其中,“$\approx$” 是由于数值误差)

区分/分类边界

分类边界是分到组 $1$ 的数据区域和分到组 $2$ 的数据区域之间的边界。它是通过求解以下方程式得到的

\[\hat m_1(x) - \hat m_2(x) = 0\]

对于线性回归分类器而言,上式等价于

\[\hat m_1(x)=1/2\]

在 Golub 数据的例子中,分类边界是通过求解下式得到的

\[0.9231 + 0.2454 x_1 − 0.4800 x_2 = 1/2\]

可以将其用以下直线表示

\[x_2 = \dfrac{0.9231 − 0.5}{0.4800} + \dfrac{0.2454}{0.4800} x_1 = 0.8815 + 0.5113 x_1\]

我们将在该直线某一侧的数据分为一类,将直线另一侧的数据分为另一类。

下图中的直线代表分类边界。训练集的 $X_i$ 来自两个分组,由不同颜色/符号表示。如果一个新观测值落在该直线下方区域,则将其分类到红色三角组;否则将其分类到黑色圆圈组。

其他例子

  • 左图:训练集中的 $X_i$,不同分组用蓝色/红色表示。
  • 右图:需要分类的新数据

这里只是一个例子。与现实生活不同,我们知道新数据的真实组类 (右图中的蓝色/红色):可以用来检查分类器的性能。

绿色直线表示根据训练集 $X_i$ 构造的决策边界:

\[\hat \beta_0 + \hat \beta_1 x_1 + \hat \beta_2 x_2 = 1/2\]

如果新数据落在该直线上方,则将其分类到组 $1$;如果落在该直线下方,则将其分类到组 $2$ (可以发现,分类器也会犯一些错误:直线上方也有一些来自蓝色组的数据)。

3.2 逻辑回归分类器

线性回归分类器的问题:我们对于 $P(G = 1 \mid X = x)$ 的估计量 $\hat \beta_0 + \hat \beta ^{\mathrm T} x$ 无法保证落在 $0$ 到 $1$ 之间,但是这里我们是在估计一个概率。

建议:使用逻辑回归,即假设

\[m_1(x)=P(G=1\mid X=x)=E(Y_1\mid X=x) =\dfrac{\exp(\beta_0 + \beta^{\mathrm T}x)}{1+ \exp(\beta_0 + \beta^{\mathrm T}x)}\]

使用根据以下训练数据得到的最大似然估计量 (MLE) $\hat \beta_0, \hat \beta$ 来估计 $\beta_0, \beta$

\[(X_1, Y_{11}),\dots,(X_n, Y_{n1})\]

(或者,可以根据需要将数据替换为其 PCA 或 PLS 成分,有关如何在分类中计算 CV,请参阅第教材第 35 页)。

注意:此方法依赖于逻辑模型假设,该假设通常只是现实世界的一种近似。

如前所述,$m_2 = 1- m_1$,即在此模型中:

\[\begin{align} m_1(x) &= P(G=1\mid X=x) = \dfrac{\exp(\beta_0 + \beta^{\mathrm T}x)}{1+ \exp(\beta_0 + \beta^{\mathrm T}x)} \\[2ex] m_2(x) &= P(G=2\mid X=x) = 1-m_1(x) = \dfrac{1}{1+ \exp(\beta_0 + \beta^{\mathrm T}x)} \end{align}\]

将一个新的 $x$ 分类到组 $1$,如果

\[\hat m_1(x) > \hat m_2(x) \quad \Longleftrightarrow \quad \exp(\hat \beta_0 + \hat \beta^{\mathrm T}x) > 1 \quad \Longleftrightarrow \quad \color{red}{\hat \beta_0 + \hat \beta^{\mathrm T}x > 0}\]

否则,将 $x$ 分类到组 $2$。

分类边界可以通过求解以下方程得到

\[\hat m_1(x) - \hat m_2(x) = 0 \quad \Longleftrightarrow \quad \exp(\hat \beta_0 + \hat \beta^{\mathrm T}x) = 1 \quad \Longleftrightarrow \quad \hat \beta_0 + \hat \beta^{\mathrm T}x = 0\]

例子:Golub 数据

  • 两种类型的患者,对应于两种类型的白血病 (ALL 和 AML)。
  • $X =(X_1, X_2)^{\mathrm T}$:两个已知的与白血病类型相关的基因表达。

根据估计的逻辑回归模型,我们可以得到

\[\hat m_1(x)=\dfrac{\exp(0.9432 + 0.5487 x_1− 10.714 x_2)}{1+ \exp(0.9432 + 0.5487 x_1− 10.714 x_2)}\]

在此示例中,分类边界可以通过求解下式得到

\[0.9432 + 0.5487 x_1 − 10.714 x_2 = 0\]

可以将其用以下直线表示

\[x_2 = \dfrac{0.9432}{10.714} + \dfrac{0.5487}{10.714} x_1 = 0.08803435 + 0.05121337 x_1\]

其他例子

  • 左图:训练集中的 $X_i$,不同分组用蓝色/红色表示。
  • 右图:需要分类的新数据

这里只是一个例子。与现实生活不同,我们知道新数据的真实组类 (右图中的蓝色/红色):可以用来检查分类器的性能。

青色直线表示根据训练集 $X_i$ 构造的决策边界:

\[\hat \beta_0 + \hat \beta_1 x_1 + \hat \beta_2 x_2 = 0\]

如果新数据落在该直线上方,则将其分类到组 $1$;如果落在该直线下方,则将其分类到组 $2$ (可以发现,分类器也会犯一些错误:直线上方也有一些来自蓝色组的数据)。

对比线性回归与逻辑回归

可以看到,逻辑回归的分类效果要优于线性回归。

4. 对于 $K=2$ 类的贝叶斯方法:线性和二次判别

另一种估计 $P(G=k\mid X=x)$ 的方法是利用贝叶斯定理。

利用贝叶斯定理,我们有

\[P(G=k\mid X=x) = \dfrac{P(X=x\mid G=k)\pi_k}{P(X=x)}\]

其中,

\[\pi_k=P(G=k)\]

需要估计训练数据集中的所有概率 $\pi_k$。

4.1 线性判别 (Linear Discriminant, LD)

对于 LD 方法,我们应用贝叶斯定理的前提是:假设 $P(X=x\mid G=k)$ 是多元正态分布 $N_p(\mu_k,\Sigma)$ 的概率密度函数。

回忆一下,$p$ 维正态分布 $N_p(\mu_k,\Sigma)$ 的概率密度函数被定义为

\[f_k(x)=(2\pi)^{-p/2} \{\mathrm{det}(\Sigma)\}^{-1/2} \exp \{-0.5(x-\mu_k)^{\mathrm T}\Sigma^{-1}(x-\mu_k)\}\]

利用前面的贝叶斯定理,可以推得一个新的个体 $X=x$ 更有可能来自组 $1$,而不是组 $2$,当且仅当

\[\begin{align} & P(G=1\mid X=x) > P(G=2\mid X=x) \\[2ex] \Longleftrightarrow \quad & P(X=x\mid G=1)\pi_1 > P(X=x\mid G=2)\pi_2 \\[2ex] \Longleftrightarrow \quad & \exp \{-0.5(x-\mu_1)^{\mathrm T}\Sigma^{-1}(x-\mu_1)\} \pi_1 > \exp \{-0.5(x-\mu_2)^{\mathrm T}\Sigma^{-1}(x-\mu_2)\} \pi_2 \\[2ex] \Longleftrightarrow \quad & 2\log(\pi_1/ \pi_2) + 2x^{\mathrm T} \Sigma^{-1}(\mu_1-\mu_2) - \mu_1^{\mathrm T} \Sigma^{-1}\mu_1 +\mu_2^{\mathrm T} \Sigma^{-1}\mu_2 > 0 \end{align}\]

如果上式条件满足,则将 $x$ 分类到组 $1$;否则将其分类到组 $2$。

这里,决策规则

\[2\log(\pi_1/ \pi_2) + 2x^{\mathrm T} \Sigma^{-1}(\mu_1-\mu_2) - \mu_1^{\mathrm T} \Sigma^{-1}\mu_1 +\mu_2^{\mathrm T} \Sigma^{-1}\mu_2 > 0\]

是一个关于 $x$ 的线性函数,因此被称为线性判别。

注意:此方法依赖于正态性和方差齐性假设 (两个组的 $\Sigma$ 相同),而这些在实践中通常是无法满足的。因此,它只是提供了一种关于现实世界的近似。

在实践中,我们并不知道 $\pi_k, \mu_k, \Sigma$,但是我们可以利用训练集数据来估计它们:

\[\hat \pi_k = n_k / n\]

其中,$n_k$ 为来自组 $k$ 的训练数据的数量。

注意:这里假设训练集数据中每个组的大小都代表了在总体中组的大小,但并非总是如此。如果我们不知道训练集中的组的大小是否具有代表性,那么采用上式计算出的 $\pi_k$ 可能存在错误估计的风险。

相反,在这种情况下,我们通常使用下式来估计 $\pi_k$:

\[\hat \pi_k = 1/K\]

(在这种情况下,对于 $K=2$,我们有 $\hat \pi_1=\hat \pi_2 = 1/2$)。

为了估计 $\mu_k$ 和 $\Sigma$,我们需要重新标记数据 $X_i$,以区分它们来自哪个组:令 $X_{i,k} \;(i=1,\dots,n_k)$ 表示所有来自组 $k$ 的 $X_i$。然后,我们有

\[\begin{align} \hat \mu_k &= \overline X_k = \dfrac{1}{n_k}\sum_{i=1}^{n_k}X_{i,k} \\[2ex] \hat \Sigma &= \dfrac{1}{n_1+n_2 -2}\sum_{k=1}^{2}\sum_{i=1}^{n_k}(X_{i,k}-\hat \mu_k)(X_{i,k}-\hat \mu_k)^{\mathrm T} \end{align}\]

分类/决策边界可以通过求解下式得到:

\[\hat m_1(x) - \hat m_2(x)=0 \quad \Longleftrightarrow \quad 2\log(\hat \pi_1/ \hat \pi_2) + 2x^{\mathrm T} \hat \Sigma^{-1}(\hat \mu_1- \hat \mu_2) - \hat \mu_1^{\mathrm T} \hat \Sigma^{-1}\hat \mu_1 + \hat \mu_2^{\mathrm T}\hat \Sigma^{-1}\hat \mu_2 = 0\]

例子:Golub 数据

  • 两种类型的患者,对应于两种类型的白血病 (ALL 和 AML)。
  • $X =(X_1, X_2)^{\mathrm T}$:两个已知的与白血病类型相关的基因表达。

其他例子

  • 左图:训练集中的 $X_i$,不同分组用蓝色/红色表示。
  • 右图:需要分类的新数据

这里只是一个例子。与现实生活不同,我们知道新数据的真实组类 (右图中的蓝色/红色):可以用来检查分类器的性能。

洋红色直线表示根据训练集 $X_i$ 构造的决策边界:

\[2\log(\hat \pi_1/ \hat \pi_2) + 2x^{\mathrm T} \hat \Sigma^{-1}(\hat \mu_1- \hat \mu_2) - \hat \mu_1^{\mathrm T} \hat \Sigma^{-1}\hat \mu_1 + \hat \mu_2^{\mathrm T}\hat \Sigma^{-1}\hat \mu_2 = 0\]

如果新数据落在该直线上方,则将其分类到组 $1$;如果落在该直线下方,则将其分类到组 $2$ (可以发现,分类器也会犯一些错误:直线上方也有一些来自蓝色组的数据)。

三种分类方法对比

如果我们令

\[\begin{align} \hat \beta_0 &= 2\log(\hat \pi_1 /\hat \pi_2) - \hat \mu_1^{\mathrm T} \hat \Sigma^{-1}\hat \mu_1 + \hat \mu_2^{\mathrm T}\hat \Sigma^{-1}\hat \mu_2 \\[2ex] \hat \beta &= 2 \hat \Sigma^{-1}(\hat \mu_1- \hat \mu_2) \end{align}\]

那么 LD 可以写为:将 $x$ 分类到组 $1$,当且仅当

\[\hat \beta_0 + x^{\mathrm T}\hat \beta > 0\]

对于线性回归,我们有:将 $x$ 分类到组 $1$,当且仅当

\[\hat \beta_0 + x^{\mathrm T}\hat \beta > 1/2\]

对于逻辑回归,我们有:将 $x$ 分类到组 $1$,当且仅当

\[\hat \beta_0 + x^{\mathrm T}\hat \beta > 0\]

这三种方法似乎看上去都一样,但是它们在构造 $\beta_0$ 和 $\beta$ 的方式上有差别。

在这三种情况下,决策/分类边界可以通过图形方式描述,即两个不同类别之间的一个线性分界:

  • LD:两个类别落在以下直线的两侧

    \[\hat \beta_0 + x^{\mathrm T}\hat \beta = 0\]
  • 线性回归:两个类别落在以下直线的两侧

    \[\hat \beta_0 + x^{\mathrm T}\hat \beta = 1/2\]
  • 逻辑回归:两个类别落在以下直线的两侧

    \[\hat \beta_0 + x^{\mathrm T}\hat \beta = 0\]

所有这三种方法所依赖的模型假设都只是对于真实情况的近似。通常来说,逻辑回归要比其他两种方法的分类效果更好。

例子 1:线性可分数据

图中直线代表决策边界:绿色表示线性回归,青色表示逻辑回归,洋红色表示 LD。

  • 左图:训练集中的 $X_i$ 与估计的线性决策边界。
  • 右图:新数据将根据该线性决策边界进行分类。

右图中,来自不同组的新数据的真实类别分别用红/蓝两种颜色表示;如果数据点落在直线下方,我们将其分类到组 $2$,否则将其分类到组 $1$。

可以看到,逻辑回归 (青色直线) 的分类效果最好。

例子 2:线性不可分数据

图中直线代表决策边界:绿色表示线性回归,青色表示逻辑回归,洋红色表示 LD。

  • 左图:训练集中的 $X_i$ 与估计的线性决策边界。
  • 右图:新数据将根据该线性决策边界进行分类。

右图中,来自不同组的新数据的真实类别分别用红/蓝两种颜色表示;如果数据点落在直线上方,我们将其分类到组 $1$,否则将其分类到组 $2$。

可以看到,三种方法都无法很好地将两个类别区分开,因此对于某些数据集,线性方法并不总是有效的。

4.2 二次判别 (Quadratic Discriminant, QD)

与 LD 一样,对于 QD 方法,我们假设 $X \mid G =k$ 是一个 $p$ 维正态变量,但区别在于,这里我们假设对于 $k = 1$ 和 $k = 2$,它们的均值 $\mu$ 和协方差 $\Sigma$ 都不相同。而在 LD 中,两组的 $\Sigma$ 是相同的。

因此,在 QD 中,组 $k$ 中的 $X$ 的概率密度函数 $P(X=x \mid G=k)$ 为

\[f_k(x)=(2\pi)^{-p/2} \{\mathrm{det}(\Sigma_k)\}^{-1/2} \exp \{-0.5(x-\mu_k)^{\mathrm T}\Sigma_k^{-1}(x-\mu_k)\}\]

这里,$x$ 更有可能来自组 $1$,而不是组 $2$,当且仅当

\[\begin{align} & P(G=1\mid X=x) > P(G=2\mid X=x) \\[2ex] \Longleftrightarrow \quad & P(X=x\mid G=1)\pi_1 > P(X=x\mid G=2)\pi_2 \\[2ex] \Longleftrightarrow \quad & \{\mathrm{det}(\Sigma_1)\}^{-1/2} \exp \{-0.5(x-\mu_1)^{\mathrm T}\Sigma_1^{-1}(x-\mu_1)\} \pi_1 \\ & \qquad > \{\mathrm{det}(\Sigma_2)\}^{-1/2} \exp \{-0.5(x-\mu_2)^{\mathrm T}\Sigma_2^{-1}(x-\mu_2)\} \pi_2 \\[2ex] \Longleftrightarrow \quad & -2\log(\pi_1) + \log \{\mathrm{det}(\Sigma_1)\} + (x-\mu_1)^{\mathrm T}\Sigma_1^{-1}(x-\mu_1) \\ & \qquad < -2\log(\pi_2) + \log \{\mathrm{det}(\Sigma_2)\} + (x-\mu_2)^{\mathrm T}\Sigma_2^{-1}(x-\mu_2) \end{align}\]

这里,决策规则

\[\begin{align} \, & -2\log(\pi_1) + \log \{\mathrm{det}(\Sigma_1)\} + (x-\mu_1)^{\mathrm T}\Sigma_1^{-1}(x-\mu_1) \\ \, & \qquad < -2\log(\pi_2) + \log \{\mathrm{det}(\Sigma_2)\} + (x-\mu_2)^{\mathrm T}\Sigma_2^{-1}(x-\mu_2) \end{align}\]

是一个关于 $x$ 的二次函数,因此被称为二次判别。

在实践中,我们通过下式估计未知的 $\mu_k$ 和 $\Sigma_k$

\[\begin{align} \hat \mu_k &= \overline X_k = \dfrac{1}{n_k}\sum_{i=1}^{n_k}X_{i,k} \\[2ex] \hat \Sigma_k &= \dfrac{1}{n_k -1}\sum_{i=1}^{n_k}(X_{i,k}-\hat \mu_k)(X_{i,k}-\hat \mu_k)^{\mathrm T} \end{align}\]

如果我们知道样本中的组大小反映了总体中的组大小,则可以通过 $\hat \pi_k = n_k / n$ 来估计 $\pi_k$,其中,$n_k$ 为来自组 $k$ 的训练数据的数量。否则,我们将取 $\hat \pi_k = 1/K$。

QD 例子:Golub 数据

  • 两种类型的患者,对应于两种类型的白血病 (ALL 和 AML)。
  • $X =(X_1, X_2)^{\mathrm T}$:两个已知的与白血病类型相关的基因表达。

例子 1:线性可分数据

图中洋红色曲线表示根据训练集中的 $X_i$ 构造的二次决策边界。

  • 左图:训练集中的 $X_i$ 与估计的二次决策边界。
  • 右图:新数据将根据该二次决策边界进行分类。

右图中,来自不同组的新数据的真实类别分别用红/蓝两种颜色表示;如果数据点椭圆边界内,我们将其分类到组 $1$,否则将其分类到组 $2$。

例子 2:线性不可分数据

图中洋红色曲线表示根据训练集中的 $X_i$ 构造的二次决策边界。

  • 左图:训练集中的 $X_i$ 与估计的二次决策边界。
  • 右图:新数据将根据该二次决策边界进行分类。

右图中,来自不同组的新数据的真实类别分别用红/蓝两种颜色表示;如果数据点椭圆边界内,我们将其分类到组 $1$,否则将其分类到组 $2$。

可以看到,对于线性不可分数据,二次判别的分类效果要优于前面三种线性方法。

4.3 QD vs LD、正则估计器、交叉验证

看起来 QD 方法比 LD 方法要好得多,那么为什么不总是使用它呢?

在 QD 方法中,我们需要估计 $K$ 个协方差矩阵 (这里我们主要研究 $K=2$ 的情况,但是可以推广到 $K > 2$ 的情况)。

如果 $p$ 很大,估计多个协方差矩阵意味着需要估计更多的参数。而当我们需要估计的参数过多时,可能会导致方法的精度降低,并且可能会使得决策 (分类) 结果不可靠。

某些版本的 QD 分析 (称为正则化 QD 分析) 会在 LD 和 QD 之间进行权衡,通过选择 $k$ 组协方差矩阵

\[\tilde \Sigma_k = \alpha \hat \Sigma_k + (1-\alpha) \hat \Sigma\]

其中,$\alpha \in [0, 1]$ 可以通过 交叉验证 (cross-validation, CV) 进行选择。

当 $p$ 很大时,即使是 $\Sigma$ 也可能涉及太多参数。这种情况下,一种正则化的版本是在 $\Sigma$ 和一个常数方差 (对于 $X$ 的所有分量都相同) 之间进行权衡

\[\tilde \Sigma = \alpha \hat \Sigma + (1-\alpha) \hat \sigma^2 I_p\]

其中,$\alpha \in [0, 1]$ 可以通过 CV 进行选择。

实现正则化的另一种方法是将数据 $X$ 替换为其 PCA 或 PLS 成分,然后通过 CV 选择需要保留的成分数量 $q$。

分类问题中的 CV 是什么?在这种情况下,我们会对 分类误差 进行估计。

什么是分类误差?令 $\hat G$ 为一个分类器,它将值为 $X$ 的个体分配给组 $\hat G$ (一个关于 $X$ 的函数);并且,令 $G$ 为该个体的真实分组。那么,该分类器的错误率为

\[\text{error} = P(\hat G\ne G) = P(\hat G \ne G \mid G=1)\pi_1 + P(\hat G \ne G \mid G=2)\pi_2\]

当然,在实践中我们无法这样计算,因为我们并不知道 $G$ (这就是为什么我们要对其进行估计的原因)。

相反,我们使用分类误差的 CV 估计量。令 $G_1,\dots, G_n$ 表示训练集中 $n$ 个个体的真实组类,并假设尽管我们知道他们的真实组,但仍将其应用于分类器,并将它们分别分类为 $\hat G_1,\dots, \hat G_n$。然后,分类误差的 留一法 (leave-one-out) CV 估计量被定义为

\[CV= \dfrac{1}{n}\sum_{i=1}^{n}I(\hat G_i^{(-i)} \ne G_i)\]

这里,$\hat G_i^{(-i)}$ 表示在不使用第 $i$ 个个体计算出分类器 $\hat G^{(-i)}$ 的情况下,$G_i$ (训练数据中第 $i$ 个个体的分类器) 的留一法估计量。例如,在 QD 方法中,我们使用除第 $i$ 个观测值外的所有观测值来估计 $\mu_k$ 和 $\Sigma_k$。

我们也可以使用 $B$-折 CV

  1. 将数据随机分为大小相等的 $B$ 个块。
  2. 对于 $b=1,\dots,B$,我们在不使用第 $b$ 个数据块的情况下计算出分类器 $\hat G^{(-b)}$。
  3. 我们将 $\hat G^{(-b)}$ 应用于第 $b$ 个块中的所有数据:$\hat G^{(-b)}(X_i)$ 表示第 $i$ 个个体 (假定其落在第 $b$ 个块中) 的分类结果,并将其与 $G_i$ 进行比较。
  4. 对所有块进行求和。

换而言之,我们计算

\[CV=\dfrac{1}{n}\sum_{b=1}^{B}\sum_{i=1}^{n}I(\hat G_i^{(-b)} \ne G_i) \cdot I\{i\text{-th individual is in block } b\}\]

这种方法的好处是我们将同样的分类器 $\hat G^{(-b)}$ 重复使用多次。

请注意,无论使用 “留一法” 还是 “$B$-折”,估计的 CV 分类误差都将通过分类器中涉及的调参实现隐式索引。

例如,如果使用教材第 33 页的正则化,则有 $CV = CV(\alpha)$。同样,如果使用 PCA/PLS,则有 $CV = CV(q)$。

我们最终选择的分类器将基于最小化 CV 估计值进行调参,例如:如果对于教材第 33 页的正则化方案,我们有

\[\hat \alpha =\mathop{\operatorname{arg\,min}}\limits_{\alpha \in [0, 1]}CV(\alpha)\]

那么,基于该特定值 $\hat \alpha$,最后的 QD 分类器将具有 $\tilde \Sigma_k$。对于 PCA/PLS,我们也会类似地选择 $\hat q$。

5. 对于 $K > 2$ 类的简单回归方法

给定 i.i.d 数据:$(X_1,G_1),\dots,(X_n,G_n)$,其中,$G_i=1,2,\dots,K$ (类别标签)。

重新编码 $G_i$:对于 $k=1,\dots,K$,令

\[Y_{ik}=I\{G_i=k\}=\begin{cases}1 & \text{if } G_i=k \\[2ex] 0 & \text{otherwise}\end{cases}\]

例如,如果有 $K=3$ 和 $n=5$,并且我们观测到

\[(G_1,G_2,G_3,G_4,G_5)=(2,3,1,1,2)\]

那么,我们可以创建

\[\begin{pmatrix}Y_{11} \\ Y_{21} \\ Y_{31} \\ Y_{41} \\ Y_{51} \end{pmatrix}=\begin{pmatrix}0 \\ 0 \\ 1 \\ 1 \\ 0 \end{pmatrix},\quad \begin{pmatrix}Y_{12} \\ Y_{22} \\ Y_{32} \\ Y_{42} \\ Y_{52} \end{pmatrix}=\begin{pmatrix}1 \\ 0 \\ 0 \\ 0 \\ 1 \end{pmatrix},\quad \begin{pmatrix}Y_{13} \\ Y_{23} \\ Y_{33} \\ Y_{43} \\ Y_{53} \end{pmatrix}=\begin{pmatrix}0 \\ 1 \\ 0 \\ 0 \\ 0 \end{pmatrix}\]

定义 $K$ 个回归曲线:对于 $k=1,\dots,K$,

\[m_k(x) = E(Y_k \mid X=x) = P(G=k\mid X=x)\]

由于 $x$ 必须来自 $K$ 个分组中的某一个 (且仅一个),我们有

\[\sum_{k=1}^{K}m_k(x)=\sum_{k=1}^{K}P(G=k \mid X=x)=1\]

因此,我们有

\[m_K(x) = 1- \sum_{j=1}^{K-1}m_j(x)\]

我们只需要通过 $\hat m_1,\dots,\hat m_{K-1}$ 估计 $m_1,\dots,m_{K-1}$,并且取

\[\hat m_K(x)=1- \sum_{j=1}^{K-1}\hat m_j(x)\]

将新的 $x$ 分类到具有最大 $\hat m_k(x)$ 的组。

5.1 对于 $K > 2$ 类的线性回归方法

重新编码数据:$(X_1, Y_{11},\dots,Y_{1K}),\dots,(X_n,Y_{n1},\dots,Y_{nK})$

定义 $K$ 个线性回归曲线:对于 $k=1,\dots,K$,

\[m_k(x) = E(Y_k\mid X=x)= \beta_{0k} + \beta_k^{\mathrm T}x = \beta_{0k} + \beta_{1k}x_1 + \cdots + \beta_{pk}x_p\]

利用 LS、PLS、PCA 或者其他方法估计 $\beta_{jk}$。例如,对于标准 LS:

\[(\hat \beta_{0k},\hat \beta_{1k},\dots,\hat \beta_{pk})^{\mathrm T} = (\mathcal X^{\mathrm T}\mathcal X)^{-1}\mathcal X^{\mathrm T}Y_k\]

其中,

\[\mathcal X=\begin{pmatrix}1 & X_{11} & \cdots & X_{1p} \\ \vdots & \vdots & & \vdots \\ 1 & X_{n1} & \cdots & X_{np}\end{pmatrix},\quad Y_k = \begin{pmatrix}Y_{1k} \\ \vdots \\ Y_{nk}\end{pmatrix}\]

对于一个 $X$ 的值为 $x=(x_1,\dots,x_p)^{\mathrm T}$ 的新个体:

  • 计算 $\hat m_1(x),\dots,\hat m_K(x)$,其中,对于 $k=1,\dots,K-1$,

    \[\hat m_k(x)=\hat \beta_{0k} +\hat \beta_{1k}x_1 + \cdots + \hat \beta_{pk}x_p\]

    以及

    \[\hat m_K(x) = 1- \sum_{j=1}^{K-1}\hat m_j(x)\]
  • 将该新个体分类到 $\hat m_1(x),\dots,\hat m_K(x)$ 中的最大值 $\hat G$:

    \[\hat G = \mathop{\operatorname{arg\,max}}\limits_{k=1,\dots,K} \hat m_k(x)\]

5.2 对于 $K > 2$ 类的逻辑回归方法

在逻辑回归中,基于 $K = 2$ 的情况,似乎可以进一步假设:对于 $k = 1,\dots,K$,

\[m_k(x)=E(Y_k \mid X=x) = P(G=k \mid X=x) = \dfrac{\exp(\beta_{0k} + \beta_k^{\mathrm T}x)}{1 + \exp(\beta_{0k} + \beta_k^{\mathrm T}x)}\]

然而,如前所述,我们必须满足 $m_1(x) + \cdots + m_K(x)=1$。

这可以通过使用以下略经修改的模型实现:对于 $k=1,\dots,K-1$,

\[m_k(x) = \dfrac{\exp(\beta_{0k} + \beta_k^{\mathrm T}x)}{1 + \sum_{\ell =1}^{K-1} \exp(\beta_{0\ell} + \beta_{\ell}^{\mathrm T}x)}\]

然后,我们取

\[m_K(x) = 1- \sum_{k=1}^{K-1}m_k(x) = 1 - \dfrac{\sum_{k=1}^{K-1} \exp(\beta_{0k} + \beta_k^{\mathrm T}x)}{1 + \sum_{\ell =1}^{K-1} \exp(\beta_{0\ell} + \beta_{\ell}^{\mathrm T}x)} = \dfrac{1}{1 + \sum_{\ell =1}^{K-1} \exp(\beta_{0\ell} + \beta_{\ell}^{\mathrm T}x)}\]

对于 $k=1, \dots, K-1$,使用最大似然估计量 $\hat \beta_{0k}$ 和 $\hat \beta_k$ 来估计 $\beta_{0k}$ 和 $\beta_k$ (同样,可以使用 PLS 成分代替),并推断出 $m_k$ 的估计量 $\hat m_k$。然后通过下式估计 $m_K(x)$

\[\hat m_K(x) = 1- \sum_{k=1}^{K-1}\hat m_k(x)\]

将新个体分类到 $\hat m_1(x),\dots,\hat m_K(x)$ 中的最大值 $\hat G$:

\[\hat G = \mathop{\operatorname{arg\,max}}\limits_{k=1,\dots,K} \hat m_k(x)\]

但是,实际上我们并不需要计算 $\hat m_k$,因此也不需要计算指数。其实,要找到最大值,我们可以在不同组之间进行两两比较。

我们可以计算

\[\begin{align} \log \dfrac{P(G=1\mid X=x)}{P(G=K \mid X=x)} &= \log \dfrac{m_1(x)}{m_K(x)} = \beta_{01} + \beta_1^{\mathrm T}x \\[2ex] \log \dfrac{P(G=2\mid X=x)}{P(G=K \mid X=x)} &= \log \dfrac{m_2(x)}{m_K(x)} = \beta_{02} + \beta_2^{\mathrm T}x \\[2ex] \vdots \\[2ex] \log \dfrac{P(G=K-1\mid X=x)}{P(G=K \mid X=x)} &= \log \dfrac{m_{K-1}(x)}{m_K(x)} = \beta_{0,K-1} + \beta_{K-1}^{\mathrm T}x \end{align}\]

例如,假设 $K > 5$ 并且 $P(G=5 \mid X=x)$ 是最大值。然后我们将有

\[m_5(x) > m_K(x) \quad \Longleftrightarrow \quad \log \dfrac{m_5(x)}{m_K(x)} > 0\]

并且,对于所有 $k\ne 5$,

\[m_k(x) < m_5(x) \quad \Longleftrightarrow \quad \dfrac{m_k(x)}{m_K(x)} < \dfrac{m_5(x)}{m_K(x)} \quad \Longleftrightarrow \quad \log \dfrac{m_k(x)}{m_K(x)} < \log \dfrac{m_5(x)}{m_K(x)}\]

因此,我们可以仅根据这些对数比做出决策。

对于 $K = 2$ 的情况,这是一种线性方法。

5.3 对于 $K > 2$ 类的 LD 和 QD 方法

利用相同的思想,LD 和 QD 方法可以推广到 $K> 2$ 类的情况。

令 $\pi_1 = P(G=1),\dots,\pi_K = P(G=K)$。

  • LD:将一个新观测 $x$ 分类到能够最大化下式的组 $k$ 中

    \[\delta_k(x) = x^{\mathrm T}\hat \Sigma^{-1} \hat \mu_k - \dfrac{1}{2}\hat \mu_k^{\mathrm T} \hat \Sigma^{-1} \hat \mu_k + \log \hat \pi_k\]
  • QD:将一个新观测 $x$ 分类到能够最大化下式的组 $k$ 中

    \[\delta_k(x) = \log(\hat \pi_k) - \dfrac{1}{2}\log\{\mathrm{det}(\hat \Sigma_k)\} - \dfrac{1}{2}(x-\hat \mu_k)^{\mathrm T} \hat \Sigma_k^{-1}(x-\hat \mu_k)\]

与在 $K = 2$ 组的情况下一样,为简单起见,我们重新标记数据 $X_i$,以区分它们来自哪个组:$X_{i,k}\;(i=1,\dots,n_k)$ 表示来自组 $k$ 的所有 $X_i$。

$\hat \pi_k = n_k/ n$ 是整个训练数据集中来自组 $k$ 的数据所占比例,

\[\begin{align} \hat \mu_k &= \overline X_k = \dfrac{1}{n_k} \sum_{i=1}^{n_k} X_{i,k} \\[2ex] \hat \Sigma_k &= \dfrac{1}{n_k-1} \sum_{i=1}^{n_k} (X_{i,k} - \hat \mu_k)(X_{i,k} - \hat \mu_k)^{\mathrm T} \\[2ex] \hat \Sigma &= \dfrac{1}{n_1 + \cdots + n_K - K} \sum_{k=1}^{K} \sum_{i=1}^{n_k} (X_{i,k} - \hat \mu_k)(X_{i,k} - \hat \mu_k)^{\mathrm T} \end{align}\]

下节内容:分类和回归树 (CART)

知识共享许可协议本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。 欢迎转载,并请注明来自:YEY 的博客 同时保持文章内容的完整和以上声明信息!