将 PCA 和 LDA 结合起来有意义吗?

机器算法验证 分类 主成分分析 正则化 判别分析 过拟合
2022-02-12 00:14:27

假设我有一个用于监督统计分类任务的数据集,例如,通过贝叶斯分类器。该数据集包含 20 个特征,我想通过降维技术(例如主成分分析 (PCA) 和/或线性判别分析 (LDA))将其归结为 2 个特征。

两种技术都将数据投影到较小的特征子空间:使用 PCA,我会找到最大化数据集中方差的方向(组件)(不考虑类标签),而使用 LDA,我将拥有最大化之间的组件-阶级分离。

现在,我想知道这些技术是否、如何以及为什么可以组合,以及它是否有意义。

例如:

  1. 通过 PCA 转换数据集并将其投影到新的 2D 子空间
  2. 通过 LDA 转换(已经 PCA 转换的)数据集最大。班内分离

或者

  1. 跳过 PCA 步骤并使用 LDA 中的前 2 个组件。

或任何其他有意义的组合。

2个回答

总结:PCA可以在LDA之前进行,以规范问题,避免过拟合。

回想一下,LDA 投影是通过特征分解计算的ΣW1ΣB, 在哪里ΣWΣB是类内和类间协方差矩阵。如果少于N数据点(其中N是您空间的维度,即特征/变量的数量),然后ΣW将是单数,因此不能倒置。在这种情况下,根本没有办法直接执行 LDA,但如果先应用 PCA,它就会起作用。@Aaron 在对他的回复的评论中发表了这一评论,我同意这一点(但一般不同意他的回答,正如您现在将看到的那样)。

然而,这只是问题的一部分。更大的图景是 LDA 很容易过度拟合数据。请注意,类内协方差矩阵在 LDA 计算中被反转对于高维矩阵,反演是一个非常敏感的操作,只有在估计ΣW真的很好。但在高维度N1, 很难得到准确的估计ΣW,在实践中,一个人通常必须拥有N数据点开始希望估计是好的。除此以外ΣW将几乎是奇异的(即某些特征值将非常低),这将导致过度拟合,即在训练数据上具有近乎完美的类分离,而在测试数据上具有偶然性能。

为了解决这个问题,需要规范化这个问题。一种方法是首先使用 PCA 来降低维度。还有其他可以说更好的方法,例如正则化 LDA (rLDA) 方法,它简单地使用(1λ)ΣW+λI与小λ代替ΣW(这称为收缩估计器),但首先进行 PCA 在概念上是最简单的方法,并且通常效果很好。

插图

这是过度拟合问题的说明。我从 10 维、50 维、100 维和 150 维空间中的标准高斯分布(均值零,单位方差)生成了 3 个类中的每个类 60 个样本,并应用 LDA 将数据投影到 2D 上:

LDA 中的过拟合

注意随着维度的增长,类变得越来越好分离,而实际上类之间没有区别

如果我们将类稍微分开,我们可以看到 PCA 如何帮助防止过拟合。我在第一类的第一个坐标上加了 1,在第二类的第一个坐标上加了 2,在第三类的第一个坐标上加了 3。现在它们稍微分开了,请参见左上角的子图:

LDA 中的过拟合和 PCA 的正则化

过度拟合(顶行)仍然很明显。但是,如果我使用 PCA 对数据进行预处理,始终保持 10 维(底行),那么过度拟合就会消失,而类仍然接近最佳分离。

PS。为了防止误解:我并不是说 PCA+LDA 是一个好的正则化策略(相反,我建议使用 rLDA),我只是在证明它是一种可能的策略。


更新。之前在以下主题中讨论了非常相似的主题,@cbeleites 提供了有趣而全面的答案:

另请参阅此问题并提供一些很好的答案:

如果您有两个类别的问题,那么 LDA 会将您降到 1 维。没有理由先做 PCA。