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

Uploaded Source

Built Distribution

gglasso-0.2.1-py3-none-any.whl (59.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gglasso-0.2.1.tar.gz
  • Upload date:
  • Size: 47.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for gglasso-0.2.1.tar.gz
Algorithm Hash digest
SHA256 d20d37085e7467d4a03c25120ccc40b171353a58973286aa55789d6e29b9cc93
MD5 0b42d46d7c5beb2df505593539caa154
BLAKE2b-256 d9a6233a04a54ae25f9b1f96c14336762527439a337e3170d4f115b800a0ffd0

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gglasso-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 59.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.7

File hashes

Hashes for gglasso-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4592bef595a3dc6061ba4b032db9a04c1bca664e8c6f6704eeb64068eeea54dd
MD5 87e4fb4c16498737d7ebec89f2dbb619
BLAKE2b-256 97b942a9b13d34e914f21a6f73b787b6f716936200bfae81d2c47995b7399fb4

See more details on using hashes here.

Supported by

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