matlab中使用快速pca提取特征在matlab中使用快速pca降维我下载了一个程序,当中function [ pcaA,V] = fastPCA( A,k,mA)中的mA代表的是什么m=size(A,1);Z=(A-repmat(mA,m,1));T=Z*Z';[V,D]=eigs(T,k);%计算T的最大的k个特征
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/01 12:33:55
matlab中使用快速pca提取特征在matlab中使用快速pca降维我下载了一个程序,当中function [ pcaA,V] = fastPCA( A,k,mA)中的mA代表的是什么m=size(A,1);Z=(A-repmat(mA,m,1));T=Z*Z';[V,D]=eigs(T,k);%计算T的最大的k个特征
matlab中使用快速pca提取特征
在matlab中使用快速pca降维我下载了一个程序,当中function [ pcaA,V] = fastPCA( A,k,mA)中的mA代表的是什么
m=size(A,1);
Z=(A-repmat(mA,m,1));
T=Z*Z';
[V,D]=eigs(T,k);%计算T的最大的k个特征值和特征向量
V=Z'*V; %协方差矩阵的特征向量
for i=1:k %特征向量单位化
l=norm(V(:,i));
V(:,i)=V(:,i)/l;
end
pcaA=Z*V; %线性变换,降至k维
end
程序中的Z=(A-repmat(mA,m,1));和T=Z*Z';又是干什么的,有没有谁能跟我说一下pca这个函数在matlab中是怎么使用的啊 我是初学者,在网上只能搜到pca的原理具体怎么用的没有将,谁能跟我说明一下
matlab中使用快速pca提取特征在matlab中使用快速pca降维我下载了一个程序,当中function [ pcaA,V] = fastPCA( A,k,mA)中的mA代表的是什么m=size(A,1);Z=(A-repmat(mA,m,1));T=Z*Z';[V,D]=eigs(T,k);%计算T的最大的k个特征
1、参数mA代表A的均值,也就是mean(A).
其实这个参数完全没必要,因为可以从参数A计算得到.
2、解释一下你问的两个语句的含义:
Z=(A-repmat(mA,m,1)); 作用是去除直流成分
T=Z*Z'; 计算协方差矩阵的转置
3、关于函数的调用:
MATLAB统计工具箱中有函数princomp,也是进行主成分分析的(2012b之后有函数pca),基本调用格式:
[pc, score] = princomp(x)其中,输入参数x相当于你这个函数的A,输出参数score相当于你这里的pcaA,而pc大致相当于你这里的V(符号相反).具体说明请参考函数的文档.