Skip to main content

The Union of Intersections framework in Python.

Project description

PyUoI logo

codecov Documentation Status PyPI Anaconda-Server Badge

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.20

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.

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

PyUol 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 " PyUol" (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.

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

pyuoi-1.0.0.tar.gz (86.7 kB view details)

Uploaded Source

Built Distributions

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

pyuoi-1.0.0-cp37-cp37m-macosx_10_7_x86_64.whl (109.4 kB view details)

Uploaded CPython 3.7mmacOS 10.7+ x86-64

pyuoi-1.0.0-cp36-cp36m-macosx_10_7_x86_64.whl (111.5 kB view details)

Uploaded CPython 3.6mmacOS 10.7+ x86-64

File details

Details for the file pyuoi-1.0.0.tar.gz.

File metadata

  • Download URL: pyuoi-1.0.0.tar.gz
  • Upload date:
  • Size: 86.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for pyuoi-1.0.0.tar.gz
Algorithm Hash digest
SHA256 3e9c8b5f82b50ee1ef0ab1acd330556e5a3d0e09b8d059ee239c6945e232b18c
MD5 edaad9f9b9a5bacedd662c8a18cdb5e7
BLAKE2b-256 23e5b85e8769db2fccf97d10f27d55423d23d35914c28b29a288ae8375906da5

See more details on using hashes here.

File details

Details for the file pyuoi-1.0.0-cp37-cp37m-macosx_10_7_x86_64.whl.

File metadata

  • Download URL: pyuoi-1.0.0-cp37-cp37m-macosx_10_7_x86_64.whl
  • Upload date:
  • Size: 109.4 kB
  • Tags: CPython 3.7m, macOS 10.7+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for pyuoi-1.0.0-cp37-cp37m-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 1a711cb1273efd78186520c3862748e0ab7c23f88a8b7089a4b76a6299cfac74
MD5 10df9cfca701c3ff7501c973b3383376
BLAKE2b-256 a861edda72c3a5a4da9c3062aa4559c6a24de87b02547b4d2c820be1ebaee8a1

See more details on using hashes here.

File details

Details for the file pyuoi-1.0.0-cp36-cp36m-macosx_10_7_x86_64.whl.

File metadata

  • Download URL: pyuoi-1.0.0-cp36-cp36m-macosx_10_7_x86_64.whl
  • Upload date:
  • Size: 111.5 kB
  • Tags: CPython 3.6m, macOS 10.7+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4

File hashes

Hashes for pyuoi-1.0.0-cp36-cp36m-macosx_10_7_x86_64.whl
Algorithm Hash digest
SHA256 b89c5850c43c6df7c1f0ed6e5e4e5ee97e47dbbc279b235462622a9410787bc7
MD5 c69404ad52557c5d7c9872854d8ccbdb
BLAKE2b-256 1638d8a6fdec794b2b8cd320c613b954b6c435a90847f751dc6ebc42a385c8c7

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