1 PCA
PCA(Principal Component Analysis) 是一种常见的数据分析方式,常用于高维数据的降维,可用于提取数据的主要特征分量。
关于PCA的原理强烈推荐这篇文章 PCA的数学原理
2 LDA
之前我们讨论的 PCA降维,对样本数据来言,可以是没有类别标签 y 的。如果我们做回归时,如果特征太多,那么会产生不相关特征引入、过度拟合等问题。我们可以使用PCA 来降维,但 PCA 没有将类别标签考虑进去,属于无监督的。
LDA是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的。LDA的基本思想:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点中心尽可能远离。更简单的概括为一句话,就是“投影后类内方差最小,类间方差最大”。
可能还是有点抽象,我们先看看最简单的情况。假设我们有两类数据分为 “+”和“-”,如下图所示,这些数据特征是二维的,我们希望将这些数据投影到一维的一条直线,让每一种类别数据的投影点尽可能的接近,而“+”和“-”数据中心之间的距离尽可能的大。
具体数学推导过程可见这篇博文 Dimensionality Reduction——LDA线性判别分析原理篇
LDA算法的优点
- 在降维过程中可以使用类别的先验知识经验,而像PCA这样的无监督学习无法使用先验知识;
- LDA在样本分类信息依赖均值而不是方差的时候,比PCA算法较优。
LDA算法的缺点
- LDA与PCA均不适合对非高斯分布样本进行降维
- LDA降维算法最多降到类别数K-1的维度,当降维的维度大于K-1时,则不能使用LDA。当然目前有一些改进的LDA算法可以绕过这个问题
- LDA在样本分类信息依赖方差而非均值的时候,降维效果不好
- LDA可能过度拟合数据
3 PCA和LDA比较
LDA与PCA都可用于降维,因此有很多相同的地方,也有很多不同的地方
相同点:
- 两者均可用于数据降维
- 两者在降维时均使用了矩阵特征分解的思想
- 两者都假设数据符合高斯分布
不同点:
- LDA是有监督的降维方法,而PCA是无监督降维方法
- 当总共有K个类别时,LDA最多降到K-1维,而PCA没有这个限制
- LDA除了用于降维,还可以用于分类
- LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。这点可以从下图形象的看出,在某些数据分布下LDA比PCA降维较优(如下图的左图)。当然,某些数据分布下PCA比LDA降维较优(如下图的右图)。LDA不适合对非高斯分布样本进行降维,PCA也有这个问题。