Singular Value Decomposition versus Principal Component Analysis
From Wikimization
(Difference between revisions)
Line 26: | Line 26: | ||
coef = V(:,1:rho).*sense2 | coef = V(:,1:rho).*sense2 | ||
</pre> | </pre> | ||
+ | |||
+ | <i>coef, score, latent</i> definitions from Matlab | ||
+ | [https://www.mathworks.com/help/stats/pca.html pca()] | ||
+ | command. | ||
Good explanation of terminology like <i>variance of principal components</i> can be found here: | Good explanation of terminology like <i>variance of principal components</i> can be found here: | ||
[https://stats.stackexchange.com/questions/134282/relationship-between-svd-and-pca-how-to-use-svd-to-perform-pca Relationship between SVD and PCA] | [https://stats.stackexchange.com/questions/134282/relationship-between-svd-and-pca-how-to-use-svd-to-perform-pca Relationship between SVD and PCA] |
Revision as of 22:15, 15 September 2018
from SVD meets PCA, slide by Cleve Moler
“The Wikipedia pages on SVD and PCA are quite good and contain a number of useful links, although not to each other.”
MATLAB News & Notes, Cleve’s Corner, 2006
%relationship of pca to svd m=3; n=7; A = randn(m,n); [coef,score,latent] = pca(A) X = A - mean(A); [U,S,V] = svd(X,'econ'); % S vs. latent rho = rank(X); latent = diag(S(:,1:rho)).^2/(m-1) % U vs. score sense = sign(score).*sign(U*S(:,1:rho)); %account for negated left singular vector score = U*S(:,1:rho).*sense % V vs. coef sense2 = sign(coef).*sign(V(:,1:rho)); %account for corresponding negated right singular vector coef = V(:,1:rho).*sense2
coef, score, latent definitions from Matlab pca() command.
Good explanation of terminology like variance of principal components can be found here: Relationship between SVD and PCA