PCA怎么玩儿

2020-01-29  本文已影响0人  cheerss

本文的思路:先说明PCA的目的,然后达到目的思路,以及有了思路以后我们可以利用什么工具,最后把工具集成到思路中。

PCA要干嘛

PCA的名字叫做主要成分分析,顾名思义就是找出向量中的主要成分。那么什么才是主要成分?我认为这个主要的定义取决于你的目的,PCA的目的是数据降维的,我们对数据降维的基本要求就是,维度要降下来,但是数据之间依然要能相互区分。因此,降维就是要删掉大家共有的信息,留下各自独有的信息(这一点和信息论中出现越多的信息量越小的观点类似)。

举个例子:考虑以下一组二维点:(9, 1), (25, 1), (7, 1), (-6, 1)。如果让你选择删掉一个维度,应该删哪个呢?当然是第二个,因为第二个维度大家都一样,即使删掉第二个维度的数字各个点依然泾渭分明,有很大的区分度,但是如果删掉第一个维度,所有点的坐标就剩下个1,全都一样了,数据的信息也就丢失了。

如果情况变得更加复杂一点,如下图。数据点并非简单的沿着坐标轴变化很小,而是沿着F_2变化很小,沿着F_1
变化很大,所以不能简单地丢掉坐标中的某一维度,而需要用PCA来解决。通过PCA变换,将数据从2维降维到1维。此时我们称F_1是主要成分,F_2是次要成分。

当然,PCA可以处理的是任意N维的数据,将其降维到n(n<N)维空间,这里用N=2,n=1举例,其他高维的情况是类似的。

PCA应该怎么干

通过上述两个例子可以发现,主要成分的方向其实也就是方差最大的方向。所以我们的目的就是要找出方差最大的方向。

那就先求呗,先把所有点各个维度的方差都求出来得到协方差矩阵,这里因为是二维点。所以协方差矩阵就是2 \times 2的矩阵。

然后怎么知道它沿着哪个方向方差最大呢?这里想到了特征值和特征向量,因为特征值和特征向量的几何意义就是找出矩阵沿哪个方向(特征向量的方向)缩放了多少(特征值大小)。所以求出协方差矩阵的特征向量和特征值,最大的特征值对应的特征向量的方向就是主成分的方向。

工具

特征值和特征向量(也就是矩阵的相似对角化)

对于点的矩阵X的协方差矩阵A,有:

A \times (v_1, v_2) = (\lambda_1v_1,\lambda_2v_2),其中v_1等是A的特征向量,\lambda_1
等为特征值。这个等式也可以写成:

AV = V \Lambda ,其中V是所有特征向量组成的矩阵,\Lambda是对角阵,对角线是所有的特征值。

集成

在上述公式中,找出\Lambda中最大的特征值对应的特征向量就是投影方向(假设是v_1),则Y = Xv_1就是投影后的点沿着F_1
方向的坐标。

上一篇 下一篇

猜你喜欢

热点阅读