数据降维

109 阅读4分钟

为什么要降维?关键原因解析

1. 维度灾难问题

  • 高维空间稀疏性:当特征维度增加时,数据点之间的距离会急剧增大,导致空间变得非常稀疏
  • 距离度量失效:在高维空间中,所有点对的距离都趋于相等,使基于距离的算法失效
  • 样本需求指数增长:可靠估计模型参数所需样本量随维度指数增长

2. 计算效率提升

  • 降低特征维度可显著减少存储需求和计算时间

  • 训练时间与特征数量的关系:

    • 线性模型:O(n)
    • SVM:O(n²)到O(n³)
    • 神经网络:O(n×m)(m为隐含层节点数)

3. 可视化需求

  • 人类视觉系统只能处理3维以下数据
  • 降维使高维数据可视化成为可能

4. 去除噪声和冗余

  • 高维数据常包含大量无关特征和噪声
  • 特征间常存在高度相关性(冗余)
  • 降维可保留主要信息,去除噪声

5. 防止过拟合

  • 高维小样本数据容易导致过拟合
  • 降维减少参数数量,提高模型泛化能力

三种降维方法对比与选择指南

特性PCANMFt-SNE
类型线性线性非线性
数据要求非负
结果可解释性
保留信息全局方差局部结构局部结构
计算复杂度O(n³)O(mnk)O(n²)
参数敏感性中等
适合应用去相关/压缩主题建模/图像分析数据可视化

选择策略:

  1. 特征压缩和去相关 → PCA
  2. 非负数据处理 → NMF
  3. 高维数据可视化 → t-SNE
  4. 线性关系数据 → PCA/NMF
  5. 非线性结构数据 → t-SNE/UMAP

解释

1. 高维空间稀疏性

现象描述:

当特征维度增加时,相同数量的数据点在更高维度的空间中分布变得极其稀疏。

数学解释:

  • 考虑一个单位超立方体(各维度范围[0,1])
  • 在d维空间中,超立方体体积为1^d = 1
  • 如果我们用网格划分空间(每个维度划分10份),则单元格数量为10^d
  • 对于固定样本量n,每个单元格平均样本数为n/10^d

示例对比:

维度单元格数量1000个样本的密度
1维10100样本/单元格
3维1,0001样本/单元格
10维10,000,000,0000.0000001样本/单元格

实际影响:

  • 数据代表性降低:每个数据点周围都是巨大的空白区域
  • 局部模式失效:基于局部邻域的算法(如KNN)需要更大的邻域范围才能找到邻近点
  • 密度估计困难:概率密度估计需要指数增长的样本量才能保持准确性

2. 距离度量失效

现象描述:

在高维空间中,所有点对之间的距离趋于相等,导致基于距离的算法失效。

数学证明:

考虑d维空间中独立同分布的点:

  • 两点间欧氏距离平方:D2=∑i=1d(xi−yi)2D2=∑i=1d​(xi​−yi​)2
  • 期望:E[D2]=d⋅E[(xi−yi)2]E[D2]=d⋅E[(xi​−yi​)2]
  • 方差:Var(D2)=d⋅Var[(xi−yi)2]Var(D2)=d⋅Var[(xi​−yi​)2]

距离的相对波动:

Var(D2)E[D2]=d⋅σd⋅μ=σμd→0(d→∞)E[D2]Var(D2)​​=d⋅μd​⋅σ​=μd​σ​→0(d→∞)

3. 样本需求指数增长

现象描述:

可靠估计模型参数所需样本量随维度指数增长。

数学解释:

  • 考虑估计概率密度函数
  • 在d维空间中,需要划分空间为单元格子
  • 每个维度划分m份,总共单元数:m^d
  • 要可靠估计每个单元的概率,需要每个单元有k个样本
  • 总样本需求:n > k·m^d

实例说明:

任务维度所需样本量
密度估计1维100
密度估计10维100^10 = 10^20
线性回归d维O(d)
二次决策边界d维O(d^2)