结合PCA和LDA是否有意义?


25

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

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

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

例如:

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

要么

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

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


2
不可能有普遍性best practice。PCA和LDA作为降维技术非常不同。有时人们会在LDA之前使用PCA,但是它有丢弃(与丢弃的PC)重要的区分尺寸的风险。您提出的问题实际上已经在此站点上以某种形式多次提出。请搜索“ PCA LDA”,以阅读人们的评论。
ttnphns 2014年

@SebastianRaschka:我想知道我在这里的答案是否有用,或者您对这些问题还有其他疑问吗?
变形虫说恢复莫妮卡2014年

@amoeba对不起,它直到现在都没有找到答案-不知何故它一定已经溜走了,谢谢!

Answers:


44

简介:可以在LDA之前执行PCA,以解决问题并避免过度拟合。

回想一下,LDA投影是通过,其中和是类内和类间协方差矩阵。如果少于数据点(其中是您空间的维数,即特征/变量的数量),则将是,因此无法反转。在这种情况下,根本无法直接执行LDA,但是如果先应用PCA,它将起作用。@Aaron在对他的答复的评论中表达了这一观点,我同意这一点(但总体上不同意他的回答,正如您现在将看到的)。ΣW1ΣBΣ Ñ ÑΣWΣBNNΣW

但是,这只是问题的一部分。更大的情况是,LDA很容易导致数据过拟合。请注意,类内协方差矩阵在LDA计算中。对于高维矩阵,反演是一个非常敏感的运算,只有在的估计值确实很好的情况下,才能可靠地完成。但是,在高维,实在是很难获得的准确估计,并在实践中人们常常必须有很多超过数据点开始希望估计是不错的。否则 Ñ » 1 Σ w ^ Ñ Σ w ^ΣWN1ΣWNΣW 将会几乎是奇异的(即某些特征值会非常低),这将导致过度拟合,即训练数据上的近乎完美的班级分离以及测试数据上的机会表现。

为了解决这个问题,需要对问题进行规范化处理。一种方法是首先使用PCA降低尺寸。还有其他可能更好的方法,例如正则化LDA(rLDA)方法,它仅使用加上小而不是(这称为收缩估算器)),但从概念上讲,首先进行PCA是最简单的方法,并且通常效果很好。λ Σ w ^(1λ)ΣW+λIλΣW

插图

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

在LDA中过度拟合

请注意,随着维数的增长,类之间的分隔越来越好,而实际上,类之间没有区别

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

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

过度拟合(顶部行)仍然很明显。但是,如果我使用PCA预处理数据,始终保持10个维度(下一行),则过度拟合会消失,而各类仍保持接近最佳的分离状态。

PS。为避免误解:我并不是说PCA + LDA是一个很好的正则化策略(相反,我建议使用rLDA),我只是在表明这是一种可能的策略。


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

另请参见此问题和一些好的答案:


真的,这是一个很好的答案!在解释基本理论的同时,您也有一个很好的实践解释,这是我的参考文献的另一个很好的答案。非常感谢!

我不理解第二个情节,在我看来,在LDA(下排)之前,类与PCA并没有分开
PierreE

@PierreE,在第二个图上生成类,以使它们几乎不分离。分离很小。在底行中,您可以看到这种细微的分离,但您需要仔细观察:关注蓝色和红色类,您将看到一个向左移动,另一个向右移动。
变形虫说恢复莫妮卡

好的我明白了。我忘记了我们在第一行看到的类分离实际上是过拟合的。谢谢
PierreE

1

如果您遇到两类问题,那么LDA会将您降至1维。没有理由先进行PCA。


1
嗯,我在这里不遵循您的推理:我可以肯定,LDA不会使您降低到一维,除非您选择这样做。这取决于通过减小值对特征值进行排序后希望保留多少个特征向量。也许我在这里错过了一些东西……但是我没有提到课程的数量。假设我们有3个类,每个类具有20个功能,我想将它们投影到3D子空间上。

1
首先进行PCA的唯一原因是类内协方差矩阵是否为奇异。如果您有20个功能和3个类,那么它不会是单个的,因此请不要先进行PCA。
亚伦2014年

4
assume we have 3 classes。@SebastianRaschka:然后LDA最多允许您使用2个判别函数。LDA中的特征值数目为min(num_groups-1,num_features)。
ttnphns 2014年

@Sebastian从LDA中选择的判别函数的数量取决于您要对其进行的处理。作为空间转换,它几乎就像“受监管的” PCA,您可以根据需要选择任意数量。作为超平面分离分类方法,根据定义,超平面的尺寸为N-1。我可能会问一个关于该主题的问题,以获取更多信息,因为我仍然不知道消息的min(num_groups-1,num_features)来源...
Matthieu

1
@Matthieu我相信这是由于类之间的散布矩阵,您可以通过添加c(c =类数)个秩为1或小于1的矩阵来创建它。因此,最多只能有c-1个非零特征值。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.