简单的二维或者三维我们可以想象出来其分布状态,那么对于更高维的数据,能想象出来其分布吗?还有,就算能描述分布,如何精确地找到这些主成分的轴?如何衡量你提取的主成分到底占了整个数据的多少信息?所以,我们就要用到主成分分析的处理方法。
为了说明什么是数据的主成分,我们首先得了解数据降维,数据降维时怎么回事?二,数据降维 假设三维空间中有一系列点,这些点分布在一个过原点的斜面上,如果你用自然坐标x,y,z这三个轴来表示这组数据的话,需要使用三个维度,而事实上,这些点的分布仅仅是在一个二维的平面上,那么问题出在哪里?如果你仔细想想,能不能把x,y,z坐标系旋转一下,使数据所在平面与x,y平面重合?这就对了!如果把旋转后的坐标记为x',y',z',那么这组数据的表示只用x'和y'两个维度表示即可!
当然了,如果想恢复原来的表示方式,那就得把这两个坐标之间的变换矩阵存下来。这样就能把数据维度降下来了!但是,我们要看到这个过程的本质,如果把这些数据按行或者按类排成一个矩阵,那么这个矩阵的秩就是2!这些数据之间是有相关性的,这些数据构成的过原点的向量的最大线性无关组包含2个向量,这就是为什么一开始就假设平面过原点的原因!
那么如果不过原点呢?这就是数据中心化的缘故!将坐标原点平移到数据中心,这样原本不相关的数据在这个新坐标系中就有相关性了!有趣的是,三点一定共面,也就是三维空间中任意三点中心化后都是线性相关的,一般来讲n维空间中n个点一定能在一个n-1维子空间中分析!
总结一下这个例子,数据降维后并没有丢弃任何东西,因为这些数据在平面以外的第三个维度的分量都为0。现在,假设这些数据在z'轴有一个很小的抖动,那么我们仍然用上述的二维表示这些数据,理由是我们可以认为这两个轴的信息是数据的主成分,而这些信息对于我们的分析已经足够了,z'轴上的抖动很有可能是噪音,也就是说本来这组数据是有相关性的,噪声的引入,导致了数据不完全相关,但是,这些数据在z'轴上的分布与原点构成的夹角非常小,也就是说在z'轴上有很大的相关性,综合考虑,就可以认为数据在x',y'轴上的投影构成了数据的主成分!
所以说,降维肯定意味着信息的丢失,不过鉴于实际数据本身常常存在的相关性,我们可以想办法在降维的同时将信息的损失尽量降低。
下面在说一个极端的情况,也许在现实中不会出现,但是 类似的情况还是很常见的。
假设某学籍数据有两列M和F,其中M列的取值是如果此学生为男性,则取值为1,为女性则取0;而F列是学生为女性,则取值为0,男性则为1.此时如果我们统计全部学籍数据,会发现对于任何一条记录来说,当M为1时F必定为0,反之当M为0时F必定为1,在这种情况下,我们将M或者F去掉实际上没有任何信息的损失,因为只要保留一列就可以完全还原另一列。
那么降维我们差不多说清楚了,现在我们将自己面对的数据抽象为一组向量,那么下面我们有必要研究一些向量的数学性质,而这些数学性质将成为后续推导出PCA的理论基础。