PCA在MATLAB里的实现代码

PCA在MATLAB里的实现代码,第1张

依照你的x0初始化来看,第一行对应一个变量(比如a),第二行对应另一个变量衫森旦(如b)。这样x0其实就是[a1,a2,a3,...b1,b2,b3,...],每一次测量代表观测一次[a,b]。也就是说你的参数空间是2维的,x0每一列代表一次测量结果。春中而matlab cov(x)函数,x的每一行代表一次测量结果。因此输入cov函数时需要一个转置。之后你得到两个特征根和特征向量,这两个特征向量张成2维空间。

如果用x0, 就相当于你的变量有5个a,b,c,d,e. 观测了两次得到样本[a1,b1,c1,d1,e1a2,b2,c2,d2,e2]。这时你的主成分是5维的,在5维参数或扰空间,两次观测就是两个点,这两个点只能画一条直线,它对应唯一一个非0本征值,其余本征值都是0.

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12553431.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存