多变量的大数据含丰富的信息,但也增加数据分析工作量。更重要的是在很多情形下,许多变量之间可能存在相关性,从而增加问题的复杂性。
找到合理方法,减少分析的指标同时,尽量减少原指标包含信息的损失,以达到对所收集数据进行全面分析的目的。
由于各变量之间存在一定的相关关系,因此可以考虑将关系紧密的变量变成尽可能少的新变量,使这些新变量是两两不相关的,那么就可以用较少的综合指标分别代表存在于各个变量中的各类信息。PCA就属于这类降维算法。
PCA概述
1.用途:通过线性变换将原始数据变换为一组各维度线性无关,用于提取数据的主要特征分量,主要用于高维数据的降维。
2.目标:提取最有价值的信息(基于方差)——低维中能够更好概括数据。
3.问题:降维后的意义?
降维前:数据有实际的物理意义。
降维后:矩阵变换,导致物理意义也随着消失,要的是结果而不是过程。根据Eigenvalues从大到小排序,使前几个维度能够解释大部分方差变异。
4.属于无监督问题:即便不知道每一类数据标签是什么,也可以用PCA。不是基于标签而是基于方差。
总体思路:
流程图PCA算法:
总结一下PCA的算法步骤:
设有M条N维数据。
1)将原始数据按列组成N行M列矩阵X。
2)将X的每行每个数进行归一化(零均值化),即减去这一行的均值
3)求出X协方差矩阵:
注:对角线上的元素为方差,其他元素为协方差,协方差越大,两者对彼此影响也就越大(降维也不好分出来),所以要求降维后的数据协方差为0.
4)求出协方差矩阵的特征值及对应的特征向量。
5)根据特征值从大—小,将特征向量从上到下按行排列成矩阵。
注:特征值体现当前特征向量重要程度。
注:若要降到R为则取前R行组成P。
6)Y=PX即为降维到k维后的数据
意义:将X矩阵中的每一个列向量变换到P矩阵每一行的行向量为基所表示的空间里。
7)为什么可以这么做?[Y即为降到K维后的合理]
Y的协方差矩阵可以化为:
因为协方差矩阵为实对称矩阵,可以进行对角化:
即Y矩阵的协方差矩阵对角线外的元素(协方差均为0),说明互相之间的影响小,降维后能分出来。
网友评论