matlab中使用快速pca提取特征
在matlab中使用快速pca降维我下载了一个程序,当中function[pcaA,V]=fastPCA(A,k,mA)中的mA代表的是什么m=size(A,1);Z=(...
在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的原理具体怎么用的没有将,谁能跟我说明一下 展开
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的原理具体怎么用的没有将,谁能跟我说明一下 展开
3个回答
展开全部
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(符号相反)。具体说明请参考函数的文档。
展开全部
mA应该是A的均值,可以通过mA = mean(A);求得,其实也不必写在输入里,在程序里有A就可以自己求出来了。
Z = ...;这一句是将A去均值。在这里应该是A的每一列为一个特征,这样做是去掉每一个特征里面的均值成分,跟你做信号处理一般先去直流分量一样。
T = ..;这一句是求协方差矩阵;求出来之后用下面那句算特征向量。
k是你要取得主特征数量,用这个函数求出来有用的就是pcaA了,具体怎么用就要看你的应用了
Z = ...;这一句是将A去均值。在这里应该是A的每一列为一个特征,这样做是去掉每一个特征里面的均值成分,跟你做信号处理一般先去直流分量一样。
T = ..;这一句是求协方差矩阵;求出来之后用下面那句算特征向量。
k是你要取得主特征数量,用这个函数求出来有用的就是pcaA了,具体怎么用就要看你的应用了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
mA 是 A的均值.
Z=(A-repmat(mA,m,1));T=Z*Z';这两句是计算协方差
Z=(A-repmat(mA,m,1));T=Z*Z';这两句是计算协方差
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询