投影与降维

 摘要:

       投影是将数据从原始的高维空间映射到一个低维空间的过程,通常这个低维空间的维度小于原始空间。降维是减少数据集中变量数量的技术,旨在提取数据的代表性特征,同时去除无关或冗余的信息。两者都旨在处理高维数据,使其更适合于分析和机器学习模型。投影更多关注于在新空间中保持数据的某些特性,而降维更侧重于去除噪声和冗余信息。投影的结果通常是数据在新空间中的表示,而降维则可能涉及到数据的重构或近似。

       投影和降维是数据分析和机器学习领域中两个非常重要的概念,它们在处理高维数据集时尤其有用。尽管它们的目标都是处理高维数据,但它们的方法和应用场景有所不同。

投影(Projection)

  1. 定义

    投影是将数据从原始的高维空间映射到一个低维空间的过程,通常这个低维空间的维度小于原始空间。线性投影:最常见的投影方法是线性投影,如主成分分析(PCA),它通过找到数据中方差最大的方向,将数据投影到这些方向上。非线性投影:除了线性投影,还有非线性投影方法,例如使用核方法或自编码器网络进行的投影。
  2. 目的

    投影的目的通常是数据可视化、去除噪声或准备数据以供后续分析。
  3. 保持结构

    理想情况下,投影应尽可能地保持数据的原始结构,尤其是对方差和数据模式的贡献。

降维(Dimensionality Reduction)

  1. 定义

    降维是减少数据集中变量数量的技术,旨在提取数据的代表性特征,同时去除无关或冗余的信息。
  2. 方法

    降维可以通过多种方法实现,包括PCA、线性判别分析(LDA)、奇异值分解(SVD)、自编码器等。特征选择:降维也可以通过特征选择实现,即从现有特征中选择一部分最重要的特征进行分析。特征提取:另一种降维方法是特征提取,它通过创建新的特征来捕捉原始数据的最重要信息。优化:降维旨在优化数据表示,使其更适合于机器学习算法,同时减少计算复杂度。
  3. 信息保留

    降维技术试图在减少数据维度的同时,最大限度地保留数据中的关键信息。

投影与降维的联系

  • 共同目标:两者都旨在处理高维数据,使其更适合于分析和机器学习模型。
  • 技术交叉:某些技术既可以看作是投影也可以看作是降维,如PCA。
  • 信息丢失:在进行投影或降维时,都可能会丢失一些信息,但目标是保留最重要的数据特征。

投影与降维的区别

  • 目的:投影更多关注于在新空间中保持数据的某些特性,而降维更侧重于去除噪声和冗余信息。
  • 结果:投影的结果通常是数据在新空间中的表示,而降维则可能涉及到数据的重构或近似。
  • 应用:投影常用于数据可视化,降维则更广泛地应用于数据预处理和特征工程。

       在实际应用中,选择合适的投影或降维技术需要考虑数据的特性、分析的目标以及对计算资源的要求。例如,如果数据集中存在大量的噪声和冗余信息,降维可能有助于提高模型的性能。如果数据的某些特征在不同的尺度上,可能需要进行标准化或归一化。如果需要可视化高维数据,可能需要使用投影技术。

1. 投影的方法

       投影是一种数学操作,它将多维空间中的点映射到较低维度的空间上,同时尽量保留点与点之间的相对位置关系。以下是一些常用的投影方法:

1.1 线性投影

       通过选定一组基向量,将原始数据映射到这些基向量上,从而实现从高维到低维的转换。例如,主成分分析(PCA)就是一种线性投影方法。PCA寻找数据中方差最大的方向,并沿着这些方向进行投影,以此保留数据的主要成分。

       主成分分析(PCA)是一种统计工具,它通过正交变换将一组可能相关的变量转换为一组线性不相关的变量,这些新变量被称为主成分。PCA的目的是在转换后的空间找到数据的主要成分,以此达到降维的目的。以下是PCA的数学描述:

  1. 数据标准化: 假设给定一个数据集 \( X \),其中 \( n \) 个 \( D \) 维的数据点 \( x_i \in \mathbb{R}^D \)。首先,通常需要对数据进行标准化处理,使得每个特征的均值为0,标准差为1。

  2. 协方差矩阵: 计算数据的协方差矩阵 \( C \),它是数据点间成对关系的度量。对于标准化后的数据,协方差矩阵的元素 \( C_{ij} \) 由下式给出:
       \[ C_{ij} = \sum_{k=1}^{n} (x_{ki} - \bar{x}_i) (x_{kj} - \bar{x}_j) \]
       其中,\( x_{ki} \) 是第 \( k \) 个数据点在第 \( i \) 个维度的值,\( \bar{x}_i \) 是第 \( i \) 个维度的均值。

  3. 特征值分解:  对协方差矩阵 \( C \) 进行特征值分解,得到一组特征向量 \( v_i \) 和相应的特征值 \( \lambda_i \),满足:
       \[ C v_i = \lambda_i v_i \]

  4. 选择主成分: 将特征向量按照对应的特征值进行降序排列。特征值越大,表示对应的特征向量方向上的方差越大,因此越重要。选择前 \( m \) 个(\( m < D \))最大的特征值对应的特征向量,这些特征向量构成了一个矩阵 \( V_m \)。

  5. 构造新特征空间:使用选定的特征向量矩阵 \( V_m \) 将原始数据 \( X \) 映射到新的特征空间,得到降维后的数据 \( Y \):
       \[ Y = X V_m \]

    在这个新空间中,数据的前几个维度(即主成分)将捕捉大部分原始数据的变异性。

  6. 解释方差: 可以计算每个主成分解释的方差比例,以决定保留多少个主成分。方差比例是特征值与总方差的比值。

       PCA的数学描述涉及线性代数的知识,包括特征值分解和矩阵运算。PCA是一种无监督学习方法,常用于数据降维、特征提取、数据压缩以及在可视化和机器学习算法中的预处理步骤。

