主成分分析(学习笔记)

主成分分析:principal component analysis(PCA)由卡尔皮尔逊于1901年提出,是一种分析,简化数据的技术,主要用于降低数据的维数,并且在这个过程中,

保持数据集中的对方差贡献最大的特征

具体操作:首先对数据集的协方差矩阵进行特征分解,得到数据集的主成分(特征向量)相对应的权值(特征值)。我们要在降低数据维数的过程中,使数据集的信息丢失尽可能的小,这等价于在原数据集中除掉最小的特征值所对应的成分,从而对方差的影响尽可能的小。

接下来,闲言少叙,直接上简明的数学过程:

假设我们有一个数据集:X1, X2, ………Xk, 每一个样本为n维的列向量(a,b,c,d,....,n),每一行(维度)都代表了一个特征。

现在利用PCA的方法使其降低到m个维度。


1. 去中心化



即数据集的每一个样本都减去样本均值,这样做之后数据每一个维度的均值都变为了0。


2. 计算去中心化后的数据集的协方差矩阵


这里除以k-1的原因呢,这里暂且借用看到的一句话:

是因为这样能使我们以较小的样本集更好的逼近总体的标准差,即统计上所谓的“无偏估计。https://blog.csdn.net/shenziheng1/article/details/52955687


3. 计算矩阵C的特征值以及特征向量


其中S为对角线矩阵,对角线上所对应的元素为特征值;V矩阵每一列为对应特征值的特征向量。

注意!!!

因为C是对称矩阵,所以得到的不同的特征值所对应的特征向量都是相互正交的。


4. 挑选主导的特征值,完成数据降维

从n个特征值中挑选最大的m个,将对应的特征向量组成矩阵M(n×m维),有



其中原数据集A为n×k矩阵,得到的降低维度后的新数据集A’为m×k矩阵。



总结

从我个人理解来看,PCA的本质就是通过计算特征值来去除多维数据内部相关性的过程

在实际当中我们面对的数据可以达到成千上万维,有些数据相关性很高,直接处理他们会产生大量的重复性计算。首先计算协方差,了解数据不同特征之间的相关性;再通过计算协方差矩阵的特征值并选取m<n组尽可能大的不同的值对应的特征向量。这样我们便可以除掉一些互相关联也就是说会有重复的信息,保留下来的特征独立并且还能很好的表现原始数据。同时从另一个角度看,对数据特征方差影响较小,构建起的新数据集还能够有效地降低维度。总体讲,是一个协方差矩阵维度不断减小且对角线元素不断增大,非对角线元素不断减小甚至为0的过程。


参考资料:

1. https://en.wikipedia.org/wiki/Principal_component_analysis

2. https://blog.csdn.net/dfdfdsfdfdfdf/article/details/53166769 (一篇关于特征值分解的博客)







已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页