简介:可以在LDA之前执行PCA,以解决问题并避免过度拟合。
回想一下,LDA投影是通过,其中和是类内和类间协方差矩阵。如果少于数据点(其中是您空间的维数,即特征/变量的数量),则将是,因此无法反转。在这种情况下,根本无法直接执行LDA,但是如果先应用PCA,它将起作用。@Aaron在对他的答复的评论中表达了这一观点,我同意这一点(但总体上不同意他的回答,正如您现在将看到的)。Σ− 1w ^Σ乙Σ 乙 Ñ ÑΣw ^Σ乙NNΣW
但是,这只是问题的一部分。更大的情况是,LDA很容易导致数据过拟合。请注意,类内协方差矩阵在LDA计算中被求反。对于高维矩阵,反演是一个非常敏感的运算,只有在的估计值确实很好的情况下,才能可靠地完成。但是,在高维,实在是很难获得的准确估计,并在实践中人们常常必须有很多超过数据点开始希望估计是不错的。否则 Ñ » 1 Σ w ^ Ñ Σ w ^ΣWN≫1ΣWNΣW 将会几乎是奇异的(即某些特征值会非常低),这将导致过度拟合,即训练数据上的近乎完美的班级分离以及测试数据上的机会表现。
为了解决这个问题,需要对问题进行规范化处理。一种方法是首先使用PCA降低尺寸。还有其他可能更好的方法,例如正则化LDA(rLDA)方法,它仅使用加上小而不是(这称为收缩估算器)),但从概念上讲,首先进行PCA是最简单的方法,并且通常效果很好。λ Σ w ^(1−λ)ΣW+λIλΣW
插图
这是过度拟合问题的说明。我从10维,50维,100维和150维空间中的标准高斯分布(均值零,单位方差)分为3类,每类生成60个样本,然后应用LDA将数据投影到2D上:
请注意,随着维数的增长,类之间的分隔越来越好,而实际上,类之间没有区别。
如果我们使类稍微分开,我们可以看到PCA如何帮助防止过度拟合。我在第一类的第一坐标上添加了1,在第二类的第一坐标上添加了2,在第三类的第一坐标上添加了3。现在它们已稍微分开,请参见左上方的子图:
过度拟合(顶部行)仍然很明显。但是,如果我使用PCA预处理数据,始终保持10个维度(下一行),则过度拟合会消失,而各类仍保持接近最佳的分离状态。
PS。为避免误解:我并不是说PCA + LDA是一个很好的正则化策略(相反,我建议使用rLDA),我只是在表明这是一种可能的策略。
更新。先前在以下线程中讨论了非常相似的主题,并提供了@cbeleites提供的有趣而全面的答案:
另请参见此问题和一些好的答案:
best practice
。PCA和LDA作为降维技术非常不同。有时人们会在LDA之前使用PCA,但是它有丢弃(与丢弃的PC)重要的区分尺寸的风险。您提出的问题实际上已经在此站点上以某种形式多次提出。请搜索“ PCA LDA”,以阅读人们的评论。