Welcome to AutoEmulate#

AutoEmulate is a Python library that makes it easy to create accurate and efficient emulators for complex simulations. Under the hood, the package runs a complete machine learning pipeline to compare and optimise a wide range of models, and provides functions for downstream tasks like prediction, sensitivity analysis and calibration.

๐Ÿš€ Get started

โœจ Why AutoEmulate?#

  • ๐Ÿ› ๏ธ Diverse Emulators: From classic Radial Basis Functions to cutting-edge Neural Processes

  • ๐Ÿช„ Low-Code: Data-processing, model comparison, cross-validation, hyperparameter search and more in few lines of code

  • ๐ŸŽฏ Optimized for Emulation: Optimized for typical emulation scenarios with small to medium datasets (100s-1000s of points) with many inputs and outputs

  • ๐Ÿ”Œ Easy Integration: All emulators are scikit-learn compatible, and the underlying PyTorch models can be extracted for custom use

  • ๐Ÿ”ฎ Downstream Applications: Still early days, but weโ€™ve got prediction, sensitivity analysis, history matching and more

๐ŸŽ“ State-of-the-Art Models#

๐Ÿ“ˆ Classical

  • Radial Basis Functions

  • Second Order Polynomials

๐ŸŒณ Machine Learning

  • Random Forests

  • Gradient Boosting

  • Support Vector Machines

  • LightGBM

Deep Learning

  • Multi-output / Multi-task Gaussian Processes

  • Conditional Neural Processes