LDA和QDA

Σ = [ Var ( x 1 ) Cov ( x 2 , x 1 ) … Cov ( x n , x 1 ) Cov ( x 1 , x 2 ) Var ( x 2 ) … Cov ( x n , x 2 ) ⋮ ⋮ ⋱ ⋮ Cov ( x 1 , x n ) Cov ( x 2 , x n ) … Var ( x n ) ] \Sigma = \begin{bmatrix} \text{Var}(x_1) & \text{Cov}(x_2, x_1) & \dots & \text{Cov}(x_n, x_1) \\ \text{Cov}(x_1, x_2) & \text{Var}(x_2) & \dots & \text{Cov}(x_n, x_2) \\ \vdots & \vdots & \ddots & \vdots \\ \text{Cov}(x_1, x_n) & \text{Cov}(x_2, x_n) & \dots & \text{Var}(x_n) \end{bmatrix} Σ= Var(x1)Cov(x1,x2)Cov(x1,xn)Cov(x2,x1)Var(x2)Cov(x2,xn)Cov(xn,x1)Cov(xn,x2)Var(xn)

每个元素有不同的含义:

  • 对角线上的元素 Var ( x i ) \text{Var}(x_i) Var(xi) 表示变量 x i x_i xi 的方差。
  • 对角线以外的元素 Cov ( x i , x j ) \text{Cov}(x_i, x_j) Cov(xi,xj) 表示变量 x i x_i xi x j x_j xj 之间的协方差。

LDA 与 QDA 矩阵计算中的区别

1. LDA(线性判别分析)中的协方差矩阵

LDA(线性判别分析) 中,虽然协方差矩阵假设所有类别是相同的,但这并不意味着我们可以随便选择一个类别来计算协方差矩阵。LDA 的协方差矩阵是基于所有数据的整体协方差来计算的,而不是单独基于某个类别的数据。具体来说,LDA 要使用所有类别的样本数据来估计一个共享的协方差矩阵,从而反映数据的整体结构。

LDA 中协方差矩阵的计算方法

在 LDA 中,协方差矩阵是基于所有类别的样本点计算出来的,它是一个加权平均协方差矩阵。该协方差矩阵 Σ \Sigma Σ 结合了所有类别的信息,而不是单独某个类别的信息。计算公式为:

Σ = 1 N ∑ k = 1 K ∑ i ∈ C k ( x i − μ k ) ( x i − μ k ) ⊤ \Sigma = \frac{1}{N} \sum_{k=1}^{K} \sum_{i \in C_k} (\mathbf{x}_i - \boldsymbol{\mu}_k)(\mathbf{x}_i - \boldsymbol{\mu}_k)^\top Σ=N1k=1KiCk(xiμk)(xiμk)

其中:

  • N N N 是所有样本的总数(包含所有类别的样本),
  • K K K 是类别的数量,
  • C k C_k Ck 表示类别 k k k 的样本集合,
  • x i \mathbf{x}_i xi 是类别 C k C_k Ck 中第 i i i 个样本的特征向量,
  • μ k \boldsymbol{\mu}_k μk 是类别 C k C_k Ck 的均值向量。
分步理解:
  1. 对每个类别 C k C_k Ck,计算样本与该类别均值的差 ( x i − μ k ) (\mathbf{x}_i - \boldsymbol{\mu}_k) (xiμk),然后计算差向量的外积 ( x i − μ k ) ( x i − μ k ) ⊤ (\mathbf{x}_i - \boldsymbol{\mu}_k)(\mathbf{x}_i - \boldsymbol{\mu}_k)^\top (xiμk)(xiμk)
  2. 对所有类别的样本进行加权求和,最终得到整体协方差矩阵 Σ \Sigma Σ

为什么需要结合所有类别来计算协方差矩阵?

LDA 假设所有类别共享同一个协方差矩阵,这是基于以下假设:

  • 不同类别的样本在数据特征空间中有相似的分布结构,即它们的分布形状(协方差)是一样的,尽管它们的均值不同。
  • 协方差矩阵应该反映整个数据集的整体结构,因此必须使用所有类别的数据进行估计,而不是仅仅使用某个类别的数据。

