Bootstrap

机器学习(5)无监督模型之降维PCA算法

主成分分析(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
1234
2456
3578
4789
58910

我们希望将其降维到 2 个维度。

步骤 1:数据标准化

PCA 对数据的标准化非常敏感。为了避免不同特征的量纲对计算结果产生影响,我们需要先对数据进行标准化。标准化的目的是使每个特征的均值为 0,方差为 1。

首先计算每个特征的均值和标准差,然后进行标准化:

标准化后的数据如下:

样本特征1(标准化)特征2(标准化)特征3(标准化)
1-1.29-1.29-1.29
2-0.49-0.49-0.49
3-0.090.310.31
40.731.111.11
51.141.501.50

步骤 2:计算协方差矩阵

步骤 5:数据投影

现在我们可以将原始标准化数据投影到这两个主成分上。投影的公式为:

Xnew=Xnorm⋅W2

得到降维后的数据:

样本主成分1(PC1)主成分2(PC2)
1-2.240.00
2-0.890.00
3-0.290.00
41.470.00
52.940.00

步骤 6:结果分析

通过PCA,我们成功地将原始的 3 维数据降到了 2 维。在这个降维后的空间中,主成分 1 (PC1) 捕获了数据的大部分方差。虽然主成分 2 的方差非常小,但它仍然提供了额外的信息。

可视化

降维后的数据可以用于可视化,在 2D 平面上表示,可以帮助我们更好地理解数据的分布。

总结:

这个例子展示了如何应用 PCA 来从一个 3 维数据集降维到 2 维。关键步骤包括:

  1. 数据标准化。
  2. 计算协方差矩阵。
  3. 计算特征值和特征向量。
  4. 按特征值选择主成分。
  5. 投影到新的主成分空间。

PCA 的核心是将数据投影到方差最大的方向上,从而实现降维,同时尽量保留原数据中的信息。在实际应用中,PCA 常用于图像压缩、数据可视化、去噪和特征选择等任务。

有几个特征就是有几维

PCA 降维例题

问题描述

假设我们有一个包含 6 个样本和 4 个特征的数据集,我们希望将其从 4 维降到 2 维。我们将使用 PCA 来找出最能表达数据变异性的主成分,并将数据投影到这两个主成分上。

原始数据

假设我们的数据集 X如下(每行代表一个样本,每列代表一个特征):

样本特征1 (X1)特征2 (X2)特征3 (X3)特征4 (X4)
12335
24748
36659
4810712
51015814
61220915

我们希望使用 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
40.470.47-0.23-0.23
51.111.110.020.02
61.961.960.700.70

步骤 2:计算协方差矩阵

计算标准化后的数据的协方差矩阵。协方差矩阵反映了不同特征之间的关系。协方差矩阵的计算公式为:

步骤 3:计算协方差矩阵的特征值和特征向量

接下来,计算协方差矩阵的特征值和特征向量。特征值表示了每个主成分的方差大小,而特征向量则表示了主成分的方向。

假设计算得到的特征值和特征向量如下:

步骤 4:选择主成分

根据特征值的大小,选择前两个主成分。因为我们希望将数据降到 2 维,因此我们选择特征值最大的前两个主成分,即:

  • 第一主成分(PC1): λ1=3.53\
  • 第二主成分(PC2): λ2=0.78

得到的降维后的数据如下:

样本主成分1(PC1)主成分2(PC2)
1-2.740.12
2-1.490.08
3-0.530.14
40.47-0.16
51.09-0.07
61.80-0.11

步骤 6:结果分析

通过 PCA,我们将原始的 4 维数据集成功降到 2 维。在降维后的数据中,第一主成分(PC1)捕获了数据的大部分变异性。第二主成分(PC2)捕获了剩余的变异性,但相对于 PC1 来说,其方差较小。

降维后的数据可以进行可视化,帮助我们更直观地理解数据的结构和分布。比如,我们可以将数据点绘制在二维平面上,根据主成分1和主成分2的位置来观察样本的分布。

总结:

  • PCA 可以有效地将高维数据降维,从而减少冗余信息并保留数据中的重要特征。
  • 在这个例子中,我们将一个 4 维数据集降维到 2 维,保留了最重要的两个主成分,成功地简化了数据。
  • PCA 的关键步骤包括数据标准化、计算协方差矩阵、特征值分解、选择主成分和投影数据。

m 代表的是样本的数量,即数据集中的样本数。

;