Fast SVD and PCA
Truncated Singular Value Decomposition (SVD) and Principal Component Analysis (PCA) that are much faster compared to using the Matlab svd and svds functions for rectangular matrices.
svdecon is a faster alternative to svd(X,'econ') for long or thin matrices.
svdsecon is a faster alternative to svds(X,k) for dense long or thin matrices where k << size(X,1) and size(X,2).
PCA versions of the two svd functions are also implemented.
---
function [U,S,V] = svdecon(X)
function [U,S,V] = svdecon(X,k)
Input:
X : m x n matrix
k : gets the first k singular values (if k not given then k = min(m,n))
Output:
X = U*S*V'
U : m x k
S : k x k
V : n x k
Description:
svdecon(X) is equivalent to svd(X,'econ')
svdecon(X,k) is equivalent to svds(X,k) where k < min(m,n)
This is faster than svdsecon when k is not much smaller than min(m,n)
---
function [U,S,V] = svdsecon(X,k)
Input:
X : m x n matrix
k : gets the first k singular values, k << min(m,n)
Output:
X = U*S*V' approximately (up to k)
U : m x k
S : k x k
V : n x k
Description:
svdsecon(X,k) is equivalent to svds(X,k) where k < min(m,n)
This function is useful if k << min(m,n) (see doc eigs)
---
function [U,T,mu] = pcaecon(X,k)
Input:
X : m x n matrix
Each column of X is a feature vector
k : extracts the first k principal components
Output:
X = U*T approximately (up to k)
T = U'*X
U : m x k
T : k x n
Description:
Principal Component Analysis (PCA)
Requires that k < min(m,n)
---
function [U,T,mu] = pcasecon(X,k)
Input:
X : m x n matrix
Each column of X is a feature vector
k : extracts the first k principal components, k << min(m,n)
Output:
X = U*T approximately (up to k)
T = U'*X
U : m x k
T : k x n
Description:
Principal Component Analysis (PCA)
Requires that k < min(m,n)
This function is useful if k << min(m,n) (see doc eigs)
Zitieren als
Vipin Vijayan (2024). Fast SVD and PCA (https://www.mathworks.com/matlabcentral/fileexchange/47132-fast-svd-and-pca), MATLAB Central File Exchange. Abgerufen.
Kompatibilität der MATLAB-Version
Plattform-Kompatibilität
Windows macOS LinuxKategorien
- AI and Statistics > Statistics and Machine Learning Toolbox > Dimensionality Reduction and Feature Extraction >
- MATLAB > Mathematics > Linear Algebra > Eigenvalues >
Tags
Quellenangaben
Inspiriert: EOF
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Live Editor erkunden
Erstellen Sie Skripte mit Code, Ausgabe und formatiertem Text in einem einzigen ausführbaren Dokument.
Version | Veröffentlicht | Versionshinweise | |
---|---|---|---|
1.3.0.0 | Uses less memory now |
||
1.2.0.0 | Truncated |
||
1.1.0.0 | Title change |
||
1.0.0.0 |