因此,LDA 并不是计算某个类别的协方差矩阵,而是计算所有类别数据的整体协方差矩阵。这是为了确保模型能够适应不同类别的整体分布情况,而不仅仅是某个类别的局部分布。

2. QDA(二次判别分析)中的协方差矩阵

在 QDA 中,不同类别的协方差矩阵不再相同。每个类别 C 1 C_1 C1 C 2 C_2 C2 都有自己的协方差矩阵 Σ 1 \Sigma_1 Σ1 Σ 2 \Sigma_2 Σ2,即:
Σ 1 ≠ Σ 2 \Sigma_1 \neq \Sigma_2 Σ1=Σ2
这意味着对于不同的类别,特征之间的方差和协方差结构可以是不同的。因此,在 QDA 中,协方差矩阵是分别对每个类别的数据进行计算的。

QDA 协方差矩阵公式

在 QDA 中,协方差矩阵是基于每个类别的样本计算的,公式如下:
Σ k = 1 N k ∑ i ∈ C k ( x i − μ k ) ( x i − μ k ) ⊤ \Sigma_k = \frac{1}{N_k} \sum_{i \in C_k} (\mathbf{x}_i - \boldsymbol{\mu}_k)(\mathbf{x}_i - \boldsymbol{\mu}_k)^\top Σk=Nk1iCk(xiμk)(xiμk)
其中:

  • N k N_k Nk 是类别 C k C_k Ck 的样本数量,
  • x i \mathbf{x}_i xi 是属于类别 C k C_k Ck 的第 i i i 个样本的特征向量,
  • μ k \boldsymbol{\mu}_k μk 是类别 C k C_k Ck 的均值向量。

决策边界

LDA 为什么使用相同的协方差矩阵?

使用相同协方差矩阵的假设使得决策边界是线性的。具体来说,LDA 假设特征的分布是高斯分布,并且各类别的协方差矩阵相同,这样当我们求解分类决策边界时,最终得到的分类边界是一个线性方程,因此分类边界是线性的。这样的假设虽然比较简单,但在实践中效果往往不错,尤其是在样本数量较少的情况下,这种简化模型有助于防止过拟合。

与 QDA(二次判别分析)的对比

相比之下,二次判别分析(Quadratic Discriminant Analysis, QDA)不假设所有类别共用同一个协方差矩阵。QDA 中,每个类别有自己的协方差矩阵 Σ 𝑘 ,因此模型会更灵活,能够适应类别间不同的分布形状和方向。由于不再假设相同的协方差矩阵,QDA 的决策边界是二次曲线而非直线。

为什么 C 1 C_1 C1 C 2 C_2 C2 的协方差矩阵可能不相等?

在现实世界的分类问题中,不同类别的数据可能有不同的分布特征。这种情况下,特征之间的方差和协方差可能会随类别而变化。

举个例子:

假设我们要分类两种不同的动物:猫和狗。它们的特征可能包括体重、身高、毛发长度等。对于猫来说,体重和身高之间的关系可能较弱,协方差值较小。而对于狗来说,体重和身高之间的关系可能较强,协方差值较大。因此,猫和狗的协方差矩阵 Σ 1 \Sigma_1 Σ1 Σ 2 \Sigma_2 Σ2 可能会不同。

结论:

当不同类别的数据分布形状差异较大时,假设协方差矩阵相同是不合理的。因此,在这种情况下,使用不同的协方差矩阵 Σ 1 \Sigma_1 Σ1 Σ 2 \Sigma_2 Σ2 更能捕捉到类别之间的差异。这就是为什么在 QDA 中允许每个类别有自己的协方差矩阵。


LDA 和 QDA 的判别函数公式

(1) LDA 判别函数公式

LDA 假设所有类别共用同一个协方差矩阵 Σ \Sigma Σ,即 Σ 1 = Σ 2 = ⋯ = Σ \Sigma_1 = \Sigma_2 = \dots = \Sigma Σ1=Σ2==Σ。判别函数(discriminant function)为:

