主成分分析(PCA)扫盲帖


http://rootofsky.diandian.com/

先上定义,百度,wiki都说的很好,我就直接给链接了:

百度百科:主成分分析

wiki:PCA

下面主要讲讲它的原理和实现过程。

如果用一句话说:PCA就是属性向量的正交化(得到相互正交的新属性),并取出方差最大(对应到实际意义就是区分度最高)的几个新属性。

从几何上说,PCA就是坐标变换。

从线性代数角度说就是修正的schmit正交化。

这里有一篇扫盲贴写的很好,主要是非常形象易懂:

主成分分析(Principal components analysis)-最大方差解释

我主要是想把它的两种实现方式讲一下,会和上下链接中的有重复(因为我是看完他们写的。。。)。

1.协方差阵(特征值+特征向量)法

这一块上面的链接中讲的很详细,而且富有启发性。我把pipeline写下来:

(1).写出原始矩阵A(A的行向量表示相应样本的所有属性);

(2).对A的列作标准化(如z-score标准化);

(3).算出协方差阵COV=A'A(其中A'是A的转置);

(4).解|COV-lambda*I|=0求出COV所有特征值和对应的特征向量(实际操作中使用迭代法:http://blog.163.com/shikang999@126/blog/static/17262489620113523952981/, http://www.cnblogs.com/zhangchaoyang/articles/2643810.html

(5).按从大到小排列特征值,将特征向量相应排序组成方阵P,现在,A×P就是顺序排列的主成分了。

2.奇异值分解(SVD,奇异值奇异向量)法

先从理论上推一下它和方法一的等价性:

若A的奇异值分解式为:A=UDV,则:

COV=A'A=V'D'U'UDV=V'D'DV

在这里,D的对角线值为奇异值(但根据COV阵的特殊性——主对角占优,它们就是特征值),V的列向量是奇异向量(相应的,这种情况下它们也是特征向量)。所以A×V就是主成分。

再来说说它的好处:首先想想(U×A)‘是什么,很容易想见它就是AA'对应的主成分,也就是说SVD可以对样本进行主成分分析(更好的说法是聚类)。

最后是它的实现:

主要就是对A作QR分解,算出奇异值和向量。其他与第一种方法类似。这里有一个算法http://www.cnblogs.com/zhangchaoyang/articles/2575948.html

最后再来一篇好文章,加深理解:http://hi.baidu.com/458577xxx/item/23e66f03af75a0c92f4c6b5d

supplemental:

Q:为什么主成分方差是协方差矩阵特征值?

A:举例说明

        a1   a2   a3   a4

s1 v11 v12 v13 v14

s2 v21 v22 v23 v24

s3 v31 v32 v33 v34

s4 v41 v42 v43 v44

在这里,a表示attribute,s表示sample,v表示value。 我们要求出第一主成分就是找出一组线性组合使得:

b1=x1a1+x2a2+x3a3+x4a4=(a1,a2,a3,a4)*(x1,x2,x3,x4)'

的方差最大。其中x=(x1,x2,x3,x4)'是单位向量,x'表示x的转置,a1,a2,a3,a4表示相应的列向量。 由于a1,a2,a3,a4都被标准化为均值为0的向量,所以b1的方差为:

Var(b1)=x'A'Ax

在这里A=(a1,a2,a3,a4),容易看出Cov=A'A就是各attribute的协方差阵。如果记b1=lambda, 上式两端同左乘 x ,则:

lambdax=Covx

根据定义,lambda是Cov的特征值,x是单位特征向量。第一主成分要求lambda最大,故可知求第一主成分就是求协方差阵最大特征值和特征向量。又根据Cov的半正定对称性,其所有特征值均非负,且不同特征值对应的特征向量正交。

这样解出b1,b2,...,bm后再根据需要选取前K个便完成了主成分提取。

3 March Friday .  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值