基于特征值分解协方差矩阵实现PCA降维

感谢原文作者,博客写的非常好,我这里将我需要的部分提取出来记录一下。

 

多变量的大数据集可以为研究提供丰富的信息,但是处理起来复杂度太高,并且其中一些数据之间具有相关性,如果将这些大量的具有相关性的数据,用少量的各自独立的数据来表示,将会降低复杂度,并且不丢失有用的信息。也就是降维。降维的算法有很多,比如奇异值分解(SVD)、主成分分析(PCA)、因子分析(FA)、独立成分分析(ICA)。

 

PCA(主成分分析算法),是一种应用普遍的数据降维算法,PCA的主要思想是将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。找出这样的k组坐标轴,可以发现,大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面k个含有绝大部分方差的坐标轴。这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。

 

协方差矩阵可以刻画特征之间的相关性,协方差为正时,说明X和Y是正相关关系;协方差为负时,说明X和Y是负相关关系;协方差为0时,说明X和Y是相互独立。Cov(X,X)就是X的方差。当样本是n维数据时,它们的协方差实际上是协方差矩阵(对称方阵)方差、协方差之间的关系如下:

基于特征值分解协方差矩阵实现PCA降维_第1张图片

 

得到协方差矩阵的特征值特征向量有两种方法:特征值分解协方差矩阵、奇异值分解协方差矩阵

所以PCA算法有两种实现方法:基于特征值分解协方差矩阵实现PCA算法、基于SVD分解协方差矩阵实现PCA算法。

(1)基于特征值分解协方差矩阵实现PCA算法如下:

基于特征值分解协方差矩阵实现PCA降维_第2张图片

(2)基于奇异值分解协方差矩阵见:https://blog.csdn.net/qq_32172681/article/details/99191092

 

计算矩阵特征值和特征向量的方法参考博客:https://blog.csdn.net/baidu_38172402/article/details/82312967

 

你可能感兴趣的:(机器学习,PCA,主成分分析算法)