主成分分析(Principal Component Analysis, PCA) 是一种经典的无监督学习算法,主要用于数据降维、特征提取和数据可视化。它通过线性变换将数据从原始空间映射到一个新的空间,使得数据的方差最大化,从而实现降维。PCA 可以有效减少数据的维度,同时保留数据中的大部分信息。
PCA 算法详解
1. PCA的目标
PCA 的核心目标是将数据从一个高维空间映射到一个低维空间,并尽量保留数据中的变异性(信息)。换句话说,PCA 寻找数据中最重要的方向(主成分),以便用最少的维度表达数据的主要信息。
2. PCA的核心思想
- 最大化方差:PCA 通过计算数据的方差来评估数据在不同方向上的分布情况。主成分是数据变异性(或方差)最大的方向。
- 线性变换:PCA 通过线性变换将数据从原始的特征空间转换到新的特征空间,使得数据在新的空间中的方差最大化。新空间的每一个轴(即主成分)都是数据中最重要的方向。
PCA的主要任务是: 找到数据的主成分,并按方差的大小顺序对它们进行排序。
这些标红的很重要
3. PCA的步骤
步骤1:数据标准化 PCA 是基于数据方差的,因此我们首先需要对数据进行标准化(归一化)。因为不同特征的量纲不同,若不进行标准化,某些具有大数值范围的特征可能会主导计算结果。
步骤2:计算协方差矩阵 协方差矩阵反映了不同特征之间的相关性。它是一个 n×n 的矩阵,其中 n 是特征的数量,矩阵中的每个元素代表了两个特征之间的协方差。
步骤4:排序特征值和特征向量 根据特征值的大小对特征向量进行排序。特征值大的对应着数据变化最大的方向,这些方向可以保留数据中的重要信息。
4. PCA的数学原理
PCA 的核心就是对数据进行正交变换,将数据从原始空间变换到新的空间,使得新空间的各个维度之间相互独立(即正交),而且这些新的维度(主成分)按照数据的方差从大到小排序。
这意味着:
- 第一主成分(PC1)是数据方差最大的方向。
- 第二主成分(PC2)是与第一主成分正交且方差次大的方向。
- 以此类推,直到所有主成分。
5. PCA的优缺点
优点:
- 降维:PCA 是一种强大的降维工具,能够有效减少数据的维度,并保留数据的大部分信息。
- 数据可视化:通过将数据降到二维或三维,PCA 能够使数据可视化,帮助发现数据中的潜在模式。
- 去噪:PCA 可以去掉那些低方差的特征,从而去除数据中的噪声。
缺点:
- 线性假设:PCA 仅适用于线性数据结构,对于非线性数据,PCA 的效果可能不理想。
- 难以解释:主成分往往是原始特征的线性组合,可能很难解释这些主成分的实际意义。
- 数据标准化要求:PCA 对数据的标准化非常敏感,因此在应用 PCA 前需要对数据进行合适的预处理。
6. PCA的应用场景
PCA 适用于很多领域,常见的应用场景包括:
- 图像压缩:PCA 可用于图像的降维和压缩,通过保留最重要的主成分,可以大幅度减少存储空间。
- 数据可视化:PCA 可用于将高维数据降至二维或三维,以便进行可视化,帮助分析数据的分布和模式。
- 特征选择:PCA 可以去除数据中的冗余信息,保留最重要的特征,减少模型的复杂度,提升训练速度。
- 噪声去除:通过将数据映射到低维空间,PCA 可以去掉那些含有噪声的低方差维度。
PCA 算法经典例题
为了帮助理解 PCA 的应用,下面我们通过一个经典的降维例子来详细讲解 PCA 的步骤。
问题描述
假设我们有一个包含 5 个样本和 3 个特征的数据集,我们希望将其从 3 维降到 2 维。我们使用 PCA 来找到最能表达数据变异性的主成分,并将数据投影到这两个主成分上。
原始数据
假设我们的数据集 X 如下(每行代表一个样本,每列代表一个特征):
样本 | 特征1 | 特征2 | 特征3 |
---|---|---|---|
1 | 2 | 3 | 4 |
2 | 4 | 5 | 6 |
3 | 5 | 7 | 8 |
4 | 7 | 8 | 9 |
5 | 8 | 9 | 10 |
我们希望将其降维到 2 个维度。
步骤 1:数据标准化
PCA 对数据的标准化非常敏感。为了避免不同特征的量纲对计算结果产生影响,我们需要先对数据进行标准化。标准化的目的是使每个特征的均值为 0,方差为 1。
首先计算每个特征的均值和标准差,然后进行标准化:
标准化后的数据如下:
样本 | 特征1(标准化) | 特征2(标准化) | 特征3(标准化) |
---|---|---|---|
1 | -1.29 | -1.29 | -1.29 |
2 | -0.49 | -0.49 | -0.49 |
3 | -0.09 | 0.31 | 0.31 |
4 | 0.73 | 1.11 | 1.11 |
5 | 1.14 | 1.50 | 1.50 |
步骤 2:计算协方差矩阵
步骤 5:数据投影
现在我们可以将原始标准化数据投影到这两个主成分上。投影的公式为:
Xnew=Xnorm⋅W2
得到降维后的数据:
样本 | 主成分1(PC1) | 主成分2(PC2) |
---|---|---|
1 | -2.24 | 0.00 |
2 | -0.89 | 0.00 |
3 | -0.29 | 0.00 |
4 | 1.47 | 0.00 |
5 | 2.94 | 0.00 |
步骤 6:结果分析
通过PCA,我们成功地将原始的 3 维数据降到了 2 维。在这个降维后的空间中,主成分 1 (PC1) 捕获了数据的大部分方差。虽然主成分 2 的方差非常小,但它仍然提供了额外的信息。
可视化
降维后的数据可以用于可视化,在 2D 平面上表示,可以帮助我们更好地理解数据的分布。
总结:
这个例子展示了如何应用 PCA 来从一个 3 维数据集降维到 2 维。关键步骤包括:
- 数据标准化。
- 计算协方差矩阵。
- 计算特征值和特征向量。
- 按特征值选择主成分。
- 投影到新的主成分空间。
PCA 的核心是将数据投影到方差最大的方向上,从而实现降维,同时尽量保留原数据中的信息。在实际应用中,PCA 常用于图像压缩、数据可视化、去噪和特征选择等任务。
有几个特征就是有几维
PCA 降维例题
问题描述
假设我们有一个包含 6 个样本和 4 个特征的数据集,我们希望将其从 4 维降到 2 维。我们将使用 PCA 来找出最能表达数据变异性的主成分,并将数据投影到这两个主成分上。
原始数据
假设我们的数据集 X如下(每行代表一个样本,每列代表一个特征):
样本 | 特征1 (X1) | 特征2 (X2) | 特征3 (X3) | 特征4 (X4) |
---|---|---|---|---|
1 | 2 | 3 | 3 | 5 |
2 | 4 | 7 | 4 | 8 |
3 | 6 | 6 | 5 | 9 |
4 | 8 | 10 | 7 | 12 |
5 | 10 | 15 | 8 | 14 |
6 | 12 | 20 | 9 | 15 |
我们希望使用 PCA 将数据降维到 2 维,以便更容易进行可视化和分析。
步骤 1:数据标准化
PCA 对数据标准化非常敏感。在进行 PCA 之前,我们需要对每个特征进行标准化(即让每个特征的均值为 0,方差为 1)。假设我们已经计算出了每个特征的均值和标准差,并进行了标准化。标准化后的数据集 Xnorm 如下:
样本 | 特征1(标准化) | 特征2(标准化) | 特征3(标准化) | 特征4(标准化) |
---|---|---|---|---|
1 | -1.47 | -1.47 | -1.47 | -1.47 |
2 | -0.82 | -0.82 | -1.23 | -1.23 |
3 | -0.18 | -0.18 | -0.98 | -0.98 |
4 | 0.47 | 0.47 | -0.23 | -0.23 |
5 | 1.11 | 1.11 | 0.02 | 0.02 |
6 | 1.96 | 1.96 | 0.70 | 0.70 |
步骤 2:计算协方差矩阵
计算标准化后的数据的协方差矩阵。协方差矩阵反映了不同特征之间的关系。协方差矩阵的计算公式为:
步骤 3:计算协方差矩阵的特征值和特征向量
接下来,计算协方差矩阵的特征值和特征向量。特征值表示了每个主成分的方差大小,而特征向量则表示了主成分的方向。
假设计算得到的特征值和特征向量如下:
步骤 4:选择主成分
根据特征值的大小,选择前两个主成分。因为我们希望将数据降到 2 维,因此我们选择特征值最大的前两个主成分,即:
- 第一主成分(PC1): λ1=3.53\
- 第二主成分(PC2): λ2=0.78
得到的降维后的数据如下:
样本 | 主成分1(PC1) | 主成分2(PC2) |
---|---|---|
1 | -2.74 | 0.12 |
2 | -1.49 | 0.08 |
3 | -0.53 | 0.14 |
4 | 0.47 | -0.16 |
5 | 1.09 | -0.07 |
6 | 1.80 | -0.11 |
步骤 6:结果分析
通过 PCA,我们将原始的 4 维数据集成功降到 2 维。在降维后的数据中,第一主成分(PC1)捕获了数据的大部分变异性。第二主成分(PC2)捕获了剩余的变异性,但相对于 PC1 来说,其方差较小。
降维后的数据可以进行可视化,帮助我们更直观地理解数据的结构和分布。比如,我们可以将数据点绘制在二维平面上,根据主成分1和主成分2的位置来观察样本的分布。
总结:
- PCA 可以有效地将高维数据降维,从而减少冗余信息并保留数据中的重要特征。
- 在这个例子中,我们将一个 4 维数据集降维到 2 维,保留了最重要的两个主成分,成功地简化了数据。
- PCA 的关键步骤包括数据标准化、计算协方差矩阵、特征值分解、选择主成分和投影数据。
m 代表的是样本的数量,即数据集中的样本数。