PCA学习总结

本文详细介绍了主成分分析(PCA)的核心思想、推导过程及算法步骤,包括PCA如何通过计算数据集的协方差矩阵特征值和特征向量来实现数据降维,并提供了MATLAB实现代码。重点阐述了PCA在人脸识别和手写识别领域的应用实例,同时推荐了一份优秀的PCA学习资料。

1. PCA整体思想

PCA,Principle Componet Analysis,主成分分析,主要用于数据降维。它通过计算给定数据集的协方差矩阵的特征值和特征向量,来得到数据集最关键的方向(数据集在此方向的投影方差最大,这个能保持最多的信息),并从关键的方向中选取前k个构成k维空间,在此空间中重新表示原始数据以达到降维的目的。

2. 推导过程

http://www.cs.otago.ac.nz/cosc453/student_tutorials/principal_components.pdf

3. 算法的基本步骤

输入:数据集X(DxN)

输出:特征值E(Dx1),特征向量V(DxD,特征向量按列存放),样本每一维的均值(Dx1)

过程:1. 计算X的协方差矩阵C

   2. 求C的特征值E和特征向量V,并按照特征值递减的顺序排列

   3. 选取V的前k个特征向量(即前K列),构成矩阵P(DxK)

   4. 将X的每个元素x在P的前K个特征向量上进行投影,得到xx(K,1),最终得到X在K个特征向量上的投影矩阵Z(KxN)

   5. 用Z重构XX,并与X比较,计算重构误差

4. matlab实现PCA

[V, E] = eig( cov(X') )
[E index] = sort(diag(E),'descend');
V = V(:,index);
meanX = mean(X')';

P=V(:,[1:K])
[r,c] = size(X);
Y = P'*(X-repmat(meanX,1,c));

[r,c] = size(Y);
XX = P * Y + repmat(meanX, 1, c);

5. PCA主要应用

人脸识别,手写识别中用的相对较多。

相当好的一份PCA介绍资料:http://pan.baidu.com/s/1wDfKq

转载于:https://www.cnblogs.com/lifeng14/p/4149057.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值