1.2 最小二乘法(Least Squares Projection)

      这种方法通过最小化原始点和投影点之间的平方差来找到最佳的投影方向。

       最小二乘法(Least Squares Projection)是一种数学优化技术,它通过最小化误差的平方和来寻找数据的最佳函数匹配。最小二乘法投影通常用于确定一个点在特定方向上的投影,使得投影误差(即原始点和投影点之间的垂直距离)最小。以下是最小二乘法投影的数学描述:

  1. 问题设定: 假设有一个点 \( \mathbf{x} \in \mathbb{R}^D \) 和一个方向向量 \( \mathbf{d} \in \mathbb{R}^D \)(通常是单位向量,即 \( \|\mathbf{d}\| = 1 \)),我们希望找到点 \( \mathbf{x} \) 在方向 \( \mathbf{d} \) 上的投影点 \( \mathbf{p} \)。

  2. 投影点:  在最小二乘意义下,投影点 \( \mathbf{p} \) 是原始点 \( \mathbf{x} \) 在通过原点沿着方向 \( \mathbf{d} \) 的超平面上的最近点。投影点 \( \mathbf{p} \) 可以表示为:
       \[ \mathbf{p} = \left( \mathbf{x} \cdot \mathbf{d} \right) \mathbf{d} \]
       其中,\( \mathbf{x} \cdot \mathbf{d} \) 是点 \( \mathbf{x} \) 和方向向量 \( \mathbf{d} \) 的点积。

  3. 投影误差:  点 \( \mathbf{x} \) 和它的投影点 \( \mathbf{p} \) 之间的误差向量 \( \mathbf{e} \) 定义为:
       \[ \mathbf{e} = \mathbf{x} - \mathbf{p} \]

  4. 最小化误差: 在最小二乘意义下,我们希望最小化所有点的误差向量的欧几里得距离的平方和。对于单个点,最小化 \( \mathbf{e} \) 的二范数(即欧几里得范数)的平方:
       \[ \min_{\mathbf{p}} \| \mathbf{e} \|^2 = \min_{\mathbf{p}} ( \mathbf{x} - \mathbf{p} )^\top ( \mathbf{x} - \mathbf{p} ) \]

  5. 求解投影:  通过对 \( \mathbf{p} \) 求导并令导数为零,可以找到使得误差平方和最小的 \( \mathbf{p} \)。对于上面的优化问题,求导后得到:
       \[ \frac{\partial}{\partial \mathbf{p}} ( \mathbf{x} - \mathbf{p} )^\top ( \mathbf{x} - \mathbf{p} ) = -2( \mathbf{x} - \mathbf{p} ) \mathbf{d} = \mathbf{0} \]
       解得:
       \[ \mathbf{p} = \left( \mathbf{x} \cdot \mathbf{d} \right) \mathbf{d} \]

  6. 几何意义: 最小二乘法投影具有明确的几何意义:它找到在给定方向上与原始点距离最近的点,这个点是原始点在与该方向平行的超平面上的投影。

       最小二乘法投影广泛应用于统计学、工程学、计算机视觉和机器学习等领域,它是一种简单而强大的工具,用于数据拟合、参数估计和降维。

