PCA降维的整体步骤
- 对原始数据减去平均值,实现去中心化。
- 求出样本空间中N个样本的样本协方差矩阵(XXT)。
- 利用SVD奇异值分解(适用于任意矩阵) 或 特征值分解(只适用于方阵)对样本协方差矩阵进行特征向量,特征值的分解。
- 对特征值进行降序排列,选出最大的K个,并将这K个特征值对应的特征向量组合成空间转移矩阵P(P的每一行代表了一个特征向量,P的维度:K*N)。
- 将P左乘原特征空间中的样本,P左乘X(Nm),得到新特征空间中的样本 Y(Km),实现降维的功能。从上述结果可以看出,这是对样本空间进行降维,而每个样本的特征个数m是不变的。
如上述步骤中提到的,SVD进行奇异值分解有很大的好处。
- 第一:根据其特性,分解的特征向量被分为左特征向量和右特征向量。左特征向量功能和特征分解得到的特征向量功能是一致的。而右特征向量可以对每个样本的特征个数m进行降维。
- 第二:根据其特性,SVD对奇异值分解不需要对XXT特征空间协方差矩阵进行计算,这对处理样本空间过大的问题时,能够有效提升算法效率。
LDA降维的整体步骤
相同点:
- 两者在降维时都使用了特征分解的思想 ,PCA主要是从特征的协方差角度,去找到比较好的投影方式。LDA更多的是考虑了标注,即希望投影后不同类别之间数据点的距离更大,同一类别的数据点更紧凑。
- 两者都假设数据符合高斯分布,因此LDA和PCA都不适合对非高斯分布的样本进行降维 。下图中红色区域表示一类样本,蓝色区域表示另一类,由于是2类,所以最多投影到1维上。不管在直线上怎么投影,都难使红色点和蓝色点内部凝聚,类间分离。
不同点:
- LDA是有监督的降维方法,降维过程中可以使用类别的先验知识经验,而PCA不行。
- LDA选择分类性能最好的投影方向,而PCA选择最大方差的投影方向,因此LDA有过拟合的风险。
- LDA最多能降到N−1的维数,如果降维维度大于N−1,则不能使用LDA,而PCA没有这个限制 。N-1表示矩阵的秩的最大个数。
- 当样本分类信息依赖均值时LDA效果较好;依赖方差的时候PCA效果较好。下图中,样本点依靠方差信息进行分类,而不是均值信息。LDA不能够进行有效分类,因为LDA过度依靠均值信息。
下图可以看出:
LDA在样本分类信息依赖方差而不是均值的时候,降维效果不好
LDA在样本分类信息依赖均值而不是方差的时候,比PCA之类的算法较优。