PyUoI

PyUoI: The Union of Intersections Framework in Python - Published in JOSS (2019)

https://github.com/bouchardlab/pyuoi

Science Score: 98.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    10 of 15 committers (66.7%) from academic institutions
  • Institutional organization owner
    Organization bouchardlab has institutional domain (bouchardlab.lbl.gov)
  • JOSS paper metadata
    Published in Journal of Open Source Software

Scientific Fields

Artificial Intelligence and Machine Learning Computer Science - 83% confidence
Last synced: 4 months ago · JSON representation

Repository

The Union of Intersections Framework in Python

Basic Info
Statistics
  • Stars: 14
  • Watchers: 9
  • Forks: 17
  • Open Issues: 8
  • Releases: 2
Created almost 9 years ago · Last pushed 4 months ago
Metadata Files
Readme License

README.md

PyUoI logo

Actions Status codecov Documentation Status PyPI Anaconda-Server Badge DOI

PyUoI contains implementations of Union of Intersections framework for a variety of penalized generalized linear models as well as dimensionality reductions techniques such as column subset selection and non-negative matrix factorization. In general, UoI is a statistical machine learning framework that leverages two concepts in model inference:

  1. Separating the selection and estimation problems to simultaneously achieve sparse models with low-bias and low-variance parameter estimates.
  2. Stability to perturbations in both selection and estimation.

PyUoI is designed to function similarly to scikit-learn, as it often builds upon scikit-learn's implementations of the aforementioned algorithms.

Further details on the UoI framework can be found in the NeurIPS paper (Bouchard et al., 2017).

Installation

PyUoI is available for Python 3 on PyPI:

pip install pyuoi

and through conda-forge:

conda install pyuoi -c conda-forge

Requirements

Runtime

PyUoI requires

  • numpy>=1.14
  • h5py>=2.8
  • scikit-learn>=0.24

and optionally

  • pycasso
  • mpi4py

to run.

Develop

To develop PyUoI you will additionally need

  • cython

to build from source and

  • pytest
  • flake8

to run the tests and check formatting.

PyUoI has been built and tested on Python 3.9.18 with

  • numpy==1.26.1
  • h5py==3.10.0
  • scikit-learn==1.3.1
  • cython==3.0.4
  • pytest==7.4.2
  • flake8==6.1.0

Features

PyUoI is split up into two modules, with the following UoI algorithms:

  • linear_model (generalized linear models)
    • Lasso penalized linear regression UoILasso.
    • Elastic-net penalized linear regression (UoIElasticNet).
    • Logistic regression (Bernoulli and multinomial) (UoILogistic).
    • Poisson regression (UoIPoisson).
  • decomposition (dimensionality reduction)
    • Column subset selection (UoICSS).
    • Non-negative matrix factorization (UoINMF).

Similar to scikit-learn, each UoI algorithm has its own Python class.

Documentation

Please see our ReadTheDocs page for an introduction to Union of Intersections, usage of PyUoI, and the API.

Copyright

PyUoI Copyright (c) 2019, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved.

If you have questions about your rights to use or distribute this software, please contact Berkeley Lab's Innovation & Partnerships Office at IPO@lbl.gov referring to " PyUoI" (LBNL Ref 2019-157)."

NOTICE. This software was developed under funding from the U.S. Department of Energy. As such, the U.S. Government has been granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the Software to reproduce, prepare derivative works, and perform publicly and display publicly. The U.S. Government is granted for itself and others acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide license in the Software to reproduce, prepare derivative works, distribute copies to the public, perform publicly and display publicly, and to permit others to do so.

Owner

  • Name: Bouchard Lab GitHub
  • Login: BouchardLab
  • Kind: organization
  • Email: kebouchard@berkeley.edu

JOSS Publication