1.3 正交投影

       正交投影将数据点投影到一个正交基上,例如,正交到某个子空间或超平面。

       正交投影(Orthogonal Projection),也称为垂直投影,是将一个向量投影到另一个向量或者向量空间上的过程,使得投影后的向量与原始向量垂直。在几何上,这意味着原始向量和它的投影向量之间形成了一个直角。以下是正交投影的数学描述:

  1. 投影向量和目标空间: 假设有一个原始向量 \( \mathbf{x} \in \mathbb{R}^D \),我们想要将其投影到一个目标向量 \( \mathbf{d} \in \mathbb{R}^D \) 上,其中 \( \mathbf{d} \) 是单位向量(即 \( \|\mathbf{d}\| = 1 \))。

  2. 投影点:  正交投影的目标是找到一个点 \( \mathbf{p} \),它是向量 \( \mathbf{d} \) 的倍数,并且与原始向量 \( \mathbf{x} \) 垂直。投影点 \( \mathbf{p} \) 可以表示为:
       \[ \mathbf{p} = \left( \frac{\mathbf{x} \cdot \mathbf{d}}{\mathbf{d} \cdot \mathbf{d}} \right) \mathbf{d} = (\mathbf{x} \cdot \mathbf{d}) \mathbf{d} \]

  3. 投影系数:  投影系数是原始向量在目标向量方向上的标量倍数,由点积给出:
       \[ \text{proj}_{\mathbf{d}} \mathbf{x} = \frac{\mathbf{x} \cdot \mathbf{d}}{\|\mathbf{d}\|^2} \]

  4. 投影误差: 正交投影的误差向量 \( \mathbf{e} \) 是原始向量 \( \mathbf{x} \) 与投影点 \( \mathbf{p} \) 之间的差:
       \[ \mathbf{e} = \mathbf{x} - \mathbf{p} \]

  5. 正交性质: 误差向量 \( \mathbf{e} \) 与目标向量 \( \mathbf{d} \) 正交,即它们的点积为零:
       \[ \mathbf{e} \cdot \mathbf{d} = 0 \]

  6. 目标空间的扩展: 当目标空间不是单一向量而是多个向量构成的空间时,正交投影可以扩展到这个多维空间。在这种情况下,目标空间可以是:

    • 一个由多个正交单位向量组成的基。
    • 一个由多个向量生成的子空间。
  7. 矩阵形式: 如果有多个目标向量构成的矩阵 \( D \),正交投影可以通过矩阵乘法表示:
       \[ \mathbf{p} = D D^\top \mathbf{x} \]
       其中 \( D^\top \) 是矩阵 \( D \) 的转置。

  8. 最小二乘解: 正交投影也是最小二乘问题的解,即它最小化了原始向量和投影点之间的欧几里得距离的平方和。

正交投影在几何上具有直观的解释,在代数上可以通过矩阵运算和向量点积来实现。它在许多数学和工程领域中都有应用,包括计算机图形学、信号处理、统计学和数据降维等。

1.4 核方法

核方法,如核主成分分析(KPCA),使用非线性变换将数据投影到高维空间,然后在这个空间中进行线性投影。

核方法是一种处理非线性问题的数学技术,它通过将数据映射到一个更高维的特征空间来实现线性处理。核主成分分析(KPCA)是核方法在主成分分析(PCA)中的应用。以下是KPCA的数学描述:

  1. 非线性映射:  核方法的核心在于使用一个非线性映射函数 \( \phi: \mathbb{R}^D \rightarrow \mathbb{R}^K \),其中 \( K \) 可能比 \( D \) 大得多,甚至是无穷维的。这个映射将原始数据空间中的数据点转换到更高维的特征空间。

  2. 高维特征空间: 在高维特征空间中,原本在原始空间中线性不可分的数据点可能变得线性可分。

  3. 核函数:  核函数 \( k: \mathbb{R}^D \times \mathbb{R}^D \rightarrow \mathbb{R} \) 是非线性映射 \( \phi \) 的一个关键特性,它定义了数据映射后的内积:
       \[ k(\mathbf{x}_i, \mathbf{x}_j) = \langle \phi(\mathbf{x}_i), \phi(\mathbf{x}_j) \rangle = \phi(\mathbf{x}_i)^\top \phi(\mathbf{x}_j) \]
       其中 \( \mathbf{x}_i \) 和 \( \mathbf{x}_j \) 是原始空间中的两个数据点。

  4. Gram 矩阵:对于数据集 \( X = [\mathbf{x}_1, \mathbf{x}_2, ..., \mathbf{x}_n] \),可以构造一个 \( n \times n \) 的Gram矩阵 \( K \),其元素由核函数给出:
       \[ K_{ij} = k(\mathbf{x}_i, \mathbf{x}_j) \]

  5. 线性投影: 在高维特征空间中,PCA的线性投影步骤可以表示为对协方差矩阵或数据矩阵的线性变换。在KPCA中,这些操作是在Gram矩阵上进行的。

  6. 优化问题: KPCA的目标是找到特征空间中的主成分,这些主成分对应于数据方差的最大化。在高维特征空间中,这可以通过求解一个优化问题来实现,该问题涉及到Gram矩阵的特征值分解。

  7. 主成分: 求解优化问题后,我们得到一组特征向量(即主成分),它们对应于Gram矩阵的最大特征值。这些特征向量定义了高维特征空间中数据的主要成分。

  8. 投影数据: 最后,原始数据集 \( X \) 可以通过核函数映射到这些主成分上,从而在高维空间中实现降维。

