全球旧事资料 分类
阵就是投影矩阵,为什么这么说呢?假设PCA
降维后的样本矩阵为S1,显然,根据PCA的目的,S1中的各个维度间的协方差
基本为零,也就是说S1的协方差矩阵应该为。即满足:
S1TS1N1

1
而我们又有公式:
PTCPP1TCP11
代入可得:
S1TS1N1

1

P1T
CP1

P1T

STS
N
1

P1

SP1TSP1
N1

S1SP1S1Nd
由于样本矩阵的每一行是一个样本,特征向量矩阵的每一列是一个特征向量。
右乘相当于每个样本以的特征向量为基进行线性变换,得到的新样本矩阵中每个
样本的维数变为了p,完成了降维操作。实际上,P1中的特征向量就是低维空
间新的坐标系,称之为“主成分”。这就是“主成分分析”的名称由来。同时,
的协方差矩阵为近对角阵,说明不同维度间已经基本独立,噪声和冗余的数据已
经不见了。至此,整个PCA的过程已经结束,小小总结一下:
1形成样本矩阵,样本中心化
2计算样本矩阵的协方差矩阵
3对协方差矩阵进行特征值分解,选取最大的p个特征值对应的特征向量组
成投影矩阵
4对原始样本矩阵进行投影,得到降维后的新样本矩阵
fMatlab中PCA实战首先,随机产生一个103维的整数矩阵作为样本集,10为样本的个数,3
为样本的维数。Sfixra
d10350计算协方差矩阵:SSrepmatmea
S101CSSsizeS11orCcovS对协方差矩阵进行特征值分解:PLambdaeigC这里由于三个方差没有明显特别小的,所以我们都保留下来,虽然维度没有
降,但可以将Lambda即PCA后的样本协方差矩阵和C即原始的协方差矩阵,可以发现,3个维度上的方差都有增大,也就是能量都比原来增大了,这就是“降噪”的功劳。最后我们得到降维后的样本矩阵:
S1SP为了验证,我们调用matlab自带的主成分分析函数pri
comp:COEFFSCOREpri
compSCOEFF表示投影矩阵,SCORE表示投影后新样本矩阵对比,可以发现,SCORE和S1在不考虑维度顺序和正负的情况下是完全吻合的,之所以我们计算的S1的维度顺序不同,是因为通常都是将投影矩阵P按能量特征值的降序排列的,而刚才我们用eig函数得到的结果是升序。另外,在通常的应用中,我们一般是不使用matlab的pri
comp函数的,因为它
f不能真正的降维不提供相关参数,还是我没发现?。一般情况下,我们都是按照协方差矩阵分解后特征值所包含的能量来算的,比如取90的能量,那就从最大的特征值开始加,一直到部分和占特征值总和的90
为止,此时部分和含有的特征值个数即为p。经过了一番推公式加敲代码的过程,相信大家对主成分分析应该不陌生了吧,同时对协方差矩阵也有r
好听全球资料 返回顶部