PCA(Principal Component Analysis)的原理、算法步骤和实现。
来源:互联网 发布:php ajax上传 编辑:程序博客网 时间:2024/05/21 14:05
PCA的原理介绍:
PCA(Principal Component Analysis)是一种常用的数据分析方法。PCA通过线性变换将原始数据变换为一组各维度线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。PCA的实质就是在尽最大可能保存原有信息的前提下,对原特征数据进行线性变换、映射变换到低维空间中。
PCA算法的步骤:
设有m条n维数据。
1)将原始数据按列组成n行m列矩阵X
2)将X的每一行(代表一个属性字段)进行零均值化,即减去这一行的均值
3)求出协方差矩阵
4)求出协方差矩阵的特征值及对应的特征向量
5)将特征向量按对应特征值大小从上到下按行排列成矩阵,取前k行组成矩阵P
6)
- %PCA算法,matlab实现
- function F=pcad(A,n)%A是M*N
- %测试实例A=[2.5,0.5,2.2,1.9,3.1,2.3,2,1,1.5,1.1;2.4,0.7,2.9,2.2,3.0,2.7,1.6,1.1,1.6,0.9]
- %结果F=[0.8280,-1.7776,0.9922,0.2742,1.6758,0.9129,-0.0991,-1.1446,-0.4380,-1.2238]
- %PCA第一步:均值化
- X=A-repmat(mean(A,2),1,size(A,2))%去均值
- %PCA第二步:求特征协方差矩阵
- B=COV(X')%求协方差
- %PCA第三步:求特征协方差矩阵的特征值和特征向量
- [v,d]=eig(B)%求特征值和特征向量
- %PCA第四步:将特征值按照从大到小的顺序排序
- d1=diag(d);%取出对角矩阵,也就是把特征值提出来组成一个新的M*1的d1矩阵
- [d2 index]=sort(d1); %特征值以升序排序 d2是排序后的结果 index是数排序以前的排名位置
- cols=size(v,2);% 特征向量矩阵的列数
- for i=1:cols %对特征向量做相反位置的调整 是个降序排列。这个过程把特征值和特征向量同时做相应的降序排列
- vsort(:,i) = v(:,index(cols-i+1) ); % vsort 是一个M*col(注:col一般等于M)阶矩阵,保存的是按降序排列的特征向量,每一列构成一个特征向量
- %vsort保存的是协方差矩阵降序后的特征向量,为M*M阶
- dsort(i) = d1(index(cols-i+1)); % dsort 保存的是按降序排列的特征值,是一维行向量,1*M
- end %完成降序排列
- M=vsort(:,1:n)%提取主成分量
- %PCA第五步:将样本点投影到选取的特征向量上
- F=(X'*M)'%最终的投影
>> x=[2,4,5;5,8,9;1,6,9;2,7,9];
>> [COFFE,SCORE,latent]=princomp(x);
>> COFFE
COFFE =
0.3827 0.8511 -0.3594
0.6337 0.0413 0.7725
0.6723 -0.5234 -0.5235
>> SCORE
SCORE =
-3.6341 1.0516 0.0121
2.7379 1.6767 -0.0702
-0.0601 -1.8104 -0.1775
0.9562 -0.9179 0.2356
>> latent
latent =
7.2069
2.6790
0.0307
>> cumsum(latent)./sum(latent)
ans =
0.7267
0.9969
1.0000
>> pareto(latent)
- PCA(Principal Component Analysis)的原理、算法步骤和实现。
- Principal Component Analysis(PCA)
- PCA(principal component analysis)
- PCA(Principal Component Analysis)
- PCA(Principal Component Analysis)主成分分析数学原理
- PCA(Principal Component Analysis)原理简单分析
- 降维算法(1):Principal Component Analysis(PCA)
- Principal Component Analysis(PCA)
- PCA-principal component analysis
- PCA(Principal Component Analysis 主成分分析)原理及MATLAB实现
- PCA(Principal Component Analysis)数学分析
- 『 特征降维』PCA原理-Principal Component Analysis
- 机器学习降维算法一:PCA (Principal Component Analysis)
- 机器学习降维算法一:PCA (Principal Component Analysis)
- 在Python中一步一步实现Principal Component Analysis(PCA)
- 主成分分析PCA(Principal Component Analysis)介绍
- SAS进行主成分分析(Principal Component Analysis,PCA)
- 主成分分析PCA(Principal Component Analysis)介绍
- 《汇编语言》学习(十三)int指令
- 链表合并
- InstallShield 使用说明
- 在springMVC中 获取request、response、session
- 浅谈数据库中的存储过程
- PCA(Principal Component Analysis)的原理、算法步骤和实现。
- 链表反转
- poj 2393
- RMQ的原理
- java中实现多线程的方式
- 快速排序
- <转>MySQL事务隔离级别详解
- 链表合并(递归)
- 【模板】网络流——Dinic