斯坦福大学机器学习——主成份分析(Principal Components Analysis)

因子分析是基于概率模型的基础上,利用EM算法的迭代,对参数进行估计。主成份分析(Principal Components Analysis, PCA)仅仅通过的线性变幻,用少数几个主分量来近似的表示所有的变量,以达到降低维度的目的。

一、  规范化(normalize)

规范化的目的是将不同尺度的数据化为同一尺度。规范化的步骤如下:

(1)令

(2)将所有替换为

(3)令

(4)将所有替换为

其中,步骤(1)和步骤(2)将数据的均值转换为零;步骤(3)和步骤(4)使得数据都为单位方差,使得不同属性的数据视为同一规格。

步骤(3)(4)并不是必要步骤,执行与不执行步骤(3)(4)得出的结果可能不尽相同。Andrew Ng认为,如果我们在特定属性的尺度划分上有着明确的先验知识,那么,就无需进行步骤(3)(4),如:灰度图像的每个像素都是用集合{0,1,…,255}中的元素表示。

二、  示例

为了直观的理解主成份分析,我们以二维数据为例。假设图1述数据是已进行规范化后的数据:

斯坦福大学机器学习——主成份分析(Principal Components Analysis)_第1张图片

图1

假设我们将数据投影到直线(如图2所示),可以看出原始点投影到上的点具有较大的方差。

斯坦福大学机器学习——主成份分析(Principal Components Analysis)_第2张图片

图2

假设我们将数据投影到直线(如图3所示),可以看出原始点投影到上的点具有较小的方差。

斯坦福大学机器学习——主成份分析(Principal Components Analysis)_第3张图片

图3

因此在直线方向变异很大,而在直线方向变异很小。可以形象的认为图2像一块被压扁的近似直线的平面,其宽度很小,可以近似忽略。因此能够比较好的代表原始点的趋势。

三、  算法

主成份分析目的就是使得数据点在特定的向量上的投影方差最大。而我们就是要求出这个向量。

假设各样本已经进行了规范化,并且均值为零,且有单位向量u,点x在u上的投影可以表示成。那么我们需要使在各点x在u上投影的方程最大:


其中,为样本的协方差。换个角度,我们也可以把该问题看作是下列优化问题:


生成拉格朗日算子:

的偏导:

从上式可以看出,其实质就是要求出协方差矩阵的特征值。又由于协方差矩阵是正定的,因此其有n个特征值,经过从大到小排序,有。如果特征值为0,则说明在对应的分量在统计中不必讨论。而如果特征值很小,他的影响可以忽略不记。求出特征值后,与特征值相对应的特征向量就可求出。

下面引入累计贡献率

设协方差矩阵具有n个排序后的特征值,即: ,则称为第i个主成份的贡献率,称是前k个主成份的累计贡献率,累计贡献率表示这k个主成份能够多大程度上代表原始数据。对应的向量称为前k个主成份。我们通过设定累计贡献率的阈值来确定主成份的数量。

当确定k的值以后,可以通过对x的线性变幻求出新的向量y,y的维度为k,低于x的维度n。

四、  应用

主成份分析主要有一下三种作用:

(1)   数据压缩

将高维的数据压缩至二维或三维,可以将数据进行可视化表达,帮助数据的使用者更加清晰直观的把握数据所反映的特征和规律。

(2)   降维

当数据的维度很大时,对高维数据的计算可能会耗费大量的计算资源,通过PCA可以降低计算的复杂性避免过拟合现象的发生。

(3)   降噪

PCA也可以看作是降噪算法:通过PCA,可以找到能够代表一个总体的主要特征,而避免无关紧要数据的干扰。

五、  总结

主成份分析就是求出原始数据矩阵的协方差矩阵对应的特征值和特征向量,对特征值进行由大而小的排序,再根据特征值对应的特征向量进行线性变换,得到新的向量(新的向量间相互正交)。通过设定阈值可以用低维的新向量近似表示高维的原向量(协方差矩阵为非奇异的);若协方差矩阵为奇异的,且零特征值较多,这种情况使用低维的新向量也可以完全表示高维原向量。

你可能感兴趣的:(机器学习,数据挖掘)