分享

深入理解PCA算法

 算法与编程之美 2020-08-08

我们处于信息爆炸的时代中,我们所面对的数据不仅数量大,而且这些数据往往具有较高的维度,引起“维度灾难”。这些高维度数据中有大部分对于我们是不需要,因此实现数据降维是非常必要的。

PCAPrincipal Component Analysis)算法,即主成分分析方法,是机器学习中重要的数据降维方法,通过获取数据的主要投影方向实现数据向主要特征方向上的映射,最终达到数据降维、去噪的效果。下面将对其数学推导过程进行展示: 假设有一个mn列的数据X,表示m个元素,每个元素有n个属性。

这些点都是按各自的坐标分布于空间中。若存在若干方向上的向量,这些点均可以向这些向量上进行投影,则会有多种不同的投影方式,有些向量上的投影点比较分散,而有些向量上的投影较为密集。如图所示:

从上图可以看出,数据点在L1方向上的投影较为扁平,而在L2方向上的投影较为圆润。事实上,若投影点过于密集,使用模型来将这些数据点进行有效的区分时将会带来较大的困扰,因此,我们认为在某个方向上的投影点越分散,那么这个方向就被认为是更主要的一个方向。使用什么标准来衡量来点的分散程度呢?答案就是:方差。

设有多个向量,则数据点在各个向量上的投影分别为,即投影后的数据为X * U。那么方差作为目标函数可以表示为:

假设所有投影数据已经实现了中心化,那么XU的期望值为0,即:E(XU) = 0;因此:

由于各个方向上的投影向量数据不一致,为使在计算过程中,只关注投影的方向而忽略其他数据影响,需要对U进行单位化,即要求|U| = 1,等价于UTU =1,将UTU =1作为约束条件使用拉格朗日乘数法构建函数为:

对U求偏导,因为XTX是对称阵,可以得到:

即:

根据特征值的定义,所求得的U即为矩阵XTX求取特征值后所对应的特征向量,也就是求得的映射主要方向。

关于映射方向可以有两种解释:

第一种解释是:因为UTU =1,则U为正交矩阵,那么U中的每个向量均两两正交;

第二种解释是:因为XTX是对称阵,那么其不同特征值对应的特征向量丙两正交。这两种方法都解释了书上所说的,为什么第一个方向取方差最大的方向,第二方向取垂直于第一个方向的方向,第三个方向取垂直于由第一方向、第二方向共同构成平面方向。最后将原数据在这些U对应的方向上进行投影来代替原数据,就实现了数据的降维和去噪。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多