一:PCA算法目的
根据样本矩阵X={x1,x2,…, Xm},以及当前样本空间中样本个数N,求得样本协方差矩阵XXT,中的最大的K个特征向量,并且利用这K个特征向量组成的矩阵进行低纬度降维,实现数据的主成分分析。
二:PCA降维的整体步骤
(1)对原始数据减去平均值,实现去中心化。
(2)求出样本空间中N个样本的样本协方差矩阵(XXT)。
(3)利用SVD奇异值分解(适用于任意矩阵) 或 特征值分解(只适用于方阵)对样本协方差矩阵进行特征向量,特征值的分解。
(4)对特征值进行降序排列,选出最大的K个,并将这K个特征值对应的特征向量组合成空间转移矩阵P(P的每一行代表了一个特征向量,P的维度:K*N)。
(5)将P左乘原特征空间中的样本,P左乘X(N*m),得到新特征空间中的样本 Y(K*m),实现降维的功能。从上述结果可以看出,这是对样本空间进行降维,而每个样本的特征个数m是不变的。
(note)如上述步骤中提到的,SVD进行奇异值分解有很大的好处。第一:根据其特性,分解的特征向量被分为左特征向量和右特征向量。左特征向量功能和特征分解得到的特征向量功能是一致的。而右特征向量可以对每个样本的特征个数m进行降维。第二:根据其特性,SVD对奇异值分解不需要对XXT特征空间协方差矩阵进行计算,这对处理样本空间过大的问题时,能够有效提升算法效率。
三:相关知识点
(1)协方差矩阵
由上面的公式,我们可以得到以下结论:
(1) 方差的计算公式是针对一维特征,即针对同一特征不同样本的取值来进行计算得到;而协方差则必须要求至少满足二维特征;方差是协方差的特殊情况,即自己和自己的协方差。
(2) 方差和协方差的除数是n-1,这是为了得到方差和协方差的无偏估计。
协方差为正时,说明X和Y是正相关关系;协方差为负时,说明X和Y是负相关关系;协方差为0时,说明X和Y是线性相互独立。Cov(X,X)就是X的方差。当样本是n维数据时,它们的协方差实际上是协方差矩阵(对称方阵)。例如,对于3维数据(x,y,z),计算它的协方差就是:
(2)SVD奇异值分解算法
https://mp.weixin.qq.com/s/Dv51K8JETakIKe5dPBAPVg
(3)特征值最大的K个到底代表了什么
PCA有种通俗易懂的解释:最大方差理论。在信号处理中认为信号具有较大的方差,噪声有较小的方差,信噪比就是信号与噪声的方差比,越大越好。样本在u1上的投影方差较大,在u2上的投影方差较小,那么可认为u2上的投影是由噪声引起的。因此我们认为,最好的k维特征是将n维样本点转换为k维后,每一维上的样本方差都很大。