SPAMS (SPArse Modeling Software) is an optimization toolbox for solving various sparse estimation problems.
- Dictionary learning and matrix factorization:
- NMF
- sparse PCA
- Solving sparse decomposition problems:
- LARS
- coordinate descent
- OMP
- proximal methods
- Solving structured sparse decomposition problems:
- l1/l2
- l1/linf
- sparse group lasso
- tree-structured regularization
- structured sparsity with overlapping groups.
- Julien Mairal (Inria) with the collaboration of Francis Bach (Inria),
- Jean Ponce (Ecole Normale Supérieure),
- Guillermo Sapiro (University of Minnesota),
- Guillaume Obozinski (Inria),
- Rodolphe Jenatton (Inria).
- R and Python interfaces by Jean-Paul Chieze (Inria).
- Archetypal analysis implementation by Yuansi Chen (internship at Inria) with the collaboration of Zaid Harchaoui.
- Development and maintenance are done by Ghislain Durif (Inria).
Licence: GPL v3
Manipulated objects are imported from numpy and scipy. Matrices should be stored by columns, and sparse matrices should be "column compressed".
The standard installation uses the BLAS and LAPACK libraries used by Numpy:
pip install python-spams
Make sure you have install libblas & liblapack (see below)
pip install -e .
python tests/test_spams.py -h # to get help
python tests/test_spams.py # will run all the tests
Carefully install libblas & liblapack. For example on ubuntu, necessary to sudo apt-get -y install libblas-dev liblapack-dev gfortran
. For MacOs, you most likely need to brew install gcc openblas lapack