https://github.com/fabian-sp/gglasso
A Python package for General Graphical Lasso computation
https://github.com/fabian-sp/gglasso
graphical-lasso graphical-models latent-variable-models network-inference optimization
Last synced: about 1 month ago
JSON representation
A Python package for General Graphical Lasso computation
- Host: GitHub
- URL: https://github.com/fabian-sp/gglasso
- Owner: fabian-sp
- License: mit
- Created: 2019-10-09T09:23:27.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2025-02-28T10:37:01.000Z (2 months ago)
- Last Synced: 2025-03-30T13:09:42.206Z (about 1 month ago)
- Topics: graphical-lasso, graphical-models, latent-variable-models, network-inference, optimization
- Language: Python
- Homepage:
- Size: 122 MB
- Stars: 34
- Watchers: 3
- Forks: 14
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.txt
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# GGLasso
[](https://pypi.python.org/pypi/gglasso/)
[](https://pypi.python.org/pypi/gglasso/)
[](http://gglasso.readthedocs.io/?badge=latest)
[](https://doi.org/10.21105/joss.03865)
[](https://arxiv.org/abs/2110.10521)This package contains algorithms for solving General Graphical Lasso (GGLasso) problems, including single, multiple, as well as latent
Graphical Lasso problems.[Docs](https://gglasso.readthedocs.io/en/latest/) | [Examples](https://gglasso.readthedocs.io/en/latest/auto_examples/index.html)
## 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](https://gglasso.readthedocs.io/en/latest/problem-object.html) 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](https://gglasso.readthedocs.io/en/latest/solvers-overview.html).
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](CONTRIBUTING.md) prior
to submitting a pull request.
2) Report issues or problems with the software using github’s [issue
tracker](https://github.com/fabian-sp/GGLasso/issues).
3) Contributors must adhere to the [Code of
Conduct](CODE_OF_CONDUCT.md).## 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.