4 主成分分析(PCA)

1.基本概念

主成分分析由卡尔·皮尔逊于1901年发明,用于分析数据及建立数理模型。其方法主要是通过对协方差矩阵进行特征分解,以得出数据的主成分(即特征向量)与它们的权值(即特征值)。PCA是最简单的以特征量分析多元统计分布的方法。

维基百科-主成分分析

个人理解:降维的依据在于将两个及两个以上的相关性强的特征,压缩到1个或更少的特征上。

2.Motivation

降维的作用从大的方向将有两点:

  • Data Compression

从2D降到1D:

从3D降到2D:

  • Data Visualization

可以将高维的数据降低到2D或者3D,以便于制图可视化。

3.Problem formulation and algorithm

直观理解:PCA寻找的是使投影误差最小化的面。(下图中蓝色的线段代表投影误差)

在应用PCA之前,先进行均值归一化和特征规划化使得所有特征的均值为0.

3.1 Data preprocessing

在应用主成分分析之前,都有一个数据预处理的过程。

对于一组被标注的数据:

一般先进行均值归一化(mean normalization):

首先应该计算出每个特征的均值 uj,然后用每个 xj-uj 来替换xj,这样就使得所有特征的均值为0。

然后,由于不同特征的取值范围不一样,然后可以对每个特征就行特征缩放,使其处于可比的范围。

3.2 Algorithm

在2D下,寻找向量 u(1) 使得投影误差的平方和最小,或者在3D下,寻找向量 u(1),u(2) 来定义一个平面,来对3D的数据进行投影。

如何计算出原始点对应的新空间的坐标Z,需要先确定向量U1,U2,…,UK。

3.2.1 Covariance matrix(Σ)

将数据从n维降低到k维,第一步需要做的是计算协方差矩阵:

协方差矩阵是一个对称正定的矩阵。

3.2.2 Eigenvectors of matrix(Σ)

第二步,需要做的是计算协方差矩阵matrix(Σ)的特征向量:

其中,SVD表示奇异值分解。

其中,U 是一个 n*n的矩阵,每一列表示一个特征向量,如果想将数据从 n 维降低到 k 维,则只需要取数据的前 k 列即可,即用来做投影数据的 k 个方向。

注意:其中的样本x没有x0 = 1这一项。

3.2.3 Reduce dimission

用矩阵 U 的前 k 列于原始x进行计算,即可得到降维后的数据:

将矩阵U定义为Ureduce ,则:

4. Applying PCA

4.1 Reconstruction from compressed representation

压缩后的数据,如果近似地回到原始高维度的数据呢?

4.2 Choosing the number of principal components

如何选择保留的主成分的数量K?

选择的K能够一般保留99%的差异性。

通过S矩阵,可以简化整个计算过程:

简化的计算为:

4.3 Adivice for applying PCA

  • PCA可以提高学习算法的速度。

  • 使用PCA来防止过拟合,是一个很烂的注意。
  • 注意,使用PCA之前,应该先看看不使用PCA的表现,对比之后才有选择。

你可能感兴趣的:(机器学习)