主成分分析(PCA)和线性判别分析(LDA)是两个非常重要的降维技术,广泛应用于模式识别、机器学习、图像处理等领域。本文将以PCA为重点,深入探讨其基本思想、计算方法及其局限性,并简要介绍LDA的特点。
PCA的基本思想是寻找数据所在的低维子空间。当数据存在于一个低维子空间中时,例如二维空间中的1D子空间,或者三维空间中的2D子空间,在从高维空间视角观察时,它会显得非常扁平。如果我们拟合一个高斯分布到这些数据上,等概率轮廓线会呈现出高度倾斜的椭圆形。在PCA中,数据的均值与坐标系有关,可以通过数据中心化使得均值为零,以便进行后续分析。PCA通过找到数据协方差矩阵的特征向量(主成分)和特征值(主长度),消除那些具有小特征值的维度,从而实现降维。
PCA的计算可以通过奇异值分解(SVD)来实现。具体操作步骤如下:
1) 创建中心化数据矩阵,即原始数据矩阵X的每一列减去其均值;
2) 对中心化后的数据矩阵进行奇异值分解;
3) 主成分即为分解得到的U矩阵的列向量,特征值即为奇异值的平方。
在实际应用中,自然会选择那些能够解释大部分数据方差的特征向量。通过绘制累积贡献率作为特征向量数量的函数,可以决定需要保留的特征向量的数量。例如,我们可能只需要3个特征向量来覆盖数据集70%的方差。
然而,PCA的一个主要局限性在于它并不是分类问题的最佳选择。PCA定义中没有提到类别标签,仅仅保持最大能量(方差)的维度是一个好主意,但并不总是足够的。虽然PCA能够改进密度估计,因为它将空间缩小到更小的维度,但这在分类任务中可能会是有害的,因为判别性的维度可能被丢弃。很容易构造出PCA表现糟糕的例子,甚至可能是最糟糕的选择。
另一方面,Fisher线性判别分析(LDA)是一个优化了分类效果的降维方法,与PCA不同,它在寻找数据最佳表示时考虑了类别标签信息。LDA的核心思想是寻找一个特征空间,在这个空间中,相同类别的样本点尽可能近,不同类别的样本点尽可能远。这种降维技术非常适合于处理模式识别任务,特别是当不同类别具有相似的方差但不同的均值时。
LDA的实现通常通过求解广义特征值问题,找到最大化类别间散度矩阵与类别内散度矩阵比率的投影方向。在实际计算中,会考虑类别的先验概率,并且需要保证投影后的数据依然保持足够的可区分性。
总结来说,PCA和LDA都是线性降维技术,但它们在处理数据时的目标不同。PCA旨在最大化数据集的方差,而LDA则更注重于类别间的区分性。在计算机视觉和模式识别中,这两种技术都非常重要,常常根据具体任务的需求选择使用。PCA在数据预处理、压缩和可视化方面有广泛应用,而LDA则通常用于提高分类器性能的场合。了解两者的区别及其适用场景对于实际应用至关重要。