Skip to main content

Algorithms for Single and Multiple Graphical Lasso problems.

Project description

GGLasso

PyPI version fury.io PyPI license Documentation Status DOI arXiv

This package contains algorithms for solving General Graphical Lasso (GGLasso) problems, including single, multiple, as well as latent Graphical Lasso problems.

Docs | Examples

Getting started

Install via pip/conda

The package is available on pip and conda and can be installed with

pip install gglasso

or

conda install -c conda-forge gglasso

Install from source

Alternatively, you can install the package from source using the following commands:

git clone https://github.com/fabian-sp/GGLasso.git
pip install -r requirements.txt
python setup.py

Test your installation with

pytest gglasso/ -v

Advanced options

If you want to create a conda environment with full development dependencies (for building docs, testing etc), run:

conda env create -f environment.yml

If you wish to install gglasso in developer mode, i.e. not having to reinstall gglasso everytime the source code changes (either by remote or local changes), run

python setup.py clean --all develop clean --all

The glasso_problem class

GGLasso can solve multiple problem forumulations, e.g. single and multiple Graphical Lasso problems as well as with and without latent factors. Therefore, the main entry point for the user is the glasso_problem class which chooses automatically the correct solver and model selection functionality. See our documentation for all the details.

Algorithms

GGLasso contains algorithms for solving a multitude of Graphical Lasso problem formulations. For all the details, we refer to the solver overview in our documentation.

The package includes solvers for the following problems:

  • Single Graphical Lasso

  • Group and Fused Graphical Lasso
    We implemented the ADMM (see [2] and [3]) and a proximal point algorithm (see [4]).

  • Non-conforming Group Graphical Lasso
    A Group Graphical Lasso problem where not all variables exist in all instances/datasets.

  • Functional Graphical Lasso
    A variant of Graphical Lasso where each variables has a functional representation (e.g. by Fourier coefficients).

Moreover, for all problem formulation the package allows to model latent variables (Latent variable Graphical Lasso) in order to estimate a precision matrix of type sparse - low rank.

Citation

If you use GGLasso, please consider the following citation

@article{Schaipp2021,
  doi = {10.21105/joss.03865},
  url = {https://doi.org/10.21105/joss.03865},
  year = {2021},
  publisher = {The Open Journal},
  volume = {6},
  number = {68},
  pages = {3865},
  author = {Fabian Schaipp and Oleg Vlasovets and Christian L. Müller},
  title = {GGLasso - a Python package for General Graphical Lasso computation},
  journal = {Journal of Open Source Software}
}

Community Guidelines

  1. Contributions and suggestions to the software are always welcome. Please, consult our contribution guidelines prior to submitting a pull request.
  2. Report issues or problems with the software using github’s issue tracker.
  3. Contributors must adhere to the Code of Conduct.

References

  • [1] Friedman, J., Hastie, T., and Tibshirani, R. (2007). Sparse inverse covariance estimation with the Graphical Lasso. Biostatistics, 9(3):432–441.
  • [2] Danaher, P., Wang, P., and Witten, D. M. (2013). The joint graphical lasso for inverse covariance estimation across multiple classes. Journal of the Royal Statistical Society: Series B (Statistical Methodology), 76(2):373–397.
  • [3] Tomasi, F., Tozzo, V., Salzo, S., and Verri, A. (2018). Latent Variable Time-varying Network Inference. InProceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. ACM.
  • [4] Zhang, Y., Zhang, N., Sun, D., and Toh, K.-C. (2020). A proximal point dual Newton algorithm for solving group graphical Lasso problems. SIAM J. Optim., 30(3):2197–2220.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gglasso-0.2.0.tar.gz (52.5 kB view details)

Uploaded Source

Built Distribution

gglasso-0.2.0-py3-none-any.whl (64.9 kB view details)

Uploaded Python 3

File details

Details for the file gglasso-0.2.0.tar.gz.

File metadata

  • Download URL: gglasso-0.2.0.tar.gz
  • Upload date:
  • Size: 52.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.10

File hashes

Hashes for gglasso-0.2.0.tar.gz
Algorithm Hash digest
SHA256 104acc70d6de5341f8d2156b2cbc16cca54bb3dcec18b0ec6780a87c2684d9f8
MD5 84e55957392dbedd5e1d3ba6d7426f54
BLAKE2b-256 5d72e52c609c07cfd26f17f55fe1e35e1e9aa4e1eab46138bb6743bc94981bae

See more details on using hashes here.

File details

Details for the file gglasso-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: gglasso-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 64.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.10

File hashes

Hashes for gglasso-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 68cf956a7685b5213ef7473c9c245225a5839d676e3f350914180d02eb05bbe7
MD5 e26215d325275f17861800a64b7849ca
BLAKE2b-256 3237c2a6d1189efece27f8a97a0fc3738b92f33cb84d07fdb48e02557ce28578

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page