Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

tjof2/robustpca

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

111 Commits
111 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status Coverage Status DOI

Robust PCA

Python and C++ implementation of Robust Orthonormal Subspace Learning using the Armadillo linear algebra library.

Description

This is a C++ implementation of the Robust Orthonormal Subspace Learning (ROSL) algorithm [1]. ROSL solves the robust PCA problem, recovering a low-rank matrix X and a sparse error matrix E from the corrupted observations Y according to Y=X+E. ROSL also incorporates a memory-efficient method ("ROSL+") for recovering X from a random sub-sample of the matrix Y.

[1] X. Shu, F. Porikli and N. Ahuja, "Robust Orthonormal Subspace Learning: Efficient Recovery of Corrupted Low-Rank Matrices," 2014 IEEE Conference on Computer Vision and Pattern Recognition, Columbus, OH, 2014, pp. 3874-3881, DOI: 10.1109/CVPR.2014.495.

Installation

Dependencies

This library makes use of the Armadillo C++ linear algebra library, which needs to be installed first. It is recommended that you use a high-speed replacement for LAPACK and BLAS such as OpenBLAS, MKL or ACML; more information can be found in the Armadillo FAQs.

One way to install the latest version of Armadillo is to run:

$ tar -xzf robustpca.tar.gz
$ cd robustpca
$ ./install-dependencies.sh

Building from source

To build and install the library, run:

$ tar -xzf robustpca.tar.gz
$ cd robustpca
$ python setup.py build_ext --inplace
$ pip install -U .

Usage

import numpy as np

from robustpca import ROSL

X = np.random.randn(100, 100)
rosl = ROSL(n_components=3)
Y = rosl.fit_transform(X)

Copyright (C) 2015-2020 Tom Furnival. robustpca is released free of charge under the GNU General Public License (GPLv3).

Morty Proxy This is a proxified and sanitized view of the page, visit original site.