A machine learning library intended for surrogate modeling tasks.
Project description
IFE Surrogate GP
A flexible and extensible library for Gaussian Processes, built with performance and modularity in mind.
Models can be trained via maximum likelihood estimation or by baysian inference.
Features
- High-performance kernels (JAX-compatible)
- Composable API for building custom models
- Multiple optimizers (Optax, Scipy, etc.)
- Built in Baysian inference of the models with NumPyro
- Automatic hyperparameter handling
- Built-in training workflows
Installation
pip install ife_surrogate
Usage
Quickstart
import ife_surrogate
dataset = np.load("some_data.npy", allow_pickle=True).item()
X, Y, f = dataset["X"], dataset["Y"], dataset["f"]
key = jr.key(seed=42)
(X_train, Y_train), (X_test, Y_test), _= train_test_split(
X=X, Y=Y, f=f,
split=(0.9, 0.1, 0),
key= key
)
d = X_train.shape[1]
priors = {"lengthscale": Uniform(1e-0, 1e1), "power": Uniform(1, 2)}
kernel = kernels.Kriging(lengthscale=jnp.ones(d), power=jnp.ones(d), priors=priors)
model = models.WidebandGP(X_train, Y_train, kernel, f)
trainer = trainers.SwarmTrainer(number_iterations=200, number_particles=100)
trainer.train(model)
pred, var = model.predict(X_test)
Documentation
Key Components
-
Kernels
- Kriging
- RBF
- Matern
- SumKernel
- ProductKernel
- Scale
- RQ
- Noise
-
Models
- WidebandGP
- ScalerGP
-
*Trainers
- OptaxTrainer
- SwarmTrainer
Roadmap
License
Distributed under the MIT License. See LICENSE for more information.
References
The mathematical background and implementation of these models are based on the following publications:
Gaussian Process & Student-t Theory
- Gaussian Process Basics: Rasmussen, C. E., & Williams, C. K. I. (2006). Gaussian Processes for Machine Learning. MIT Press.
- Student-t Process (TP) Foundations: Shah, A., Wilson, A. G., & Ghahramani, Z. (2014). Student-t Processes as Alternatives to Gaussian Processes. Proceedings of the 17th International Conference on Artificial Intelligence and Statistics (AISTATS).
Wideband & Multi-output Modeling
- Wideband Architecture: Rezende, R. S., Hansen, J., Piwonski, A., & Schuhmann, R. (2024). Wideband Kriging for Multiobjective Optimization of a High-Voltage EMI Filter. IEEE Transactions on Electromagnetic Compatibility, 66(4), 1116–1124.
- Multi-output Separable GPs: Bilionis, I., Zabaras, N., Konomi, B. A., & Lin, G. (2013). Multi-output separable Gaussian process: Towards an efficient, fully Bayesian paradigm for uncertainty quantification. Journal of Computational Physics, 241, 212–239.
- Vector-Valued Kernels: Alvarez, M. A., Rosasco, L., & Lawrence, N. D. (2012). Kernels for Vector-Valued Functions: A Review. [cite_start]Foundations and Trends in Machine Learning.
Inference & Software Stack
- JAX: Bradbury, J., et al. (2018). JAX: Composable transformations of Python+NumPy programs.
- NumPyro: Phan, D., Pradhan, N., & Jankowiak, M. (2019). Composable Effects for Flexible and Accelerated Probabilistic Programming in NumPyro. arXiv preprint.
- Flax: Heek, J., et al. (2020). Flax: A neural network library and ecosystem for JAX.
- Optax: Babuschkin, I., et al. (2020). Optax: Composable gradient descent optimization for JAX.
- SciPy: Virtanen, P., et al. (2020). SciPy 1.0: Fundamental Algorithms for Scientific Computing in Python. Nature Methods.
- NUTS Sampler: Hoffman, M. D., & Gelman, A. (2014). The No-U-Turn sampler: adaptively setting path lengths in Hamiltonian Monte Carlo. Journal of Machine Learning Research.
Acknowledgements
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
ife_surrogate-0.2.3.tar.gz
(38.5 kB
view details)
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 ife_surrogate-0.2.3.tar.gz.
File metadata
- Download URL: ife_surrogate-0.2.3.tar.gz
- Upload date:
- Size: 38.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec00a5f16e132d6b1e2a306567bce89986f567238e0c292a4ebad5b3e92d25a5
|
|
| MD5 |
a98738bb7887fb8f19d94adde74de000
|
|
| BLAKE2b-256 |
d3ba675de89ea6892ea01450b12fad4066daa38484c6dbaa354078228356a7ac
|
File details
Details for the file ife_surrogate-0.2.3-py3-none-any.whl.
File metadata
- Download URL: ife_surrogate-0.2.3-py3-none-any.whl
- Upload date:
- Size: 58.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33cad188a15870507c3d8732a78a8579190ec8d1a6a99db0c5cd7cecec1d6a0a
|
|
| MD5 |
c6997965109c33d261c3b4256fa5c79f
|
|
| BLAKE2b-256 |
6ade876527317a1f61bffe316dd1cc59137120ffc95edbc1e8851b1c23246c40
|