核方法的优势在于它允许我们在高维特征空间中进行线性分析,而无需显式地定义映射函数 \( \phi \)。这使得KPCA等核方法在处理复杂的非线性关系时非常强大。常用的核函数包括线性核、多项式核、径向基函数(RBF)核等。

1.5 非线性投影

非线性投影不依赖于线性变换,而是使用更复杂的函数来映射数据点。例如,自编码器是一种使用神经网络进行非线性投影的方法。

自编码器(Autoencoder)是一种使用神经网络进行非线性投影的机器学习算法。它通过训练网络学习数据的压缩表示,然后重构原始输入。自编码器通常用于数据降维、特征提取和去噪。以下是自编码器的数学描述和工作原理:

  1. 网络结构: 自编码器通常包含两部分:编码器(Encoder)和解码器(Decoder)。编码器将输入数据压缩成较低维度的表示,解码器则将这个低维表示恢复成原始数据的重构。

  2. 编码器: 编码器是一个前馈神经网络,它通过一系列非线性变换将输入 \( \mathbf{x} \) 映射到一个低维的编码表示 \( \mathbf{h} \):
       \[ \mathbf{h} = f(W_e \mathbf{x} + b_e) \]
       其中,\( W_e \) 和 \( b_e \) 分别是编码器的权重和偏置,\( f \) 是激活函数(如ReLU、Sigmoid或Tanh)。

  3. 中间表示(隐含层): \( \mathbf{h} \) 是输入数据的压缩表示,称为隐含层或瓶颈层,其维度远小于输入层。

  4. 解码器: 解码器是编码器的逆过程,它使用另一组权重和偏置 \( W_d \) 和 \( b_d \) 将编码 \( \mathbf{h} \) 映射回原始数据空间:
       \[ \mathbf{\hat{x}} = f'(W_d \mathbf{h} + b_d) \]
       其中,\( f' \) 是解码器的激活函数,\( \mathbf{\hat{x}} \) 是输入 \( \mathbf{x} \) 的重构。

  5. 损失函数:  自编码器的训练涉及到最小化输入数据和重构数据之间的差异,这通常通过一个损失函数来实现,如均方误差(MSE):
       \[ L(\mathbf{x}, \mathbf{\hat{x}}) = \|\mathbf{x} - \mathbf{\hat{x}}\|^2_2 \]

  6. 训练过程:  通过反向传播算法和梯度下降(或其他优化算法)来调整权重 \( W_e \)、\( W_d \) 和偏置 \( b_e \)、\( b_d \),以最小化损失函数。

  7. 降维和特征提取: 训练完成后,编码器部分可以单独用作一个特征提取器,将输入数据映射到低维的编码空间。

  8. 非线性能力: 自编码器通过其隐含层的非线性激活函数获得非线性映射的能力,这使得它能够捕捉和表示数据中的复杂关系。

自编码器是无监督学习的典型例子,因为它们不需要标记数据来学习数据的压缩表示。此外,自编码器可以设计为稀疏的、去噪的或具有正则化项,以促进学习更加健壮的特征表示。

1.6 局部线性嵌入(LLE)

LLE是一种非线性降维技术,它通过保持数据点之间的局部邻近关系来进行投影。

局部线性嵌入(Locally Linear Embedding,简称LLE)是一种著名的非线性降维技术,它旨在通过保持数据点之间的局部邻近关系来揭示数据的内在几何结构。LLE的核心思想是:在高维空间中彼此接近的点,在低维空间的嵌入表示中也应该保持接近。以下是LLE方法的数学描述和步骤:

  1. 寻找邻居:  对于数据集中的每个点 \( x_i \),找到其 \( k \) 个最近邻的点。这通常通过计算所有点对之间的欧氏距离来实现。

  2. 构建权重矩阵: 对于每个点 \( x_i \),使用其 \( k \) 个邻居来构建一个权重向量 \( w_{ij} \),使得这些邻居的加权组合尽可能好地近似原始点。权重 \( w_{ij} \) 可以通过最小化以下目标函数获得:
       \[ \epsilon_i = \sum_{j \in N_i} w_{ij} x_j - x_i \]
       其中,\( N_i \) 是点 \( x_i \) 的最近邻索引集合。

  3. 约束优化:权重 \( w_{ij} \) 需要满足两个约束:权重之和为1,以及每个点是其自身的邻居(权重矩阵对角线上的元素为1)。

  4. 计算嵌入坐标: 在低维空间(通常是二维或三维)中,寻找新的坐标 \( y_i \) 使得原始的局部距离关系尽可能地被保留。这可以通过以下目标函数来实现:
       \[ \Phi(Y) = \sum_{i=1}^{n} \sum_{j \in N_i} w_{ij}^2 \| y_i - y_j \|^2 \]
       其中,\( Y \) 是所有点在低维空间中的坐标矩阵。

  5. \[ \Phi(Y) \] 的优化:
       通过迭代优化算法(如梯度下降)来求解 \( Y \),使得 \( \Phi(Y) \) 最小。

  6. 获得低维表示: 最终,每个原始数据点 \( x_i \) 在低维空间的表示由 \( y_i \) 给出,这就是LLE降维后的输出。

LLE方法的优势在于其能够保留数据的局部结构,并且不需要对高维空间中的数据分布做出任何假设。然而,LLE也有一些局限性,比如对参数(如邻居数 𝑘k)的选择敏感,以及计算成本较高,尤其是在处理大规模数据集时。尽管如此,LLE在许多领域,如生物信息学、文本分析和图像处理中,仍然是一个有用的工具。

1.7 t-分布随机邻域嵌入(t-SNE)

t-SNE是一种非线性投影方法,特别适合于将高维数据集降维到二维或三维,用于数据可视化。

t-分布随机邻域嵌入(t-SNE)是一种强大的非线性降维和数据可视化技术,它特别适合将高维数据集有效地降至二维或三维。t-SNE的目标是在低维空间中保持数据点之间的相似性,从而使得在原始高维空间中相似的点在低维空间中也彼此靠近。以下是t-SNE方法的数学描述和步骤:

  1. 高维空间的概率分布: 在原始高维空间中,t-SNE首先构建一个概率分布,表示每个数据点与其邻居之间的相似性。通常,这个分布是基于高斯核函数的,其方差与每个点的邻域大小成比例。

  2. 低维空间的概率分布: 在降维后的低维空间(通常是二维或三维)中,t-SNE定义了一个新的概率分布,该分布也是基于相似性,但使用了t分布而不是高斯分布。t分布相比于高斯分布有更重的尾部,这使得t-SNE能够更好地区分聚类。

  3. 相似性矩阵:  对于高维空间和低维空间,分别计算每个数据点的相似性矩阵。高维空间的相似性通常通过高斯核函数 \( P_{ij} = \frac{exp(-\frac{\|x_i - x_j\|^2}{2\sigma_i^2})}{\sum_{k}\exp(-\frac{\|x_i - x_k\|^2}{2\sigma_i^2})} \) 来计算,其中 \( \sigma_i \) 是与点 \( x_i \) 相关的带宽参数。

  4. 优化目标函数: t-SNE的目的是找到一个低维表示,使得高维空间和低维空间的概率分布之间的Kullback–Leibler (KL) 散度最小化:
       \[ C = \sum_{i=1}^{n} KL(P_{i} || Q_{i}) = \sum_{i=1}^{n} \sum_{j=1}^{n} P_{ij} \log \frac{P_{ij}}{Q_{ij}} \]
       其中,\( P_{ij} \) 是高维空间中的概率分布,\( Q_{ij} \) 是低维空间中的概率分布。

  5. 梯度下降: 通过随机梯度下降或其他优化算法来调整低维空间中的数据点位置,以最小化目标函数 \( C \)。

  6. 获得低维表示: 优化完成后,每个原始数据点在低维空间的位置就确定了,这就是t-SNE降维后的输出。

t-SNE的一个关键特点是它在局部邻域内保持了很好的结构,但在全局结构的保持上可能不如其他一些方法。此外,t-SNE对于高维数据集中的点的数量非常敏感,且计算成本较高,特别是在处理大规模数据集时。

尽管存在这些局限性,t-SNE仍然是一个非常流行的工具,尤其适用于探索性数据分析和高维数据的可视化。它可以帮助揭示数据中的复杂结构和模式,从而为进一步的分析和建模提供有价值的见解。

1.8 等距映射(Isomap)

Isomap是一种非线性投影方法,它通过保持数据点之间的测地距离来尝试保持数据的整体几何结构。

Isomap(Isometric Mapping)是一种非线性降维技术,用于在低维空间中保持数据点之间的测地距离,从而尝试保持数据的整体几何结构。Isomap特别适合于处理那些分布在非线性流形上的数据。以下是Isomap方法的数学描述和步骤:

  1. 计算测地距离: Isomap的第一步是在高维数据空间中计算每对数据点之间的测地距离。测地距离是指在数据的流形结构上两点之间的最短路径长度,这通常通过Dijkstra算法或Floyd-Warshall算法计算得到。

  2. 构建最近邻图: 基于测地距离,构建一个无向图,其中每个数据点是一个顶点,点对之间的边的权重等于它们的测地距离。

  3. 高斯核函数:使用高斯核函数基于测地距离来构建一个相似性矩阵,表示为:
       \[ K_{ij} = \exp\left(-\frac{d_{ij}^2}{2\sigma^2}\right) \]
       其中,\( d_{ij} \) 是点 \( i \) 和 \( j \) 之间的测地距离,\( \sigma \) 是核函数的带宽参数。

  4. 构建低维空间: Isomap的目标是找到一个低维空间,使得在这个空间中点对之间的欧氏距离尽可能接近于它们的高维空间中的测地距离。

  5. 多维缩放(MDS): 使用多维缩放方法来找到一个低维空间的点集,这个点集试图保持高维空间中的相似性矩阵中的信息。MDS旨在保持点对之间的距离比例,通过优化一个目标函数来实现:
       \[ \min_{Y} \sum_{i < j} (d_{ij} - \|y_i - y_j\|)^2 \]
       其中,\( Y \) 是低维空间中的点集,\( y_i \) 和 \( y_j \) 分别是原始数据点 \( x_i \) 和 \( x_j \) 在低维空间中的坐标。

  6. 优化和降维: 通过迭代优化算法(如梯度下降)来求解低维空间中的点集,使得上述MDS目标函数最小化。

  7. 获得低维表示: 最终,每个原始数据点在低维空间的坐标 \( y_i \) 就是Isomap降维后的输出。。

Isomap的优势在于其能够通过保持测地距离来捕捉数据的内在几何结构,这使得它特别适用于处理流形学习问题。然而,Isomap的计算成本较高,特别是在计算测地距离时,且对参数选择(如带宽参数 σ 和邻居数目)敏感。尽管如此,Isomap在许多领域,如生物信息学、文本分析和图像处理中,仍然是一个有用的工具。

1.9 多维缩放(MDS)

MDS试图在低维空间中保持对象之间的距离,常用于数据可视化。

多维缩放(Multidimensional Scaling,简称MDS)是一种用于数据可视化的降维技术,它旨在将高维空间中的对象映射到低维空间(通常是二维或三维),同时尽可能保持对象之间的距离。MDS试图在低维空间中保持对象间的距离比例,以便在降维后的空间中直观地展示对象的相似性或差异性。以下是MDS的数学描述和步骤:

1. **距离矩阵**:
   首先,计算高维空间中每对对象之间的距离,构建一个距离矩阵 \( D \)。距离的计算可以是欧氏距离、曼哈顿距离或其他适合数据特性的距离度量。

2. **双中心化矩阵**:
   为了找到低维空间的表示,MDS使用双中心化矩阵 \( B \),它是距离矩阵 \( D \) 的函数,可以通过以下方式计算:
   \[ B = -\frac{1}{2} J D J \]
   其中,\( J \) 是一个 \( n \times n \) 的矩阵,其每一行和每一列的元素都是1,\( n \) 是对象的数量。

3. **特征值分解**:
   对双中心化矩阵 \( B \) 进行特征值分解,得到特征值 \( \lambda_i \) 和相应的特征向量 \( u_i \)。

4. **选择特征向量**:
   根据特征值的大小,选择最重要的 \( k \) 个特征向量(对应于最大的 \( k \) 个特征值),这些特征向量定义了低维空间中的坐标轴。

5. **构造低维坐标**:
   使用选定的特征向量构造一个 \( n \times k \) 的矩阵 \( Y \),其中每一行代表一个对象在低维空间中的坐标:
   \[ Y = \sqrt{\lambda_1} u_1 \; \sqrt{\lambda_2} u_2 \; ... \; \sqrt{\lambda_k} u_k \]

6. **降维后的空间**:
   矩阵 \( Y \) 中的每一列提供了一个对象在降维后 \( k \) 维空间中的坐标。

7. **可视化**:
   使用 \( Y \) 中的坐标,可以在二维或三维空间中对对象进行可视化,从而直观地展示它们之间的关系。

MDS的优势在于其简单性和直观性,它可以揭示高维数据集中的模式和结构。然而,MDS也有一些局限性,比如它对距离度量的尺度敏感,且在高维空间中计算距离矩阵可能非常耗时。此外,MDS不保证找到全局最优解,特别是当数据点数量很大时。

尽管存在这些局限性,MDS在许多领域,如市场研究、社会科学和生物信息学中,仍然是一个非常有用的工具,用于探索性数据分析和数据可视化。

1.10 拉普拉斯特征映射(Laplacian Eigenmaps)

       这是一种基于图的非线性降维技术,它通过保持数据点在图连接结构中的邻接关系来进行投影。

       拉普拉斯特征映射(Laplacian Eigenmaps)是一种基于图论的非线性降维技术,它用于在降维后的空间中保持数据点之间的局部相似性或邻接关系。Laplacian Eigenmaps通常用于那些可以被建模为图结构的数据集,例如社交网络、分子结构、图像等。以下是Laplacian Eigenmaps的数学描述和步骤:

  1. 相似性图: 首先,构建一个相似性图,该图的顶点代表数据点,边代表数据点之间的相似性。相似性可以通过多种方式计算,例如高斯核函数、余弦相似性等。

  2. 相似性矩阵:基于相似性图,构建一个相似性矩阵 \( S \),其元素 \( S_{ij} \) 表示第 \( i \) 个和第 \( j \) 个数据点之间的相似性。

  3. 度矩阵:计算一个度矩阵 \( D \),其对角线元素 \( D_{ii} \) 是顶点 \( i \) 的度(即与顶点 \( i \) 相连的边的数量),非对角线元素为0。

  4. 正规化的图拉普拉斯矩阵:定义图拉普拉斯矩阵 \( L \) 为:
       \[ L = D - S \]
       其中,\( L \) 反映了图中的局部连接性。为了进行谱分析,通常使用正规化的图拉普拉斯矩阵:
       \[ L' = D^{-1/2} L D^{-1/2} \]

  5. 特征值分解:  对正规化的图拉普拉斯矩阵 \( L' \) 进行特征值分解,得到特征值 \( \lambda_i \) 和相应的特征向量 \( \phi_i \)。

  6. 选择特征向量: 选择最小的 \( k \) 个非零特征值对应的特征向量,这些特征向量定义了数据在低维空间中的坐标。

  7. 构造低维表示:  将这些特征向量组合成一个矩阵 \( \Phi \),其列是 \( \phi_i \),这样每个原始数据点 \( x_i \) 在低维空间中的坐标就是 \( \Phi_i \)。

  8. 降维后的空间: 使用矩阵 \( \Phi \) 中的坐标,可以在 \( k \) 维空间中表示原始的高维数据点。

Laplacian Eigenmaps的优势在于其能够通过保持局部邻接关系来捕捉数据的流形结构,这使得它非常适合处理非线性结构化数据。然而,计算图拉普拉斯矩阵和进行特征值分解的计算成本可能较高,特别是在处理大规模图数据时。

Laplacian Eigenmaps在许多领域都有应用,包括机器学习、模式识别、计算机视觉和生物信息学等,它为非线性降维和数据可视化提供了一个强大的工具。

1.11 因子分析(FA)

FA是一种统计方法,用于识别观测变量中的潜在关联,它试图用较少的潜在变量解释数据中的相关性。

1.12 随机投影(Random Projection)

随机投影是一种简单且计算效率高的降维方法,它通过随机选择投影方向来减少数据的维度。

随机投影(Random Projection)是一种简单、高效且计算成本较低的降维技术,特别适用于大规模数据集。这种方法的核心思想是利用随机性来近似地保持数据的原始分布,通过随机选择的投影方向将数据从高维空间映射到低维空间。以下是随机投影的数学描述和步骤:

  1. 随机矩阵: 随机生成一个 \( D \times k \) 的矩阵 \( R \),其中 \( D \) 是原始数据的维度,\( k \) 是降维后的数据维度,且 \( k \ll D \)。矩阵 \( R \) 的每个元素都是独立同分布的随机变量,通常服从标准正态分布或伯努利分布。

  2. 投影操作: 将原始数据矩阵 \( X \) 中的每个数据点 \( x_i \) 与随机矩阵 \( R \) 相乘,得到投影后的数据点 \( y_i \):
       \[ y_i = R x_i \]
       其中,\( x_i \) 是原始数据空间中的第 \( i \) 个数据点,\( y_i \) 是降维后空间中的对应点。

  3. 降维后的数据集:重复上述投影操作,得到整个数据集的降维表示 \( Y \):
       \[ Y = [y_1, y_2, ..., y_n] = X R \]
       其中,\( n \) 是数据点的总数。

  4. 保持数据特征: 随机投影方法的一个关键特性是它能够以很高的概率近似地保持原始数据的某些特征,如距离和角距离。这是基于随机矩阵的约翰逊-林登斯特拉特(Johnson-Lindenstrauss)引理。

  5. 计算效率: 由于矩阵乘法的计算成本远低于复杂的优化算法,随机投影特别适用于大规模数据集,可以快速实现降维。

  6. 局限性: 随机投影的一个主要局限性是它可能会丢失一些信息,因为它不针对数据的特定结构进行优化。然而,它通常能够以较小的误差提供一个合理的降维近似。

  7. 应用场景: 随机投影常用于数据预处理,尤其是在需要快速降维以减少计算成本的场景中,如大数据处理、索引和搜索、以及作为其他更复杂降维技术的预处理步骤。

随机投影是一种非常实用的降维方法,它在保持计算效率的同时,提供了一种减少数据维度的有效手段。尽管它不如一些专门设计的降维技术那样能够完全捕捉数据的内在结构,但它在许多实际应用中仍然非常有用。

      每种投影方法都有其特定的应用场景和优缺点。在选择投影方法时,需要考虑数据的特性、分析目标、模型的需求以及对计算资源的要求。在实际应用中,可能需要尝试多种方法,以找到最适合特定数据集的投影技术。

2. 降维的方法

       降维是一种减少数据集中变量数量的技术,旨在简化数据表示,提高计算效率,并可能提高模型的性能。以下是一些常用的降维方法:

  1. 主成分分析(PCA)

    PCA是一种统计方法,它通过正交变换将数据转换到新的坐标系中,使得新坐标系的第一主成分具有最大的方差(数据的最大变异性),以此类推。这种方法常用于数据可视化和噪声降低。
  2. 独立成分分析(ICA)

    ICA旨在从多变量信号中分离出统计独立的子成分,它通常用于信号处理和特征提取,特别适用于源信号是统计独立的场合。
  3. 线性判别分析(LDA)

    LDA是一种监督学习的降维技术,它不仅用于降维,还用于分类。LDA试图找到一个线性组合的特征,以最大化类间可分性。
  4. 奇异值分解(SVD)

    SVD是一种因子分解方法,可以用于矩阵的降维,常用于信号处理和统计学。
  5. 局部线性嵌入(LLE)

    LLE是一种无监督的非线性降维技术,它通过保持数据点之间的局部邻近关系来进行降维。
  6. t-分布随机邻域嵌入(t-SNE)

    t-SNE是一种非线性降维技术,特别适合于将高维数据集降维到二维或三维,用于数据可视化。
  7. 多维缩放(MDS)

    MDS试图在低维空间中保持对象之间的距离,常用于数据可视化。
  8. 自编码器(Autoencoders)

    自编码器是一种使用神经网络进行非线性特征提取的技术,通过训练网络学习数据的压缩表示。
  9. 因子分析(FA)

    FA是一种统计方法,用于识别观测变量中的潜在关联,它试图用较少的潜在变量解释数据中的相关性。
  10. UMAP(Uniform Manifold Approximation and Projection)

    UMAP是一种非线性降维技术,用于高维数据的可视化,它保留了更多的全局结构信息。12
  11. 随机森林(Random Forest)

    虽然不是一种传统的降维技术,但随机森林可以用于特征选择,通过评估特征对模型预测能力的贡献来选择重要特征。
  12. 前向特征选择和反向特征消除

    这些方法通过添加或删除特征来优化模型性能,从而间接实现降维。

       每种方法都有其特定的应用场景和优缺点。选择哪种降维技术取决于数据的特性、分析目标、模型的需求以及对计算资源的要求。在实际应用中,可能需要尝试多种方法,以找到最适合特定数据集的降维技术。

  • 39
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
PCA(Principal Component Analysis)主成分分析是一种常用的数据降维方法,可以将高维数据投影到低维空间中。在点云处理中,PCA可以应用于点云的降维投影,将原始的高维点云数据投影到一个低维空间中,并且保留原始点云数据中的主要特征。 下面是使用PCL库进行点云PCA降维投影的一些步骤: 1. 读取点云数据 使用PCL库提供的PointCloud接口读取点云数据。 ```cpp pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>); pcl::io::loadPCDFile("pointcloud.pcd", *cloud); ``` 2. 计算点云的协方差矩阵 使用PCL库提供的计算协方差矩阵的函数,计算点云的协方差矩阵,从而得到点云的主成分。 ```cpp pcl::PCA<pcl::PointXYZ> pca; pca.setInputCloud(cloud); Eigen::Matrix3f covariance = pca.getCOVarianceMatrix(); ``` 3. 计算点云主成分 通过计算协方差矩阵的特征值和特征向量,可以得到点云的主成分。 ```cpp Eigen::SelfAdjointEigenSolver<Eigen::Matrix3f> eigen_solver(covariance, Eigen::ComputeEigenvectors); Eigen::Matrix3f eigenvectors = eigen_solver.eigenvectors(); ``` 4. 将点云投影到主成分上 将点云数据投影到主成分上,得到点云在主成分上的投影值。 ```cpp pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_projected(new pcl::PointCloud<pcl::PointXYZ>); pca.project(*cloud, *cloud_projected); ``` 5. 保存点云投影数据 最后,将点云在主成分上的投影数据保存到文件中。 ```cpp pcl::io::savePCDFile("pointcloud_projected.pcd", *cloud_projected); ``` 以上就是使用PCL库进行点云PCA降维投影的主要步骤。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值