pca算法
‘壹’ 主成分分析PCA算法:为什么要对数据矩阵进行均值化
个人觉得 去均值化是为了方面后面的协方差,去均值化后各维度均值为零,
协方差中的均值也就是零了,方便求解。
具体,假设矩阵A去中心化后得到B,那么B的协方差就是B*B的转置
‘贰’ PCA的算法是什么
PCA是主成分分析法,目的就是对高维数据进行降维,提取主要成分。我也是最近才开始看这个的,我也不是很明白。网上应该有这方面的代码。可以去程序员联合开发网看看,http://www.pudn.com/downloads188/sourcecode/windows/detail882107.html
http://www.pudn.com/downloads102/sourcecode/graph/texture_mapping/detail415764.html
‘叁’ 什么“PCA算法”。
有关图像融合的一种线性算法,在MATLAB中是一种算法融合程序。
‘肆’ 稀疏表示和PCA算法的关系是什么
PCA是用来特征提取和降维用的
‘伍’ 如何用matlab实现pca算法
可以在Matlab的simulink工具中插入"user_design"模块,把代码贴进去。然后在模块的模拟输入接"Chirp"或"Random Source"源,模拟输出接"Spectrum Scope",就能看出效果。
‘陆’ C#中如何编写PCA算法代码
PCA的处理步骤:
1,均值化
2,求协方差矩阵(我知道的有两种方法,这是第一种,按部就班的求,第二种是:(A*A‘/(N-1)))
3,求协方差的特征值和特征向量
4,将特征值按照从大到小的顺序排序,选择其中最大的k个,然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵
5,将样本点投影到选取的特征向量上
matlab实现源代码
%PCA算法,matlab实现
functionF=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矩阵
[d2index]=sort(d1);%特征值以升序排序d2是排序后的结果index是数排序以前的排名位置
cols=size(v,2);%特征向量矩阵的列数
fori=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)'%最终的投影
‘柒’ 要叫作业了,急死了 MATLAB人脸识别的PCA 算法程序~~
网上有很多例子可以直接下载用的。
你是看不懂还是不会写啊?
‘捌’ 用于图像压缩的PCA算法是基于协方差矩阵的还是基于相关系数矩阵 这两种方法有什么区别吗
协方差矩阵呀 根据定义就可以知道两者的不同呀 协方差本质是统计学里的最小方差吧