在机器学习领域,PCA和LDA都可以看成是数据降维的一种方式。但是PCA是无监督的,也就是说不需要知道sample对应的label,而LDA是监督的,需要知道每一个数据点对应的label。下面分别解释PCA和LDA的基本原理
PCA:
PCA又称为主成分分析,这种方法可以有效的找出数据中最“主要”的元素和结构,去除噪音和冗余,将原有的复杂数据降维,揭示隐藏在复杂数据背后的简单结构。
从线形代数的角度来看,PCA的目标就是使用另一组基去重新描述得到的数据空间。而新的基要能尽量揭示原有的数据间的关系。PCA本质上就是向量换基。PCA通过对投影的距离方差的运用将降维问题转换为了求最值的问题。
LDA(Linear Discriminant Analysis):
线性判别分析,是一种监督学习的降维技术,也就是说它的数据集的每个样本是有类别输出的,这点和PCA不同。PCA是不考虑样本类别输出的无监督降维技术。LDA的思想可以用一句话概括,就是“投影后类内方差最小,类间方差最大”,如下图所示。 我们要将数据在低维度上进行投影,投影后希望每一种类别数据的投影点尽可能的接近,而不同类别的数据的类别中心之间的距离尽可能的大。
-
对新样本进行分类时,将其投影到同样的一条直线上,再根据投影点的位置来确定样本的类别。
-
再看一个例子,假设有两类数据,分别为红色和蓝色,如下图所示,这些数据特征是二维的,希望将这些数据投影到一维的一条直线,让每一种类别数据的投影点尽可能的接近,而红色和蓝色数据中心之间的距离尽可能的大。
从直观上可以看出,右图要比左图的投影效果好,因为右图的黑色数据和蓝色数据各个较为集中,且类别之间的距离明显
LDA算法既可以用来降维,又可以用来分类,但是目前来说,主要还是用于降维。在进行图像识别相关的数据分析时,LDA是一个有力的工具
两者比较:
相同点:
- 两者均可以对数据进行降维。
- 两者在降维时均使用了矩阵特征分解的思想。
两者都假设数据符合高斯分布。
不同点:
- PCA是无监督的,希望降维之后方差尽可能大
- LDA是有监督的,希望降维之后组内方差小,组间方差大
- LDA降维最多降到类别数k-1的维数,而PCA没有这个限制。
- LDA除了可以用于降维,还可以用于分类。
-
LDA选择分类性能最好的投影方向,而PCA选择样本点投影具有最大方差的方向。这点可以从下图形象的看出,在某些数据分布下LDA比PCA降维较优。