Dimensionality reduction

97 阅读4分钟

一、主成分分析

主成分分析(Principal Component Analysis,PCA)是一种常用的数据降维技术。它可以将高维数据转换为低维数据,同时保留尽可能多的原始数据信息。

在正式介绍主成分分析之前,需要先了解一些相关概念:

  1. 方差:描述数据分布的离散程度,方差越大表示数据越分散。

  2. 协方差:描述两个变量之间的关系,协方差值为正表示两个变量同向变化,协方差值为负表示两个变量反向变化,协方差值接近于0表示两个变量基本独立。

  3. 特征向量:对于一个矩阵A,如果存在一个非零向量v,使得Av=λv,其中λ是一个常数,那么v就是A的特征向量,λ就是v对应的特征值。

有了上面的几个概念,就可以开始介绍主成分分析了。

主成分分析的目标是找到数据中最重要的主成分,也就是能够解释数据变化最大的方向。这些主成分是通过对数据的协方差矩阵进行特征值分解得到的。协方差矩阵是一个对称矩阵,对角线上的元素表示每个变量的方差,非对角线上的元素表示两个变量之间的协方差。特征值分解可以将协方差矩阵分解为特征向量和特征值的乘积形式。

具体地,设有m个n维数据样本,将它们组成一个m×nm\times n的矩阵X。则X的协方差矩阵为:C=1m1XTXC=\frac{1}{m-1}X^TXCC进行特征值分解,得到特征向量v1,v2,,vnv_1,v_2,\dots,v_n和相应的特征值λ1,λ2,,λn\lambda_1,\lambda_2,\dots,\lambda_n。这些特征向量构成了原始数据空间的一组新基,其中第ii个特征向量viv_i对应的特征值λi\lambda_i表示数据在这个方向上的方差大小。

按照特征值的大小排序,选取前kk个特征向量v1,v2,,vkv_1,v_2,\dots,v_k,将原始数据投影到这kk个特征向量张成的子空间中,得到降维后的数据Y=XVkY=XV_k,其中VkV_k是由前kk个特征向量构成的n×kn\times k矩阵,YYm×km\times k矩阵,即将每个样本从nn维压缩到kk维。

这里有一个重要的性质:通过PCA降维得到的新数据,每个特征之间的协方差为0。这意味着降维后的数据之间相互独立,在某些情况下可以简化后续的计算过程。

需要注意的是,PCA只能用于线性数据降维,对于非线性数据降维,需要使用其他技术,比如核主成分分析(Kernel PCA)等。

总结一下PCA的步骤:

  1. 对原始数据进行标准化处理,使每个变量的均值为0,方差为1。

  2. 计算协方差矩阵,并进行特征值分解。

  3. 按照特征值的大小排序,选取前kk个特征向量构成新的基,将原始数据投影到这kk个特征向量张成的子空间中,得到降维后的数据。

    1. 可选:对降维后的数据进行可视化分析,以便更好地理解数据集的结构和关系。

    2. 使用降维后的数据进行后续分析,比如聚类、分类等。

    需要注意的是,PCA在实际应用中也有一些限制和注意事项:

    1. 降维后的数据往往难以解释,因为它们是由多个原始特征线性组合而成的。

    2. PCA只能减少特征数量,无法增加新的特征。如果样本数量较少,或者某些特征之间存在非线性关系,使用PCA可能会导致信息丢失。

    3. 在计算协方差矩阵时,如果变量之间存在相关性,会导致协方差矩阵的条件数较大,从而使得特征值分解的计算量变得很大。

    4. 当数据集中存在离群点或异常值时,PCA对降维结果会产生较大影响,此时需要进行数据清洗或采用其他方法来处理异常值。

    总之,PCA是一种常用的数据降维技术,可以有效地解决高维数据分析问题。但是,在实际应用中,需要根据具体情况选择合适的降维方法,并进行必要的预处理和后处理操作,以获得更好的分析结果。