Skip to content

第 14 章 降维

降维用于把高维数据压缩到低维空间,同时尽量保留主要信息。课程重点介绍主成分分析,也就是 PCA。

14.1 动机一:数据压缩

数据压缩可以减少存储空间,也能让算法运行更快。

例如两个高度相关的特征可以压缩成一个特征:

text
厘米表示的长度
英寸表示的长度

这两个特征本质上信息重复,可以降到一维。

14.2 动机二:数据可视化

如果数据有很多维,很难直接画图。

降维可以把高维数据降到 2 维或 3 维,用于可视化。这样可以观察数据结构、聚类情况或异常点。

14.3 主成分分析问题

PCA 的目标是找到一个低维子空间,使数据投影到这个子空间后,投影误差尽可能小。

2 维降到 1 维时,PCA 会找一条直线,让所有点到这条直线的平方距离之和最小。

注意:PCA 不是线性回归。线性回归最小化的是垂直方向预测误差,PCA 最小化的是点到低维子空间的投影误差。

14.4 主成分分析算法

使用 PCA 前通常要做均值归一化,必要时也要做特征缩放。

步骤:

  1. 对每个特征做均值归一化。
  2. 计算协方差矩阵。
  3. 对协方差矩阵做奇异值分解。
  4. 取前 K 个主成分。
  5. 将原始数据投影到低维空间。

协方差矩阵:

Σ=1mXTX

奇异值分解:

matlab
[U, S, V] = svd(Sigma)

降维:

z=UreduceTx

14.5 选择主成分的数量

选择 K 时,希望保留足够多的方差信息。

常用标准是保留 99% 的方差。

可以通过奇异值矩阵 S 判断:

i=1KSiii=1nSii0.99

满足这个条件的最小 K 就是可选维度。

14.6 重建的压缩表示

PCA 降维后,可以从低维表示近似重建原始数据。

降维:

z=UreduceTx

重建:

xapprox=Ureducez

重建结果不是原始样本的完全恢复,而是低维子空间中的近似。

14.7 主成分分析法的应用建议

PCA 常用于:

  • 数据压缩。
  • 加速监督学习。
  • 数据可视化。

使用 PCA 加速监督学习时,应该只在训练集上学习 PCA 映射,然后把同样映射应用到交叉验证集和测试集。

不建议把 PCA 当作防止过拟合的主要方法。过拟合应优先考虑正则化。

也不应该在一开始就默认使用 PCA。通常先用原始特征训练模型,确实需要压缩或加速时再使用 PCA。

Powered by VitePress