Colormann (Convex Low Rank Matrix Approximation using Nuclear Norm constraint)
extracts the shared and distinct hidden components from a noisy data matrix
- Decompose
$\mathbf{X}$ as the sum of a low-rank component ($\mathbf{Y}$ ) and a sparse component ($\mathbf{M}$ ). Colormann provides a choice of several convex algorithms for the low rank matrix approximation (LRMA), using a combination of weighted nuclear norm and$\ell_1$ norm regularization (see below). - Decompose
$\mathbf{Y}$ ,$\mathbf{M}$ or their sum ($\mathbf{Y} + \mathbf{M}$ ) as a product of loadings and factors using singular value decomposition (SVD).
In most cases, the factors obtained from the low-rank component
The following algorithms have been implemented:
- Rank minimization with weighted nuclear norm constraint using Frank-Wolfe algorithm.
- Rank minimization with nuclear norm and
$\ell_1$ norm constraint using Frank-Wolfe algorithm. - RobustPCA with inexact augmented Lagrange multiplier algorithm.
The software can be installed directly from github using pip:
pip install git+https://github.com/banskt/colormann.gitFor development, download this repository and install using the -e flag:
git clone https://github.com/banskt/colormann.git colormann # or use the SSH link
cd colormann
pip install -e .Also see Sparse PCA, RobustPCA, Weighted PCA, Bayesian PCA.
PCA is not convex and cannot be made so.