Andrew Ng机器学习课程笔记(十七)之无监督学习之主成份分析与降维

Preface

Principal Components Analysis(主成份分析)

Principal Components Analysis

我们在上一篇文章中说讲述的 Andrew Ng机器学习课程笔记(十六)之无监督学习之因子分析模型与EM算法的因子分析是基于概率模型对样例的个数m都小于其特征个数n,甚至样例的个数m都远远小于其特征个数n情况的处理。 这里我们将使用一种改进的因子分析方法PCA来解决问题(PCA以前也叫做Principal Factor Analysis,PFA)。

Problem

对于给定的数据集S={x(i)Rn;i=1,...,m},我们希望得到一个更低维的数据集合S={x(i)Rk;i=1,...,m;k<n}

Normalize Mean and Variance

  1. 置均值μ=0μ=1mmi=1x(i)
  2. x(i)μ替换x(i)
  3. 置方差σj2为单位向量,σj2=1mi=1m(xj(i))2
  4. xj(i)/σj替换每一个xj(i)

在上述过程中步骤1-2完成将样本数据均值置0;步骤3-4完成将样本数据方差置1;使得数据保持统一规格。值得一提的是:当数据本身就是同一规格时,步骤3-4可以忽略。

For Example

我们现在以二维数据到一维数据的例子来说明:
假设我们已经对数据集S={x(i)Rn;i=1,...,m}进行了规范化处理,所以有:
Andrew Ng机器学习课程笔记(十七)之无监督学习之主成份分析与降维
我们将数据集中的数据投影到一三象限的角平分线上,可以看出投影后的数据有较大的方差。
Andrew Ng机器学习课程笔记(十七)之无监督学习之主成份分析与降维
我们将数据集中的数据投影到二四象限的角平分线上,可以看出投影后的数据有较小的方差。
Andrew Ng机器学习课程笔记(十七)之无监督学习之主成份分析与降维
根据方差最大化理论,我们认为将数据投影到一三象限的角平分线上好,因为投影后的样本点之间方差大。

Principal Components Analysis

步骤一:规范化数据,即数据集S={x(i)Rn;i=1,...,m}中的每一个样本x(i)满足均值为零,且有单位方差。
步骤二:向某一个特定方向的单位向量u投影,使得投影之后的样本方差最大。
所以投影样本数据可以表示为:

x(i)Tu

由于投影后均值为 0,投影之后的样本方差可以表示为:
1mmi=1(x(i)Tu)2=1mmi=1uTx(i)x(i)Tu=uT(1mmi=1x(i)x(i)T)u

步骤三:在投影之后的样本方差公式中的中间那部分是样本特征的协方差矩阵(当x的均值为 0 时,一般协方差矩阵都除以 m‐1,这里用 m)
Σ=1mmi=1x(i)x(i)Tλ=uT(1mmi=1x(i)x(i)T)u,所以使得投影之后的样本方差最大的目标问题可以表示为:
argmaxθλ=uTΣu

步骤四: 由于u是单位向量,即|u|=uuT=1。所以:
uλ=uuTΣuuλ=ΣuΣu=λu

所以λΣ的特征值,uΣ的特征向量。所以,最佳的投影直线是特征值λ最大时对应的特征向量,其次是λ第二大对应的特征向量,依次类推。
所以:
步骤五:因此,我们只需要对协方差矩阵Σ进行特征值分解,得到的前k大特征值对应的特征向量就是最佳的k维新特征,而且这k维新特征是正交的。得到前ku以后,样例x通过以y(i)下变换可以得到新的样本。
y(i)=[u1Tx(i)u2Tx(i)ukTx(i)]Rk

对于步骤五我们还需要引入累计贡献率来论证:
由于协方差矩阵是正定矩阵,并且我们对特征值(假设有n个)按大小排序后,可以得到:

λ1λ2λ3...λn0

λi/ni=1λi为第i个主成份的贡献率。
ki=1λi/ni=1λi前k个主成份的累计贡献率。这个累计贡献率表示这k个主成份能够多大程度上代表原始数据。所以我们在步骤五中选择最大的k个特征值对应的特征向量来作为投影方向能够在尽可能的程度上代表原始数据。