Skip to main content

A python package for semi-automated emulation

Project description

AutoEmulate

CI codecov Code style: black All Contributors Documentation

Simulations of physical systems are often slow and need lots of compute, which makes them unpractical for real-world applications like digital twins, or when they have to run thousands of times for sensitivity analyses. The goal of AutoEmulate is to make it easy to replace simulations with fast, accurate emulators. To do this, AutoEmulate automatically fits and compares various emulators, ranging from simple models like Radial Basis Functions and Second Order Polynomials to more complex models like Support Vector Machines, Gaussian Processes and Conditional Neural Processes to find the best emulator for a simulation.

The project is in early development.

Installation

AutoEmulate requires Python >=3.10 and <3.13.

There's lots of development at the moment, so we recommend installing the most current version from GitHub:

pip install git+https://github.com/alan-turing-institute/autoemulate.git

There's also a release on PyPI:

pip install autoemulate

For contributors using Poetry:

git clone https://github.com/alan-turing-institute/autoemulate.git
cd autoemulate
poetry install

Quick start

import numpy as np
from autoemulate.compare import AutoEmulate
from autoemulate.experimental_design import LatinHypercube
from autoemulate.simulations.projectile import simulate_projectile

# sample from a simulation
lhd = LatinHypercube([(-5., 1.), (0., 1000.)])
X = lhd.sample(100)
y = np.array([simulate_projectile(x) for x in X])

# compare emulators
ae = AutoEmulate()
ae.setup(X, y)
best_emulator = ae.compare() 

# cross-validation results
ae.summarise_cv() 
ae.plot_cv()

# test set results for the best emulator
ae.evaluate(best_emulator) 
ae.plot_eval(best_emulator)

# refit on full data and emulate!
emulator = ae.refit(best_emulator) 
emulator.predict(X)

# global sensitivity analysis
si = ae.sensitivity_analysis(emulator)
ae.plot_sensitivity_analysis(si)

Documentation

You can find tutorials, FAQs and the API reference here. The documentation is still work in progress.

Contributors

Kalle Westerling
Kalle Westerling

๐Ÿ“– ๐Ÿ’ป ๐Ÿ–‹
Bryan M. Li
Bryan M. Li

๐Ÿ’ป
martin
martin

๐Ÿ’ป ๐Ÿค” ๐Ÿ“– ๐Ÿšง ๐Ÿ”ฌ ๐Ÿ‘€
Eric Daub
Eric Daub

๐Ÿค” ๐Ÿ“† ๐Ÿ‘€ ๐Ÿ’ป
steven niederer
steven niederer

๐Ÿค” ๐Ÿ–‹ ๐Ÿ“†
Maximilian Balmus
Maximilian Balmus

๐Ÿ’ป ๐Ÿ›
Sophie Arana
Sophie Arana

๐Ÿ–‹ ๐Ÿ“– ๐Ÿ“†
Marjan Famili
Marjan Famili

๐Ÿ’ป ๐Ÿค” ๐Ÿ“–
Radka Jersakova
Radka Jersakova

๐Ÿ’ป ๐Ÿ“† ๐Ÿšง ๐Ÿค”
Andrew Duncan
Andrew Duncan

๐Ÿค” ๐Ÿ“†

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

autoemulate-0.2.1.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

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

autoemulate-0.2.1-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file autoemulate-0.2.1.tar.gz.

File metadata

  • Download URL: autoemulate-0.2.1.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.10.9 Darwin/22.6.0

File hashes

Hashes for autoemulate-0.2.1.tar.gz
Algorithm Hash digest
SHA256 c8b95347d76cf16946ba02b1784dd04bbb789b9ece599f73c4d0cdcb10ce030d
MD5 a750ab7626845e78136cb79384b7c67e
BLAKE2b-256 8137b76ec0fa4097d64659d9b26eca792e0cf9de2300441f9b810d613c3b4815

See more details on using hashes here.

File details

Details for the file autoemulate-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: autoemulate-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.5.1 CPython/3.10.9 Darwin/22.6.0

File hashes

Hashes for autoemulate-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ff277d081301b7e0eddb6e23e9fa8ea86cdc23ff8a493af662955ab4e0bf2d44
MD5 a85768a2a111198c19d4223bcbb2ef47
BLAKE2b-256 8bac1435156c44ebab7e4a302c055f6660dbf7bd49f9a59a924dcee701c5681c

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