全球旧事资料 分类
维度间的相关性以及个维度上的方差啊!那有什么数据结构能同时表现不同维度间的相关性以及各个维度上的方差呢?自然是非协方差矩阵莫属。回忆下《浅谈协方差矩阵》的内容,协方差矩阵度量的是维度与维度之间的关系,而非样本与样本之间。协方差矩阵的主对角线上的元素是各个维度上的方差即能量,其他元素是两两维度间的协方差即相关性。我们要的东西协方差矩阵都有了,先来看“降噪”,让保留下的不同维度间的相关性尽可能小,也就是说让协方差矩阵中非对角线元素都基本为零。达到这个目的的方式自然不用说,线代中讲的很明确矩阵对角化。而对角化后得到的矩阵,其对角线上是协方差矩阵的特征
f值,它还有两个身份:首先,它还是各个维度上的新方差;其次,它是各个维度本身应该拥有的能量能量的概念伴随特征值而来。这也就是我们为何在前面称“方差”为“能量”的原因。也许第二点可能存在疑问,但我们应该注意到这个事实,通过对角化后,剩余维度间的相关性已经减到最弱,已经不会再受“噪声”的影响了,故此时拥有的能量应该比先前大了。看完了“降噪”,我们的“去冗余”还没完呢。对角化后的协方差矩阵,对角线上较小的新方差对应的就是那些该去掉的维度。
所以我们只取那些含有较大能量特征值的维度,其余的就舍掉即可。PCA的本质其实就是对角化协方差矩阵。
下面就让我们跟着上面的感觉来推推公式吧。假设我们有一个样本集X,里面有N个样本,每个样本的维度为d。即:
XX1XNXixi1xidRdi1N
将这些样本组织成样本矩阵的形式,即每行为一个样本,每一列为一个维度,
得到样本矩阵S:SNd。我们先将样本进行中心化,即保证每个维度的均
值为零,只需让矩阵的每一列除以对应的均值即可。很多算法都会先将样本中心化,以保证所有维度上的偏移都是以零为基点的。然后,对样本矩阵计算其协方差矩阵,按照《浅谈协方差矩阵》里末尾的update,我们知道,协方差矩阵可
以简单的按下式计算得到:CSTSCddN1
下面,根据我们上文的推理,将协方差矩阵C对角化。注意到,这里的矩阵
C是是对称矩阵,对称矩阵对角化就是找到一个正交矩阵P,满足PTCP。具体操作是:先对C进行特征值分解,得到特征值矩阵对角阵即为,得到特征向量矩阵并正交化即为P。显然Pdd。假如我们取最大的前ppd
f个特征值对应的维度,那么这个p个特征值组成了新的对角阵,对应的p个特征
向量组成了新的特征向量矩阵P1dd。
实际上,这个新的特征向量矩r
好听全球资料 返回顶部