PyUoI: The Union of Intersections Framework in Python
Published
December 06, 2019
Volume 4, Issue 44, Page 1799
Authors
Pratik S. Sachdeva ORCID
Redwood Center for Theoretical Neuroscience, University of California, Berkeley, Berkeley, California, USA, Department of Physics, University of California, Berkeley, Berkeley, California, USA, Biological Systems and Engineering Division, Lawrence Berkeley National Laboratory, Berkeley, California, USA
Jesse A. Livezey ORCID
Redwood Center for Theoretical Neuroscience, University of California, Berkeley, Berkeley, California, USA, Biological Systems and Engineering Division, Lawrence Berkeley National Laboratory, Berkeley, California, USA
Andrew J. Tritt ORCID
Computational Research Division, Lawrence Berkeley National Laboratory, Berkeley, California, USA
Kristofer E. Bouchard ORCID
Redwood Center for Theoretical Neuroscience, University of California, Berkeley, Berkeley, California, USA, Biological Systems and Engineering Division, Lawrence Berkeley National Laboratory, Berkeley, California, USA, Computational Research Division, Lawrence Berkeley National Laboratory, Berkeley, California, USA, Helen Wills Neuroscience Institute, University of California, Berkeley, Berkeley, California, USA
Editor
Yuan Tang ORCID
Tags
generalized linear models dimensionality reduction sparsity interpretability

GitHub Events

Total
  • Watch event: 2
  • Member event: 1
  • Push event: 73
  • Fork event: 1
  • Create event: 1
Last Year
  • Watch event: 2
  • Member event: 1
  • Push event: 73
  • Fork event: 1
  • Create event: 1

Committers

Last synced: 5 months ago

All Time
  • Total Commits: 497
  • Total Committers: 15
  • Avg Commits per committer: 33.133
  • Development Distribution Score (DDS): 0.575
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Jesse Livezey j****y@l****v 211
Pratik Sachdeva p****3@g****m 144
Andrew Tritt a****t@l****v 79
Ben Dichter b****r@g****m 18
Charles Frye c****e@b****u 14
akumar01 a****0@g****m 12
David Clark d****k@b****u 4
Andrew Tritt a****t@h****v 4
afbujan a****n@b****u 4
Max Dougherty m****l@g****m 2
Alex a****n 1
Chris c****7@b****u 1
Daniel S. Katz d****z@i****g 1
mckenziephagen m****n@u****u 1
Sylvia Madhow S****w@3****v 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 4 months ago

All Time
  • Total issues: 37
  • Total pull requests: 69
  • Average time to close issues: 4 months
  • Average time to close pull requests: 16 days
  • Total issue authors: 7
  • Total pull request authors: 8
  • Average comments per issue: 0.57
  • Average comments per pull request: 0.96
  • Merged pull requests: 62
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • pssachdeva (13)
  • JesseLivezey (13)
  • ajtritt (4)
  • charlesfrye (3)
  • mckenziephagen (2)
  • briandesilva (1)
  • jihyunbak (1)
Pull Request Authors
  • JesseLivezey (35)
  • pssachdeva (21)
  • ajtritt (4)
  • akumar01 (2)
  • josephmaa (2)
  • kseniyausovich (1)
  • mckenziephagen (1)
  • danielskatz (1)
Top Labels
Issue Labels
docs (12) 2.0.0 (4) 2018 Sprint (1) medium (1) hard (1)
Pull Request Labels

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 13 last-month
  • Total docker downloads: 11
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 1
    (may contain duplicates)
  • Total versions: 18
  • Total maintainers: 2
pypi.org: pyuoi

The Union of Intersections framework in Python.

  • Versions: 13
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 13 Last month
  • Docker Downloads: 11
Rankings
Docker downloads count: 4.0%
Forks count: 9.1%
Dependent packages count: 10.0%
Average: 14.4%
Stargazers count: 15.6%
Dependent repos count: 21.7%
Downloads: 26.0%
Maintainers (2)
Last synced: 4 months ago
conda-forge.org: pyuoi

PyUoI contains implementations of Union of Intersections framework for a variety of penalized generalized linear models as well as dimensionality reductions techniques such as column subset selection and non-negative matrix factorization.

  • Versions: 5
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 34.0%
Forks count: 36.7%
Average: 42.6%
Stargazers count: 48.3%
Dependent packages count: 51.2%
Last synced: 4 months ago

Dependencies

.github/workflows/tests.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v3 composite
pyproject.toml pypi
requirements-dev.txt pypi
  • cython * development
  • flake8 * development
  • matplotlib * development
  • pytest * development
  • sphinx-gallery * development
  • sphinx-rtd-theme * development
requirements.txt pypi
  • h5py >=2.8
  • numpy >=1.14
  • scikit-learn >=0.24
setup.py pypi