L1-PCA Toolbox
Collection of MATLAB functions that implement exact and efficient L1-PCA solvers. L1-PCA is an outlier-resistant alternative to PCA/SVD.
This toolbox offers functions for the L1-PCA (K components) of data matrix X (D by N); K<rank(X)<=min(D,N).
Author: Prof. Panos Markopoulos (pxmeee@rit.edu)
****
Please, read the reference article for each code, so that you understand its complexity and performance specifics. Please, notice that l1pca_EX and l1pca are exact codes of high theoretical significance but also high computational cost with respect to the size of the analyzed matrix (in accordance with the combinatorial nature of L1-PCA). l1pca_BF is a practical solver for problems of medium/larger size.
****
Function l1pca(X,K) calculates the K exact L1-PCs of matrix X, using the polynomial-time algorithm of:
P. P. Markopoulos, G. N. Karystinos, and D. A. Pados,"Optimal algorithms for L1-subspace signal processing," IEEE Transactions on Signal Processing, vol. 62, pp. 5046-5058, Oct. 2014. Cost: Polynomial in N; exponential in rank(X).
Function l1pca_EX(X,K) calculates the K exact L1-PCs of matrix X, using the exhaustive-search algorithm of: P. P. Markopoulos, G. N. Karystinos, and D. A. Pados,"Optimal algorithms for L1-subspace signal processing," IEEE Transactions on Signal Processing, vol. 62, pp. 5046-5058, Oct. 2014. Cost: Exponential in N.
Function l1pca_BF(X,K,init,numinit,maxiter,prnt) calculates the K approximate L1-PCs of matrix X, using the bit-flipping algorithm of: P. P. Markopoulos, S. Kundu, S. Chamadia, and D. A. Pados, "Efficient L1-norm principal-component analysis via bit flipping," IEEE Transactions on Signal Processing, vol. 65, pp. 4252-4264, Aug. 2017. Cost: Quadratic in N; at most quadratic in D; at most quadratic in K; linear in rank(X).
If you use any part of this code, please cite the works referenced at the top of each script.
Cite As
Dr. Panos Markopoulos (2024). L1-PCA Toolbox (https://www.mathworks.com/matlabcentral/fileexchange/64855-l1-pca-toolbox), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Platform Compatibility
Windows macOS LinuxCategories
- AI and Statistics > Statistics and Machine Learning Toolbox > Dimensionality Reduction and Feature Extraction >
Tags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Version | Published | Release Notes | |
---|---|---|---|
1.0.0.3 | Improved description. |
|
|
1.0.0.2 | Added details. |
|
|
1.0.0.1 | Details on the use of each function. |
|
|
1.0.0.0 | Updated contact information (PM)
Edited content. |
|