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

Developer installation

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

conda env create -f environment.yml

To install gglasso in developer mode run

python -m pip install --editable .

Test your installation with

pytest tests/ -v

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.3.0.tar.gz (46.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gglasso-0.3.0-py3-none-any.whl (59.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gglasso-0.3.0.tar.gz
  • Upload date:
  • Size: 46.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for gglasso-0.3.0.tar.gz
Algorithm Hash digest
SHA256 674839e6e52b02d596e7b7ab96a5457624114f162d38cf4986bc1c0f9e111dbe
MD5 1cfb6e55ca5be80ba2ddf5155db610a0
BLAKE2b-256 87031c9ef4a46e8b97d76e7e1ee916a0fd7c3cb3dd293e5a13b2344f0ab54c5b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gglasso-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 59.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.5

File hashes

Hashes for gglasso-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b5ecbb6c035b40ced24fad58d9ec5b9a2d17bab275ac30f453f74d45a27351df
MD5 141312fb6ecf45b02cebf713cc343c4a
BLAKE2b-256 f24ee508ffd4271728aa65665c051cbcf7849c8a3dd198f34bc597f7f81e2909

See more details on using hashes here.

Supported by

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