Skip to main content

Emukit

Build Status | Documentation Status | Tests Coverage | GitHub License

Website | Documentation | Contribution Guide

Emukit is a highly adaptable Python toolkit for enriching decision making under uncertainty. This is particularly pertinent to complex systems where data is scarce or difficult to acquire. In these scenarios, propagating well-calibrated uncertainty estimates within a design loop or computational pipeline ensures that constrained resources are used effectively.

The main features currently available in Emukit are:

  • Multi-fidelity emulation: build surrogate models when data is obtained from multiple information sources that have different fidelity and/or cost;
  • Bayesian optimisation: optimise physical experiments and tune parameters of machine learning algorithms;
  • Experimental design/Active learning: design the most informative experiments and perform active learning with machine learning models;
  • Sensitivity analysis: analyse the influence of inputs on the outputs of a given system;
  • Bayesian quadrature: efficiently compute the integrals of functions that are expensive to evaluate.

Emukit is agnostic to the underlying modelling framework, which means you can use any tool of your choice in the Python ecosystem to build the machine learning model, and still be able to use Emukit.

Installation

To install emukit, simply run

pip install emukit

For other install options, see our documentation.

Dependencies / Optional Extras

Core dependencies are the numerical Python stack (NumPy, SciPy, matplotlib, emcee). Optional groups enable additional features without pulling heavy dependencies into a minimal install:

  • gpy: Gaussian process wrappers, multi-fidelity models, Bayesian quadrature (adds GPy). Also see notice below.
  • bnn: Bayesian neural network (Bohamiann) and Profet meta-surrogate examples (adds pybnn, torch).
  • sklearn: scikit-learn model wrapper and examples (adds scikit-learn).
  • docs: Build documentation locally (adds Sphinx toolchain + GPy to render GP API docs).
  • tests: Test tooling.
  • full: Convenience meta extra installing all of the above.

Install extras via pip:

# Core install
pip install emukit

# Add GPy-based functionality
pip install emukit[gpy]

# Bohamiann & Profet examples (Bayesian neural nets)
pip install emukit[bnn]

# scikit-learn model wrapper support
pip install emukit[sklearn]

# Build documentation (includes GPy + Sphinx toolchain)
pip install emukit[docs]

# Bundle for running most example scripts (GPy + pybnn + torch + scikit-learn)
pip install emukit[examples]

# Everything (gpy + bnn + sklearn + examples + docs + test tooling)
pip install emukit[full]

Legacy pinned requirement files remain in the requirements/ directory for reference but extras (above) are the preferred installation mechanism going forward.

NumPy 2 notice

Core Emukit functionality works with NumPy 2.0+. However, some parts of Emukit (e.g. most acquisition functions) need GPy, that for the time being is a bit behind. If using GPy is critical for you, consider installing earlier versions of Emukit.

Getting started

For examples see our tutorial notebooks.

Documentation

To learn more about Emukit, refer to our documentation.

To learn about emulation as a concept, check out the Emukit playground project.

Citing the library

If you are using emukit, we would appreciate if you could cite our papers about Emukit in your research:

@inproceedings{emukit2019,
  author = {Paleyes, Andrei and Pullin, Mark and Mahsereci, Maren and McCollum, Cliff and Lawrence, Neil and González, Javier},
  title = {Emulation of physical processes with {E}mukit},
  booktitle = {Second Workshop on Machine Learning and the Physical Sciences, NeurIPS},
  year = {2019}
}

@article{emukit2023,
  title={Emukit: A {P}ython toolkit for decision making under uncertainty},
  author={Andrei Paleyes and Maren Mahsereci and Neil D. Lawrence},
  journal={Proceedings of the Python in Science Conference},
  year={2023}
}

The papers themselves can be found at these links: NeurIPS workshop 2019, SciPy conference 2023.

License

Emukit is licensed under Apache 2.0. Please refer to LICENSE and NOTICE for further license information.

Metadata

Release files for emukit 0.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for emukit 0.5.1
File Size Uploaded
emukit-0.5.1.tar.gz 186.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for emukit 0.5.1
File Interpreter ABI Platform
emukit-0.5.1-py3-none-any.whl Python 3 none any Details

Total release size: 470.4 kB

Release files / emukit-0.5.1.tar.gz

Download URL emukit-0.5.1.tar.gz
Size 186.4 kB
Tags Source
SHA-256 checksum
How to use checksums
e84092e1e7c005fd04e9fcbb6eeafb5e5dc7ae7d23fb599d8c10b00faa7b18e5
BLAKE2b-256 checksum
How to use checksums
5af5fe6887ca85b3f403e4c28dd37117b6b9ecd6dcb6d7523c376a33e1767585
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.0

Release files / emukit-0.5.1-py3-none-any.whl

Download URL emukit-0.5.1-py3-none-any.whl
Size 283.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3900460ac703ca430813261c0708907aaf343f3ece935f7b253fd69ad63b1c98
BLAKE2b-256 checksum
How to use checksums
c96fd1dc282676586c2a6d97b85fa73c6f48bd89e0aca84502e42e7bd8890809
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.0

Release history Release notifications | RSS feed

This release

0.5.1 This release

2 release files

0.5.0

2 release files

0.4.11

1 release file

0.4.10

1 release file

0.4.9

2 release files

0.4.8

1 release file

0.4.7

1 release file

0.4.6

1 release file

0.4.5

2 release files

0.4.1

1 release file

0.4.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page