L1-PCA Toolbox

MATLAB functions that implement exact and efficient L1-PCA solvers.
725 Downloads
Updated 24 Sep 2018

View License

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
Created with R2015a
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
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)
Required products (PM)
Contact info updated (PM).

Edited content.