gglasso


Namegglasso JSON
Version 0.2.0 PyPI version JSON
download
home_pagehttps://github.com/fabian-sp/GGLasso
SummaryAlgorithms for Single and Multiple Graphical Lasso problems.
upload_time2024-01-16 11:50:41
maintainer
docs_urlNone
authorFabian Schaipp
requires_python>=3.7.0
licenseMIT
keywords network inference graphcial models graphical lasso optimization
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# GGLasso

[![PyPI version fury.io](https://badge.fury.io/py/gglasso.svg)](https://pypi.python.org/pypi/gglasso/)
[![PyPI license](https://img.shields.io/pypi/l/gglasso.svg)](https://pypi.python.org/pypi/gglasso/)
[![Documentation Status](https://readthedocs.org/projects/gglasso/badge/?version=latest)](http://gglasso.readthedocs.io/?badge=latest)
[![DOI](https://joss.theoj.org/papers/10.21105/joss.03865/status.svg)](https://doi.org/10.21105/joss.03865)
[![arXiv](https://img.shields.io/badge/arXiv-2011.00898-b31b1b.svg)](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. <br>

[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


### 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](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:<br>

- **Single Graphical Lasso**<br>

- **Group and Fused Graphical Lasso**<br>
We implemented the ADMM (see [2] and [3]) and a proximal point algorithm (see [4]). 

- **Non-conforming Group Graphical Lasso**<br>
A Group Graphical Lasso problem where not all variables exist in all instances/datasets.  

- **Functional Graphical Lasso**<br>
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.



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/fabian-sp/GGLasso",
    "name": "gglasso",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7.0",
    "maintainer_email": "",
    "keywords": "network inference,graphcial models,graphical lasso,optimization",
    "author": "Fabian Schaipp",
    "author_email": "fabian.schaipp@tum.de",
    "download_url": "https://files.pythonhosted.org/packages/5d/72/e52c609c07cfd26f17f55fe1e35e1e9aa4e1eab46138bb6743bc94981bae/gglasso-0.2.0.tar.gz",
    "platform": null,
    "description": "\n# GGLasso\n\n[![PyPI version fury.io](https://badge.fury.io/py/gglasso.svg)](https://pypi.python.org/pypi/gglasso/)\n[![PyPI license](https://img.shields.io/pypi/l/gglasso.svg)](https://pypi.python.org/pypi/gglasso/)\n[![Documentation Status](https://readthedocs.org/projects/gglasso/badge/?version=latest)](http://gglasso.readthedocs.io/?badge=latest)\n[![DOI](https://joss.theoj.org/papers/10.21105/joss.03865/status.svg)](https://doi.org/10.21105/joss.03865)\n[![arXiv](https://img.shields.io/badge/arXiv-2011.00898-b31b1b.svg)](https://arxiv.org/abs/2110.10521)\n\n\nThis package contains algorithms for solving General Graphical Lasso (GGLasso) problems, including single, multiple, as well as latent \nGraphical Lasso problems. <br>\n\n[Docs](https://gglasso.readthedocs.io/en/latest/) | [Examples](https://gglasso.readthedocs.io/en/latest/auto_examples/index.html)\n\n## Getting started\n\n### Install via pip/conda\n\nThe package is available on pip and conda and can be installed with\n\n    pip install gglasso\n\nor\n\n    conda install -c conda-forge gglasso\n\n\n### Install from source\n\nAlternatively, you can install the package from source using the following commands:\n\n    git clone https://github.com/fabian-sp/GGLasso.git\n    pip install -r requirements.txt\n    python setup.py\n\nTest your installation with \n\n    pytest gglasso/ -v\n\n\n### Advanced options\n\nIf you want to create a conda environment with full development dependencies (for building docs, testing etc), run:\n\n\tconda env create -f environment.yml\n\nIf 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\n\n    python setup.py clean --all develop clean --all\n\n## The `glasso_problem` class\n\n`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.\n\n\n## Algorithms\n\n`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).\n\nThe package includes solvers for the following problems:<br>\n\n- **Single Graphical Lasso**<br>\n\n- **Group and Fused Graphical Lasso**<br>\nWe implemented the ADMM (see [2] and [3]) and a proximal point algorithm (see [4]). \n\n- **Non-conforming Group Graphical Lasso**<br>\nA Group Graphical Lasso problem where not all variables exist in all instances/datasets.  \n\n- **Functional Graphical Lasso**<br>\nA variant of Graphical Lasso where each variables has a functional representation (e.g. by Fourier coefficients).\n\nMoreover, 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*.\n\n## Citation\n\nIf you use `GGLasso`, please consider the following citation\n\n    @article{Schaipp2021,\n      doi = {10.21105/joss.03865},\n      url = {https://doi.org/10.21105/joss.03865},\n      year = {2021},\n      publisher = {The Open Journal},\n      volume = {6},\n      number = {68},\n      pages = {3865},\n      author = {Fabian Schaipp and Oleg Vlasovets and Christian L. M\u00fcller},\n      title = {GGLasso - a Python package for General Graphical Lasso computation},\n      journal = {Journal of Open Source Software}\n    }\n\n\n## Community Guidelines\n\n1)  Contributions and suggestions to the software are always welcome.\n    Please, consult our [contribution guidelines](CONTRIBUTING.md) prior\n    to submitting a pull request.\n2)  Report issues or problems with the software using github\u2019s [issue\n    tracker](https://github.com/fabian-sp/GGLasso/issues).\n3)  Contributors must adhere to the [Code of\n    Conduct](CODE_OF_CONDUCT.md).\n\n\n## References\n*  [1] Friedman, J., Hastie, T., and Tibshirani, R. (2007).  Sparse inverse covariance estimation with the Graphical Lasso. Biostatistics, 9(3):432\u2013441.\n*  [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\u2013397.\n* [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.\n* [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\u20132220.\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Algorithms for Single and Multiple Graphical Lasso problems.",
    "version": "0.2.0",
    "project_urls": {
        "Homepage": "https://github.com/fabian-sp/GGLasso"
    },
    "split_keywords": [
        "network inference",
        "graphcial models",
        "graphical lasso",
        "optimization"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3237c2a6d1189efece27f8a97a0fc3738b92f33cb84d07fdb48e02557ce28578",
                "md5": "e26215d325275f17861800a64b7849ca",
                "sha256": "68cf956a7685b5213ef7473c9c245225a5839d676e3f350914180d02eb05bbe7"
            },
            "downloads": -1,
            "filename": "gglasso-0.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "e26215d325275f17861800a64b7849ca",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7.0",
            "size": 64868,
            "upload_time": "2024-01-16T11:50:39",
            "upload_time_iso_8601": "2024-01-16T11:50:39.276275Z",
            "url": "https://files.pythonhosted.org/packages/32/37/c2a6d1189efece27f8a97a0fc3738b92f33cb84d07fdb48e02557ce28578/gglasso-0.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5d72e52c609c07cfd26f17f55fe1e35e1e9aa4e1eab46138bb6743bc94981bae",
                "md5": "84e55957392dbedd5e1d3ba6d7426f54",
                "sha256": "104acc70d6de5341f8d2156b2cbc16cca54bb3dcec18b0ec6780a87c2684d9f8"
            },
            "downloads": -1,
            "filename": "gglasso-0.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "84e55957392dbedd5e1d3ba6d7426f54",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7.0",
            "size": 52547,
            "upload_time": "2024-01-16T11:50:41",
            "upload_time_iso_8601": "2024-01-16T11:50:41.402339Z",
            "url": "https://files.pythonhosted.org/packages/5d/72/e52c609c07cfd26f17f55fe1e35e1e9aa4e1eab46138bb6743bc94981bae/gglasso-0.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-16 11:50:41",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "fabian-sp",
    "github_project": "GGLasso",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "gglasso"
}
        
Elapsed time: 0.20344s