δ k ( x ) = x ⊤ Σ − 1 μ k − 1 2 μ k ⊤ Σ − 1 μ k + log ⁡ p ( C k ) \delta_k(\mathbf{x}) = \mathbf{x}^\top \Sigma^{-1} \boldsymbol{\mu}_k - \frac{1}{2} \boldsymbol{\mu}_k^\top \Sigma^{-1} \boldsymbol{\mu}_k + \log p(C_k) δk(x)=xΣ1μk21μkΣ1μk+logp(Ck)

其中:

  • x \mathbf{x} x 是待分类的样本向量,
  • μ k \boldsymbol{\mu}_k μk 是类别 C k C_k Ck 的均值向量,
  • Σ \Sigma Σ 是所有类别共用的协方差矩阵,
  • p ( C k ) p(C_k) p(Ck) 是类别 C k C_k Ck 的先验概率。

这个公式的结果是一个线性判别边界,因此 LDA 的决策边界是线性的

(2) QDA 判别函数公式

在 QDA 中,不同类别的协方差矩阵 Σ k \Sigma_k Σk 是不相等的。其判别函数为:

δ k ( x ) = − 1 2 log ⁡ ∣ Σ k ∣ − 1 2 ( x − μ k ) ⊤ Σ k − 1 ( x − μ k ) + log ⁡ p ( C k ) \delta_k(\mathbf{x}) = -\frac{1}{2} \log |\Sigma_k| - \frac{1}{2} (\mathbf{x} - \boldsymbol{\mu}_k)^\top \Sigma_k^{-1} (\mathbf{x} - \boldsymbol{\mu}_k) + \log p(C_k) δk(x)=21logΣk21(xμk)Σk1(xμk)+logp(Ck)

其中:

  • x \mathbf{x} x 是待分类的样本向量,
  • μ k \boldsymbol{\mu}_k μk 是类别 C k C_k Ck 的均值向量,
  • Σ k \Sigma_k Σk 是类别 C k C_k Ck 的协方差矩阵,
  • ∣ Σ k ∣ |\Sigma_k| Σk 是协方差矩阵的行列式,
  • p ( C k ) p(C_k) p(Ck) 是类别 C k C_k Ck 的先验概率。

由于协方差矩阵 Σ k \Sigma_k Σk 不同,QDA 的判别边界包含二次项,因此 QDA 的决策边界是二次曲线


公式中的每个部分解释

  • x ⊤ Σ − 1 μ k \mathbf{x}^\top \Sigma^{-1} \boldsymbol{\mu}_k xΣ1μk x ⊤ Σ k − 1 ( x − μ k ) \mathbf{x}^\top \Sigma_k^{-1} (\mathbf{x} - \boldsymbol{\mu}_k) xΣk1(xμk):这些项表示样本 x \mathbf{x} x 相对于类别均值 μ k \boldsymbol{\mu}_k μk 的“距离”,并且考虑了特征的协方差关系。

  • log ⁡ ∣ Σ k ∣ \log |\Sigma_k| logΣk:这是协方差矩阵的行列式,对应着类别分布的“扩展范围”。行列式越大,表示数据分布越宽广。这个项在 QDA 中存在,在 LDA 中,由于协方差矩阵相同,该项会被消去。

  • log ⁡ p ( C k ) \log p(C_k) logp(Ck):类别 C k C_k Ck 的先验概率,如果某个类别的先验概率更大(即样本更常见),这个项会提高该类别的判别函数值。


什么时候使用 LDA 或 QDA?

  • 使用 LDA 的场景:

    • 当各个类别的样本数据有相似的分布形状和范围时,LDA 更适合。
    • LDA 模型较为简单,参数较少,因此在数据较少的情况下有较好的表现。
  • 使用 QDA 的场景:

    • 当不同类别的样本数据有明显不同的分布形状和范围时,QDA 更为合适。
    • QDA 允许不同类别有各自的协方差矩阵,因此它更灵活,但同时需要更多的参数估计,适合数据量较大的情况。

总结

  • LDA 假设所有类别共享相同的协方差矩阵 Σ \Sigma Σ,决策边界是线性的。
  • QDA 允许每个类别有不同的协方差矩阵 Σ k \Sigma_k Σk,因此决策边界是二次曲线的。
  • 选择 LDA 还是 QDA 取决于数据的分布情况:如果类别分布相似,用 LDA;如果类别分布差异大,用 QDA。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值