主成分分析

Published: 03 Nov 2012 Category: 理论及算法

主成份分析(principal component analysis,PCA)算法和因子分析算法有些相似,都是在低维空间上表示高维空间的数据。但是主成份分析算法更加直接,直接去寻找高维特征之间的依赖关系,从而达到降维的目的。

比如在一个对飞行员的调查中,skill和enjoyment之间有一定的依赖关系,因此我们可以试用u1(飞行员资质)这一个特征来表示前面的那两个特征,u2可能代表着一定的误差。

1算法

1.1数据的预处理

在使用主成分分析对数据降维前,由于各特征值的物理意义不同,因此要对其进行预处理。

1.2 找到数据位置的方向

数据处理以后,下一步就是找到数据位置的大概方向,或者说单位向量u。我们希望样本数据在这个方向上的投影的方差(variance)最大化,或者说样本数据离这个方向的直线距离最短。物理意义:方差较大可以获得更多的信息?

样本x在方向u上的投影到圆点的距离为xTu,为了最大化投影的方差,我们希望找到单位矩阵u使下式最大化。

,而u为单位向量,则上式的最大值代表着∑的非特征值,u代表着主特征向量(特征值最大的特征向量)。

从上面分析,为了获得1维的子特征空间,就去找最大特征值的特征向量。那如果找k-维的子空间,只需要去找top-k特征值的特征向量u1,u2,…uk。

注:因为∑是对称的,所以这些特征向量是正交的。

找到了k个特征向量,我们就可以在k维空间上表示原高维空间的样本x(i):

由上可见,PCA算法是一个降维算法,我们找到的k个特征向量u1,u2…uk成为主成分。

1.3 算法

总结以上内容可见,PCA算法分为三步:

1 预处理

2 计算

3 找到∑的k-top特征向量

2 CPA的应用

CPA可用于多种目的,比如

  • 数据压缩:降维
  • 可视化:把特征压缩到2或3维空间爱你
  • 机器学习中通过降维防止过拟合。
  • 匹配/距离计算:在子空间计算两点的距离。

2.1 Latent semantic indexing(LSI)

将CPA算法应用在文本处理中,如对于一个文本,首先创建其向量字典:

这里一般省略预处理阶段。

若我们希望比较两文本x(i)和x(j)的相似性,比如我们使用两文本的字典向量的内积表示。

对于两个只含有一个单词的文本:"study"和"learn",字典也仅含这两个单词(2维空间),那如果仅仅计算内积,则相似度为0。

但如果将2维空间变为1维,映射到主成分上,则发现他们之间仍具有一定的相似性。

3 CPA的实施

在使用CPA算法时,若原特征空间为10000,则∑为10000*10000维,计算量非常大。

因此,可以使用奇异值分解的方法简便的计算。

对于训练集{x(1,x(2),…x(m))},令:

则∑=XTX

因此,V的top-k列就是∑=XTX的top-k特征向量。X=UDV。

SVD性质:

4 算法的比较

密度估计算法 非概率算法
数据可用子空间表示 因子分析(异常分析) 主成分分析(降低维度)
数据可分为块或团 混合高斯模型 K-means