文章目录

  • 第12章:降维
  • 12.1 主成分分析(PCA)
  • 12.2 主成分分析的算法
  • 12.3 低维空间维度的选择
  • 12.4 应用PCA的建议


第12章:降维

12.1 主成分分析(PCA)

数据的特征数量,又称为向量的维度。降维(dimensionality reduction)是通过一些方法,减少数据的特征数量,以降低维度,通常采用主成分分析PCA(Principal Component Analysis)。降维的作用有:

  • 数据压缩,减小占用的存储空间
  • 加快算法的计算速度
  • 低维平面可以可视化数据

例如,将数据从二维降至一维就是把二维的点都映射到一条直线,用一个实数z就可以表示;三维降到二维就是把三维的点都映射到一个平面,用两个实数z1和z2就可以表示,如下图所示。

深度学习 降维是什么 降维分析_数据

深度学习 降维是什么 降维分析_数据分析_02


主成分分析PCA是寻找一个低维平面,使得各个数据点到平面的投影距离最小。换句话说,就是寻找 k 个向量,作为子空间,将数据映射到这个子空间上,则数据的维度转换为 k 。

如下图所示,三维空间的数据几乎可看作分布在一个斜面上,则可在这个斜面上建立一个二维的平面,将数据映射上去,转换为二维空间。

深度学习 降维是什么 降维分析_深度学习 降维是什么_03


PCA与线性回归的区别:

深度学习 降维是什么 降维分析_数据分析_04


如上图所示,

①左图线性回归是要通过所有的x对变量y进行预测,而PCA的变量都是平等的,没有要预测的y。

②左图线性回归的最小距离是垂直于横轴,而右图的PCA是点到直线的正交距离。

12.2 主成分分析的算法

主成分分析PCA的算法主要由三部分组成:

  1. 数据预处理(均值归一化和特征规范化)
  2. 计算协方差矩阵 深度学习 降维是什么 降维分析_机器学习_05
  3. 计算协方差矩阵 深度学习 降维是什么 降维分析_机器学习_05

数据预处理主要是进行均值归一化,对每个特征值进行如下变化:深度学习 降维是什么 降维分析_人工智能_07深度学习 降维是什么 降维分析_人工智能_08均值归一化可使得特征的均值为 0 ,其中 深度学习 降维是什么 降维分析_人工智能_09 为特征缩放(取值范围的最大值减去最小值,使之取值范围接近 [-1,1] )。
计算数据的协方差矩阵,采用如下公式,注意 深度学习 降维是什么 降维分析_人工智能_10 是一个矩阵:深度学习 降维是什么 降维分析_数据分析_11进行奇异值分解,在matlab中,可有如下公式:深度学习 降维是什么 降维分析_深度学习 降维是什么_12其中,深度学习 降维是什么 降维分析_深度学习 降维是什么_13深度学习 降维是什么 降维分析_人工智能_14是一个深度学习 降维是什么 降维分析_数据分析_15的矩阵,取前深度学习 降维是什么 降维分析_机器学习_16列,得到深度学习 降维是什么 降维分析_深度学习 降维是什么_17深度学习 降维是什么 降维分析_机器学习_18是一个深度学习 降维是什么 降维分析_深度学习 降维是什么_19的矩阵,接下来:深度学习 降维是什么 降维分析_机器学习_20将每一个向量 深度学习 降维是什么 降维分析_深度学习 降维是什么_21 转换为 深度学习 降维是什么 降维分析_数据_22深度学习 降维是什么 降维分析_数据_22深度学习 降维是什么 降维分析_数据_24

注:最后一步转换的 深度学习 降维是什么 降维分析_深度学习 降维是什么_21 是没有偏置 深度学习 降维是什么 降维分析_数据_26

12.3 低维空间维度的选择

我们已知主成分分析是要寻找一个低维平面,使得各个数据点到这个平面的距离最小,这个距离可采用平均投影误差的平方(average squared projection error)量化,定义如下:深度学习 降维是什么 降维分析_数据分析_27其中,深度学习 降维是什么 降维分析_机器学习_28 是在高维空间中映射到低维平面上的近似点(维度仍然是高维,与 深度学习 降维是什么 降维分析_数据_22 不同, 深度学习 降维是什么 降维分析_数据_22 的维度是低维),深度学习 降维是什么 降维分析_人工智能_31

我们需寻找满足下式的最小的 深度学习 降维是什么 降维分析_机器学习_16深度学习 降维是什么 降维分析_数据_33其中,右侧的数值可根据实际情况调整,0.01为保证了 99% 的方差。
此外,还有一种计算方法,在奇异值分解深度学习 降维是什么 降维分析_数据分析_34中,深度学习 降维是什么 降维分析_人工智能_35,满足下式:深度学习 降维是什么 降维分析_数据_36只需求解最小的 深度学习 降维是什么 降维分析_机器学习_16 ,满足下式即可:深度学习 降维是什么 降维分析_数据分析_38

12.4 应用PCA的建议

  • 使用PCA去防止过拟合是对PCA算法的误用,正则化才是解决过拟合的正确方法。
  • 在用PCA之前,应该先考虑用原始数据进行训练,如果达不到目的(如速度太慢、内存不够时)再考虑PCA,不要一上来就直接用PCA。