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的原理具体怎么用的没有将,谁能跟我说明一下
展开
 我来答
tianxiawulang
2014-12-08 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2675万
展开全部

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(符号相反)。具体说明请参考函数的文档。

百度网友b135e29
2014-12-08 · TA获得超过252个赞
知道小有建树答主
回答量:89
采纳率:0%
帮助的人:90.6万
展开全部
mA应该是A的均值,可以通过mA = mean(A);求得,其实也不必写在输入里,在程序里有A就可以自己求出来了。
Z = ...;这一句是将A去均值。在这里应该是A的每一列为一个特征,这样做是去掉每一个特征里面的均值成分,跟你做信号处理一般先去直流分量一样。
T = ..;这一句是求协方差矩阵;求出来之后用下面那句算特征向量。

k是你要取得主特征数量,用这个函数求出来有用的就是pcaA了,具体怎么用就要看你的应用了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jimtien
2014-12-08 · TA获得超过7654个赞
知道大有可为答主
回答量:2146
采纳率:88%
帮助的人:1129万
展开全部
mA 是 A的均值.

Z=(A-repmat(mA,m,1));T=Z*Z';这两句是计算协方差
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式