【机器学习】课程笔记13_降维(Dimensionality Reduction)

降维

  • 目标1:数据压缩(Motivation Ⅰ: Data Compression)
  • 目标2:可视化(Motivation Ⅱ: Data Visualization)
  • 主成分分析问题(Principal Component Analysis Problem Formulation)
  • 主成分分析算法(Principal Component Analysis Algorithm)
  • 重建的压缩表示(Reconstruction from Compressed Representation)
  • 选择主成分数量(Choosing the Number of Principal Components)
  • 主成分分析法的应用建议(Advice for Applying PCA)

目标1:数据压缩(Motivation Ⅰ: Data Compression)

  • 降维: 另一种类型的无监督学习问题。

  • 降维原因: 数据压缩;可视化。

  • 可以把任何维度的数据降到任何想要的维度,例如将1000维的特征降至100维。可以用于除去冗余特征。

    • 二维降一维:

      【机器学习】课程笔记13_降维(Dimensionality Reduction)_第1张图片

    • 三维降二维:

      【机器学习】课程笔记13_降维(Dimensionality Reduction)_第2张图片

目标2:可视化(Motivation Ⅱ: Data Visualization)

  • 降维可以帮助我们将数据可视化。这样做的问题在于,降维的算法只负责减少维数,新产生的特征的意义就必须由我们自己去发现了。

主成分分析问题(Principal Component Analysis Problem Formulation)

  • 主成分分析(PCA): 问题是要将 n n n维数据降至 k k k维,目标是找到向量 u ( 1 ) u^{(1)} u(1), u ( 2 ) u^{(2)} u(2),…, u ( k ) u^{(k)} u(k)使得所有数据投影到新维度的距离最小。

  • 线性回归与主成分分析的比较:

    • 线性回归: 点与直线上点的距离,预测误差。

    • 主成分分析: 投影距离,投射误差(Projected Error)。

      【机器学习】课程笔记13_降维(Dimensionality Reduction)_第3张图片

  • PCA可以用来进行数据压缩,例如图像处理领域的KL变换使用PCA做图像压缩。但PCA 要保证降维后,还要保证数据的特性损失最小

  • PCA技术的一个很大的优点是完全无参数限制,不需要人为的设定参数或是根据任何经验模型对计算进行干预,最后的结果只与数据相关,与用户是独立的。

    但是,如果用户对观测对象有一定的先验知识,掌握了数据的一些特征,却无法通过参数化等方法对处理过程进行干预,可能会得不到预期的效果,效率也不高。

主成分分析算法(Principal Component Analysis Algorithm)

  • 什么是奇异值分解SVD–SVD如何分解时空矩阵
  • 步骤:
    • 均值归一化: 计算出所有特征的均值,然后令 x j = x j − μ j x_j=x_j-\mu_j xj=xjμj.
    • 特征缩放: 若特征不在同一数量级,还要除以标准差 σ 2 \sigma^2 σ2.
    • 计算协方差矩阵(covariance matrix): Σ = 1 m ∑ i = 1 n ( x ( i ) ) ( x ( i ) ) T \Sigma=\cfrac{1}{m}\displaystyle\sum^n_{i=1}(x^{(i)})(x^{(i)})^T Σ=m1i=1n(x(i))(x(i))T.
    • 计算协方差矩阵 Σ \Sigma Σ的特征向量(eigenvectors):
      • 通过奇异值分解(singular value decomposition)来求解:[U, S, v] = svd(sigma)
      • 对于一个 n × n n \times n n×n维度的矩阵,上式中的 U U U是一个具有与数据之间最小投射误差的方向向量构成的矩阵。如果希望将数据从 n n n维降至 k k k维,只需要取 U U U的前 k k k个向量,获得一个 n × k n \times k n×k维度的矩阵,用 U r e d u c e U_{reduce} Ureduce表示。特征向量为: z ( i ) = U r e d u c e T ∗ x ( i ) z^{(i)}=U^T_{reduce}*x^{(i)} z(i)=UreduceTx(i)
      • x x x n × 1 n \times 1 n×1维的,因此结果是 k × 1 k \times 1 k×1维度。
      • 在SVD中, U   U T = I U \ U^T = I U UT=I,即 U U U转置等于 U U U的逆, U T = U − 1 U^T=U^{-1} UT=U1.

重建的压缩表示(Reconstruction from Compressed Representation)

  • 目的: 从低维表示 z z z回到未压缩的近似表示 x a p p r o x x_{approx} xapprox.

  • x a p p o x = U r e d u c e ∗ z x_{appox}=U_{reduce} * z xappox=Ureducez x a p p o x ≈ x x_{appox}\approx x xappoxx,如图:

    【机器学习】课程笔记13_降维(Dimensionality Reduction)_第4张图片

选择主成分数量(Choosing the Number of Principal Components)

14-5带字幕视频地址:吴恩达机器学习14-5

  • 原则: 平均均方误差训练集方差的比例尽可能小的情况下选择尽可能小的 k k k值。

    • 如果这个比例小于1%,就意味着原本数据的偏差有99%都保留下来了,如果保留95%的偏差,便能非常显著地降低模型中特征的维度了。
  • 步骤:

    • k = 1 k=1 k=1,然后进行主要成分分析,获得 U r e d u c e U_{reduce} Ureduce z z z,计算比例是否小于1%。
    • 如果不是的话再令 k = 2 k=2 k=2,以此类推,直到找到可以使得比例小于1%的最小 k k k 值(原因是各个特征之间通常情况存在某种相关性)。
  • 方法一: 1 m ∑ i = 1 m ∥ x ( i ) − x a p p r o x ( i ) ∥ 2 1 m ∑ i = 1 m ∥ x ( i ) ∥ 2 ≤ 0.01 \cfrac{\cfrac{1}{m}\sum^m_{i=1}\lVert x^{(i)}-x^{(i)}_{approx} \rVert ^2}{\cfrac{1}{m}\sum^m_{i=1}\lVert x^{(i)} \rVert^2} \leq0.01 m1i=1mx(i)2m1i=1mx(i)xapprox(i)20.01

  • 方法二: ∑ i = 1 k s i i ∑ i = 1 n s i i ≥ 0.99 \cfrac{\sum^k_{i=1}s_{ii}}{\sum^n_{i=1}s_{ii}} \geq 0.99 i=1nsiii=1ksii0.99

    • [U, S, v] = svd(sigma)中的 S S S是一个 n × n n \times n n×n对角线矩阵: [ s 11 0 ⋯ 0 0 s 22 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ s n n ] \begin{bmatrix} s_{11} & 0 &\cdots &0 \\ 0 & s_{22} & \cdots & 0\\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \cdots & s_{nn} \end{bmatrix} s11000s22000snn

主成分分析法的应用建议(Advice for Applying PCA)

  • 应用:

    • 数据压缩(利用%选择k)
      • 减少所需存储/硬盘空间
      • 加快算法学习速度
    • 可视化(k=2或k=3)
  • 错误应用:

    • 解决过拟合:

      原因:主要成分分析只是近似地丢弃掉一些特征,它并不考虑任何与结果变量有关的信息,因此可能会丢失非常重要的特征。

    • 视PCA为必要流程:

      最好从所有原始特征开始,只在有必要的时候(算法运行太慢或者占用太多内存)才考虑采用主要成分分析。

你可能感兴趣的:(机器学习,人工智能,算法)