在高维数据上工作会碰到很多问题:分析很困难,解读起来困难,不能可视化,对于数据的存储也很昂贵。高维数据还是值得研究,比如有些维度是冗余,某一个维度其实是可以被其他几个维度的组合进行解释。正因为某些维度是相关的,所以高维数据内在有更低维的结构。降维方法就是探索数据的内在相关性生成一个压缩后的数据,同时尽可能减少信息的损失。所以降维方法也可以看做是一个压缩方法,类似于jpeg,mp3对于图片和音乐的压缩。
主成分分析是一种线性降维,由Pearson和Hotelling提出已经有上百年了,仍然最常用的数据压缩和数据可视化的方法,可以用于识别简单的模式,隐藏的因素和高维数据的结构。
我们知道一个n维向量x到一个单位向量$omega$上的投影是$omega^{T}x$, 假如有d个正交的基坐标形成新的子空间,向量x在这个d维的子空间(坐标系)下的投影变为$z = B^{T}x$,其中$B=[omega_{1}, omega_{2}, ..., omega_{d}]$ 是一个n*d的矩阵,这样n维向量x映射成为了一个d维向量。我们的目标就是找到这么一个合适的B,使得新的向量接近于原向量。
从方差的角度看,主成分分析可以认为是在子空间里面最大化数据的方差,这样可以让信息保留得尽可能地多。计算$omega^{T}x$的方差, $D(x)=w^{T}(frac{1}{n}sum{x*x^{T}})w = w^{T} Sigma w$,其中$Sigma$是协方差矩阵,约束条件是 $w^{T}*w=1$。通过拉格朗日变换得到拉格朗日对偶问题
$L=w^{T}(frac{1}{n}sum{x*x^{T}})w + lambda(1-w^{T}w)$, 对w和$lambda$求偏导
$frac{vartheta L}{vartheta w}=2 w^{T}sum - 2lambda w^{T}$
$frac{vartheta L}{vartheta lambda}=1 - w^{T}*w$
让偏导为0,可以得到 $Sigma w = lambda w$, 并且 $D(x) = lambda$,于是x在特征向量w方向上的投影都是方差的极值点,此时方差的大小就是特征值的大小。