主成分分析
与特征选择类似,我们可以使用特征提取 (Feature Extraction) 来减少数据集中特征的数量。其区别在于,特征选择保留原始特征,而特征提取则将数据转换或投影到新的特征空间。本文介绍主成分分析 (Principal Component Analysis,PCA),它是一种无监督的线性变换技术,主要特点是特征提取和降维。
算法思想
PCA 广泛应用于不同领域,帮助我们根据特征之间的相关性来识别数据中的模式。其原理是找到高维数据中最大方差的方向,并将其投影到与原始维数相同或更少维数的新的正交空间上。
新的子空间的正交轴 (即主成分) 可以被解释为在新的特征轴彼此正交的约束下的最大方差的方向,如下图所示:
在上图中, 和 是原始特征轴,PC1 和 PC2 是数据集的第一主成分和第二主成分。
PCA 构造了一个维度变换矩阵 ,将高维空间向量 映射到低维空间向量 :
维度变换后,第一主成分将具有最大的方差,第二主成分将具有第二大的方差,以此类推。这些主成分必须均不相关 (即使输入特征之间有相关性),数学表示为主成分向量之间两两正交。
需要注意的是,PCA 方向对数据缩放非常敏感。举例来说,假设一个特征在 [-100,100] 之间平均分布,另外一个特征在 [-1,1] 之间平均分布,PCA 会认为前一个特征重要得多。因此在运用 PCA 时,需要使用标准化将输入特征缩放到相同的尺度。
PCA 的算法流程的简单介绍如下:
- 对输入的 维数据集 进行标准化。
- 构造协方差矩阵。
- 计算协方差矩阵的特征向量和特征值。
- 对特征值进行降序排序,对相应的特征向量进行排序。
- 提取 个最大特征值对应的特征向量,其中 () 是新特征子空间的维数。
- 使用提取的 个特征向量构造投影矩阵 。
- 使用投影矩阵 对 进行变换,得到新的 维特征子空间。