Skip to content
/ clorinn Public
forked from banskt/colormann

Low rank matrix approximation using Frank-Wolfe algorithm

License

Notifications You must be signed in to change notification settings

daklab/clorinn

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Clorinn

Clorinn (Convex Low Rank Inference via Nuclear Norm constraint) extracts the shared and distinct hidden components from a noisy data matrix $\mathbf{X}$ using two steps:

  1. Decompose $\mathbf{X}$ as the sum of a low-rank component ($\mathbf{Y}$) and a sparse component ($\mathbf{M}$). Clorinn 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).
  2. 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 $\mathbf{Y}$ would be the shared hidden component and the factors obtained from the sparse component $\mathbf{M}$ would be the distinct hidden components. However, they may have different interpretations depending on the structure of the input data.

LRMA algorithms

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.

Installation

The software can be installed directly from github using pip:

pip install git+https://github.com/banskt/clorinn.git

For development, download this repository and install using the -e flag:

git clone https://github.com/banskt/clorinn.git clorinn # or use the SSH link
cd clorinn
pip install -e .

Related algorithms

Also see Sparse PCA, RobustPCA, Weighted PCA, Bayesian PCA.

PCA is not convex and cannot be made so.

About

Low rank matrix approximation using Frank-Wolfe algorithm

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%