[机器学习笔记]降维(PCA)


本文主要将对降维所涉及到的概念知识点和推导思路进行简述,并附上具体的推导笔记,同时结合uci上的“鸢尾花分类”进行实战


一、维度灾难

  1. 现实应用中特征维度经常成千上万,要满足密采样所需的样本数目是个天文数字。

    另外许多学习方法都涉及距离计算,而高维空间会给距离计算带来很大的麻烦(高维空间中计算内积都麻烦)。

    因而,在高维情形下出现的数据样本稀疏、距离计算困难等问题是所有机器学习方法共同面临的严重障碍,称作“维度灾难”(curse of dimensionality)

  2. 缓解维度灾难的一个重要途径是降维(dimension reduction)。

    降维之所以有效的原因是:人们观测或者收集到的数据样本虽然是高维的,但是与学习任务密切相关的也许仅仅是某个低维分布,即高维空间中的一个低维“嵌入”。

  3. 常见的降维方法:
    • 监督降维算法。如:线性判别分析Linear Discriminant Analysis:LDA
    • 无监督降维算法。如:主成分分析PCA
  4. 对于降维效果的评估,通常是比较降维前后学习器的性能。如果性能有所提高,则认为降维起了作用。

    也可以将维数降至二维或者三维,然后通过可视化技术来直观地判断降维效果。

  5. 对于常见的降维算法,无论是PCA 还是流形学习,都是基于距离来计算重构误差。此时建议对特征进行标准化,因为距离的计算依赖于特征的量纲。如身高特征:
    • 如果采用m量纲,则取值范围通常在1~2 之间。
    • 如果采用cm 量纲,则取值范围通常在100~200 之间。

    采用不同的量纲会导致不同的重构误差。


二、数学背景

在理解降维之前,我们需要先理解样本均值和样本方差的矩阵表示

  1. 样本的矩阵表达
    DATA(X)=(x1 x2 x3...xn)TDATA(X)=(x_1 x_2 x_3...x_n )^T xix_i默认是列向量

  2. 样本均值和样本方差的矩阵表示
    {x=1NXTINS=1NXHXT\left\{ \begin{aligned} \overline{x}=\frac{1}{N}\cdot X^T\cdot I_N \\ S=\frac{1}{N}X\cdot H\cdot X^T \\ \end{aligned} \right.
    其中
    H=IN1NININT IN=(1 1...1)NTH=I_N-\frac{1}{N}I_NI_N^T I_N=(1 1...1)_N^T

下面是具体的公式笔记推导
[机器学习笔记]降维(PCA)


三、PCA算法

1.PCA算法
  • 输入:

    • 样本集
    • 低维空间维度d
  • 输出:投影矩阵

  • 算法步骤

    • 对所有样本进行中心化操作:
    • 计算样本的协方差矩阵
    • 对协方差矩阵 做特征值分解
    • 取最大的 d个特征值对应的单位特征向量 ,构造投影矩阵
2.从最大投影角度理解进行推导

[机器学习笔记]降维(PCA)

四、核化线性降维 KPCA

  1. PCA方法假设从高维空间到低维空间的映射是线性的,但是在不少现实任务中可能需要非线性映射才能找到合适的低维空间来降维。

    非线性降维的一种常用方法是基于核技巧对线性降维方法进行核化kernelized, 如核主成分分析Kernelized PCA:KPCA ,它是对PCA的一种推广。

  2. 于是引入核函数:。从而解决内积带来的无法求解的问题。
  3. 对于新样本x,其投影后第 j维的坐标为:

其中 为行向量 的第 j个分量。

可以看到:为了获取投影后的坐标, KPCA需要对所有样本求和,因此它的计算开销较大。


五、实战

点击此处,获得代码

[机器学习笔记]降维(PCA)
[机器学习笔记]降维(PCA)
[机器学习笔记]降维(PCA)