A python package for semi-automated emulation
Project description
AutoEmulate 
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8b95347d76cf16946ba02b1784dd04bbb789b9ece599f73c4d0cdcb10ce030d
|
|
| MD5 |
a750ab7626845e78136cb79384b7c67e
|
|
| BLAKE2b-256 |
8137b76ec0fa4097d64659d9b26eca792e0cf9de2300441f9b810d613c3b4815
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ff277d081301b7e0eddb6e23e9fa8ea86cdc23ff8a493af662955ab4e0bf2d44
|
|
| MD5 |
a85768a2a111198c19d4223bcbb2ef47
|
|
| BLAKE2b-256 |
8bac1435156c44ebab7e4a302c055f6660dbf7bd49f9a59a924dcee701c5681c
|