降维

Dimensionality Reduction
将训练数据中的样本 (实例) 从高维空间转换到低维空间,该过程与信息论中有损压缩概念密切相关。(不存在完全无损的降维)

降维概述

维数灾难(Curse of Dimensionality):涉及数字分析、抽样、组合、机器学习、数据挖掘和数据库等诸多领域。通常是指在涉及到向量的计算的问题中,随着维数的增加,计算量呈指数倍增长的一种现象。维度太大也会导致机器学习性能的下降,并不是特征维度越大越好,模型的性能会随着特征的增加先上升后下降。

主要作用

  1. 减少冗余特征,降低数据维度 (去掉冗余特征对机器学习的计算结果不会有影响)
  2. 数据可视化。(t-SNE:将数据点之间的相似度转换为概率。原始空间中的相似度由高斯联合概率表示,嵌入空间的相似度由“t分布”表示,关注数据的局部结构)

为什么需要降维?

  1. 维度灾难 (Curse of Dimensionality):
    • 在高维空间中,数据会变得极其稀疏,导致样本点之间的距离变得几乎相等,使得许多机器学习算法(特别是依赖距离度量的算法,如 K近邻支持向量机)的性能急剧下降。
    • 训练模型所需的样本数量呈指数级增长。
  2. 可视化: 人类只能直观地理解二维或三维数据。降维可以将高维数据投影到低维空间,便于数据可视化和模式发现。
  3. 去噪: 降维可以去除数据中的噪声和冗余信息,保留最重要的特征,从而提高模型的鲁棒性。
  4. 减少存储和计算成本: 降低数据维度可以显著减少存储空间和模型训练、推理所需的计算时间。

奇异值分解 SVD

Singular Value Decomposition SVD

SVD可以将一个矩阵 A 分解为三个矩阵的乘积:正交矩阵 U,VT,对角矩阵 Σ
Pasted image 20241226230057.png

A=UΣVT

(AAT)ui=λiui U 矩阵中每个列向量为左奇异向量
(ATA)vi=λivi V 矩阵中每个列向量为右奇异向量
σi=λi 为奇异值,对角矩阵对角线上的奇异值递减排列

主成分分析 PCA

Principal Component Analysis PCA
基本思想:减少数据集的特征数量,同时尽可能地保留信息:将一个大的特征集转换成一个较小的特征集,这个特征集仍然包含了原始数据中的大部分信息,从而降低了原始数据的维数。

两种实现方法

  1. 基于SVD分解协方差矩阵实现PCA算法
  2. 基于特征值分解协方差矩阵实现PCA算法

第一步:均值归一化,计算出所有特征的均值 xj=xjμj
第二步:计算协方差矩阵 Σ=1ni=1n(xixiT)
第三步:计算协方差矩阵的特征值和特征向量
对特征值从大到小排序,选择其中最大的 k个。然后将其对应的 k 个特征向量分别作为行向量组成特征向量矩阵 P

计算实例

A=(120202) 的奇异值分解。
因为 A 的秩为 2,所以最多有两个特征值,计算 AAT 的特征值,即可得到 Σ

AAT=(5228)|λIAAT|=(λ4)(λ9)

AAT 有特征值 λ1=9,λ2=4,则 ATA 有特征值 λ1=9,λ2=4,λ3=0
(λIAAT)p=0 计算特征向量,作为矩阵 U 的列向量
(λIATA)p=0 计算特征向量,作为矩阵 V 的列向量
(注意均将特征向量归一化为单位向量!!!)

U=15(1221)V=135(50252654325)

奇异值为特征值开根号,降序排列: σ1=9=3σ2=4=2

Σ=(300020)A=UΣVT

Dimensionality Reduction

降维是机器学习中一种重要的无监督学习技术,旨在将高维数据(即具有大量特征的数据)映射到低维空间,同时尽可能地保留数据中的重要信息(如结构、模式或区分性)。

两大类降维方法

降维方法主要分为两类:

  1. 特征选择 (Feature Selection):

    • 原理: 从原始特征集中直接选择一个最有代表性的子集,丢弃不相关的或冗余的特征。
    • 特点: 保留了原始特征的物理意义,可解释性强。
    • 方法: 特征工程中的过滤法、包装法、嵌入法。
  2. 特征提取 (Feature Extraction):

    • 原理: 将原始特征通过某种变换或组合,生成一组全新的、更低维的特征。这些新特征通常是原始特征的线性或非线性组合。
    • 特点: 可能会失去原始特征的物理意义,但通常能更有效地压缩信息。

常见降维算法

1. 线性降维

2. 非线性降维