Cleve's Cubicle

(Difference between revisions)
 Revision as of 18:46, 17 October 2017 (edit)← Previous diff Current revision (17:27, 12 September 2018) (edit) (undo) (Redirecting to Singular Value Decomposition versus Principal Component Analysis) (3 intermediate revisions not shown.) Line 1: Line 1: - Singular Value Decomposition versus Principal Component Analysis + #REDIRECT [[Singular Value Decomposition versus Principal Component Analysis]] - + - SVD meets PCA, 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.''” + -
[https://www.mathworks.com/company/newsletters/articles/professor-svd.html [itex]-[/itex]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                                                                                                                +
-
+

Current revision

1. REDIRECT Singular Value Decomposition versus Principal Component Analysis