A. matlab pca函数怎么用
princomp-----函数名称,主要有一下集中调用形式:
[COEFF,SCORE] = princomp(X)
[COEFF,SCORE,latent] = princomp(X)
[COEFF,SCORE,latent,tsquare] = princomp(X)
[...] = princomp(X,'econ')
coeff矩阵是返回的转换矩阵,也就是把样本转换到新的空间中的准换矩阵,这个准换矩阵式比较大的,比如你的降维矩阵式30*100000,那么这个准换矩阵一般都是10000*29的维数。
score是原来的样本矩阵在新的坐标系中的表示,也就是原来的样本乘上转换矩阵,但是还不是直接乘,要减去一个样本的均值。将原来的数据转换到新的样本空间中的算法是这样实现的:
x0 = bsxfun(@minus,x,mean(x,1));
score = x0 * coeff;
然后就会得到和[COEFF, SCORE, LATENT, TSQUARED] = PRINCOMP(X) 输出一样的score数据。 同时这个也是原来的样本矩阵降维后的结果,如果使用降维后的数据就使用这个数据。一般情况下,如果你的每个样本的特征维数远远大于样本数,比如30*1000000的维数,princomp要加上'econ', 就是princomp(x,'econ')这样使用,可以很大程度的加快计算速度,而且不会内存溢出,否则会经常报内存溢出。
latent是返回的按降序排列的特征值,根据这个你可以手动的选择降维以后的数据要选择前多少列
tsquared是个什么东西我也不知道,不过貌似很少有人能用到
B. PCA在MATLAB里的实现代码
依照你的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,e1;a2,b2,c2,d2,e2]。这时你的主成分是5维的,在5维参数空间,两次观测就是两个点,这两个点只能画一条直线,它对应唯一一个非0本征值,其余本征值都是0.
C. 用matlab怎么做pca分析
主成分分析吗?
matlab提供了pca函数
D. matlab中PCA的人脸识别,最后得出的识别率是什么意思啊!
识别率指的是通过人脸识别技术识别正确数占识别总数的百分比。
人脸识别算法分类
基于人脸特征点的识别算法(Feature-based recognition algorithms)。
基于整幅人脸图像的识别算法(Appearance-based recognition algorithms)。
基于模板的识别算法(Template-based recognition algorithms)。
利用神经网络进行识别的算法(Recognition algorithms using neural network)。
神经网络识别
基于光照估计模型理论
提出了基于Gamma灰度矫正的光照预处理方法,并且在光照估计模型的基础上,进行相应的光照补偿和光照平衡策略。
优化的形变统计校正理论
基于统计形变的校正理论,优化人脸姿态;
强化迭代理论
强化迭代理论是对DLFA人脸检测算法的有效扩展;
独创的实时特征识别理论
该理论侧重于人脸实时数据的中间值处理,从而可以在识别速率和识别效能之间,达到最佳的匹配效果
E. matlab中pca
1,4 matlab是有帮助文档的,我没有明白你所指的去中心化处理是什么,PCA的结果在数组自己的维度。
以下是帮助文档,请仔细阅读
coeff = pca(X) returns the principal component coefficients, also known as loadings, for the n-by-p data matrix X. Rows of X correspond to observations and columns correspond to variables. The coefficient matrix is p-by-p. Each column of coeffcontains coefficients for one principal component, and the columns are in descending order of component variance. By default, pca centers the data and uses the singular value decomposition (SVD) algorithm.
example
coeff = pca(X,Name,Value) returns any of the output arguments in the previous syntaxes using additional options for computation and handling of special data types, specified by one or more Name,Value pair arguments.
For example, you can specify the number of principal components pca returns or an algorithm other than SVD to use.
example
[coeff,score,latent] = pca(___) also returns the principal component scores in score and the principal component variances in latent. You can use any of the input arguments in the previous syntaxes.
Principal component scores are the representations of X in the principal component space. Rows of score correspond to observations, and columns correspond to components.
The principal component variances are the eigenvalues of the covariance matrix of X.
example
[coeff,score,latent,tsquared] = pca(___) also returns the Hotelling's T-squared statistic for each observation in X.
example
[coeff,score,latent,tsquared,explained,mu] = pca(___) also returns explained, the percentage of the total variance explained by each principal component and mu, the estimated mean of each variable in X.
2. PCA 和SVD的不同是,他们分解矩阵的方式是不同的。我建议你翻看wikipedia里面SVD和PCA的说明,里面公式很清晰了
F. matlab中使用快速pca提取特征
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(符号相反)。具体说明请参考函数的文档。
G. 如何用matlab实现pca算法
可以在Matlab的simulink工具中插入"user_design"模块,把代码贴进去。然后在模块的模拟输入接"Chirp"或"Random Source"源,模拟输出接"Spectrum Scope",就能看出效果。
H. 如何画pca的点图 matlab
将数据先进行标准化,再进行主成分分析,若提取前3个主成分,可将其作成聚类图(图10),从图10可见,129,131这两个点远离其它数据。若将这两个数据去除
I. matlab pca与princomp结果为什么不同
MATLAB直接用样本实现主成分分析用有多种方式,但是mathwork公司推荐(1)式,因为princomp在使用时调用的是pca,两者的计算结果一样,而且pca多一项explain,更强大。
[coeff,score,latent,tsquared,explained]= pca(X) (1)
[COEFF,SCORE,latent,tsquare] = princomp(X) (2)
解释:
X: 就是原始数据,每列是一个变量,每行是一个个案,很方便的。
coeff:就是那个Upp转化矩阵
score:最后得出的主成分的值,每一列表示一个主成分(按第一主成分到第n主成分个排列)。
latant:是各主成分对应的特征向量。
tsquare:是Hotelling's T-squared统计量,我这个水平可以不理他。
explained:是只每一个主成分解释了百分之多少的方差,是一个列向量。
J. 有没有大神站到用Matlab的PLS工具箱怎么做主成分分析
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(符号相反)。具体说明请参考函数的文档。