Paper - API Documentation - Tutorials & Examples - Code of Conduct
MOGPTK (Multi-Output Gaussian Process Toolkit) is an open-source Python library for interpretable probabilistic modelling of multichannel time series. Built on PyTorch, it provides Gaussian process models with a range of covariance architectures, spectral analysis tools, GPU acceleration, and visualisation utilities for scientific applications underpinned by temporal observations.
The project was initiated in 2020 at the Center for Mathematical Modelling, Universidad de Chile, and has been hosted at Imperial College London since October 2024. Development has benefited from research supported by:
- Center for Mathematical Modelling, Universidad de Chile (2020–2024)
- ANID Fondecyt research grants, Chile (2020–2024)
- Google Research Awards (2020–2024)
With Anaconda installed on your system, open a command prompt and create a virtual environment:
conda create -n myenv python=3.14
conda activate myenv
where myenv is the name of your environment, and where the version of Python could be 3.6 or above. Next we will install this toolkit and automatically install the necessary dependencies such as PyTorch.
pip install mogptk
In order to upgrade to a new version of MOGPTK or any of its dependencies, use --upgrade as follows:
pip install --upgrade mogptk
For developers of the library or for users who need the latest changes, we recommend cloning the git master or develop branch and using the following command inside the repository folder:
pip install --upgrade -e .
See Tutorials & Examples to get started.
This repository provides a toolkit to perform multi-output GP regression with kernels that are designed to utilise correlation information among channels in order to better model signals. The toolkit is mainly targeted at time series, and includes plotting functions for the case of single input with multiple outputs (time series with several channels).
The main kernel corresponds to Multi Output Spectral Mixture Kernel, which correlates every pair of data points (irrespective of their channel of origin) to model the signals. This kernel is specified in detail in the following publication: G. Parra, F. Tobar, Spectral Mixture Kernels for Multi-Output Gaussian Processes, Advances in Neural Information Processing Systems, 2017. Available here
The kernel learns the cross-channel correlations of the data, so it is particularly well-suited for the task of signal reconstruction in the event of sporadic data loss. All other included kernels can be derived from the Multi Output Spectral Mixture kernel by restricting some parameters or applying some transformations.
One of the main advantages of the present toolkit is the GPU support, which enables the user to train models through PyTorch, speeding computations significantly. It also includes sparse-variational GP regression functionality to decrease computation time even further.
See MOGPTK: The Multi-Output Gaussian Process Toolkit for our publication in Neurocomputing.
Implemented inference models:
- Exact Gaussian process (maximum likelihood)
- Snelson (E. Snelson, Z. Ghahramani, "Sparse Gaussian Processes using Pseudo-inputs", 2005)
- OpperArchambeau (M. Opper, C. Archambeau, "The Variational Gaussian Approximation Revisited", 2009)
- Titsias (Titsias, "Variational learning of induced variables in sparse Gaussian processes", 2009)
- Hensman (J. Hensman, et al., "Scalable Variational Gaussian Process Classification", 2015)
Implemented likelihoods:
- Gaussian
- Student-T
- Exponential
- Laplace
- Bernoulli
- Beta
- Gamma
- Poisson
- Weibull
- Log-Logistic
- Log-Gaussian
- Chi
- Chi-Squared
00 - Quick Start: Short notebook showing the basic use of the toolkit.
01 - Data Loading: Functionality to load CSVs and DataFrames while using formatters for dates.
02 - Data Preparation: Handle data, removing observations to simulate sensor failure and apply tranformations to the data.
03 - Parameter Initialization: Parameter initialization using different methods, for single output regression using spectral mixture kernel and multioutput case using MOSM kernel.
04 - Model Training: Training of models while keeping certain parameters fixed.
05 - Error Metrics Obtain different metrics in order to compare models.
06 - Custom Kernels and Mean Functions Use or create custom kernels as well as training custom mean functions.
07 - Sparse Multi Input Use 8 input dimensions to train the Abalone data set using sparse GPs.
08 - Multi Likelihood Classification Use a different likelihood for each channel, one Bernoulli for classification and one StudentT's for regression.
Airline passengers: Regression using a single output spectral mixture on the yearly number of passengers of an airline.
Seasonal CO2 of Mauna-Loa: Regression using a single output spectral mixture on the CO2 concentration at Mauna-Loa throughout many years.
Currency Exchange: Model training, interpretation and comparison on a dataset of 11 currency exchange rates (against the dollar) from 2017 and 2018. These 11 channels are fitted with the MOSM, SM-LMC, CSM, and CONV kernels and their results are compared and interpreted.
Gold, Oil, NASDAQ, USD-index: The commodity indices for gold and oil, together with the indices for the NASDAQ and the USD against a basket of other currencies, we train multiple models to find correlations between the macro economic indicators.
Human Activity Recognition: Using the Inertial Measurement Unit (IMU) of an Apple iPhone 4, the accelerometer, gyroscope and magnetometer 3D data were recorded for different activities resulting in nine channels.
Bramblemet tidal waves: Tidal wave data set of four locations in the south of England. We model the tidal wave periods of approximately 12.5 hours using different multi-output Gaussian processes.
See the API documentation for documentation of our toolkit, including usage and examples of functions and classes.
MOGPTK is developed through a long-term roadmap that advances the toolkit as a general platform for probabilistic modelling of multichannel time series. While the software remains broadly applicable across scientific and engineering domains, recent collaborations and interactions with researchers working in the life sciences have motivated some of the scheduled improvements to the toolbox.
Current development is organised around four complementary themes:
- Scale: scalable probabilistic modelling for larger datasets and more channels.
- Represent: richer probabilistic models and interpretable latent representations.
- Learn: integration with modern AI methods for learning from limited or partially labelled data.
- Apply: reproducible scientific workflows, benchmarking, visualisation, and high-quality tutorials.
We welcome contributions across all areas of the toolkit, including bug fixes, documentation, tutorials, performance improvements, new models, and scientific applications. We accept contributions through pull requests (PRs), bug reports, GitHub Discussions, and feature requests. Please consider starting an open discussion before proposing substantial new features. For smaller PRs, we recommend that each addresses a single issue or introduces one new feature. All PRs should keep documentation and notebooks up to date. For more details, see our Contribution Guidelines.
Please refer to the publication in Neurocomputing MOGPTK: The Multi-Output Gaussian Process Toolkit. We recommend the following BibTeX entry:
@article{mogptk,
author = {T. {de Wolff} and A. {Cuevas} and F. {Tobar}},
title = {{MOGPTK: The Multi-Output Gaussian Process Toolkit}},
journal = "Neurocomputing",
year = "2020",
issn = "0925-2312",
doi = "https://doi.org/10.1016/j.neucom.2020.09.085",
url = "https://github.com/GAMES-UChile/mogptk"
}
- Taco de Wolff
- Alejandro Cuevas
- Felipe Tobar
Released under the MIT license.
- A.I. Cowen-Rivers, et al., SAMBA: Safe Model-Based & Active Reinforcement Learning
- O.A. Guerrero, et al., Subnational Sustainable Development: The Role of Vertical Intergovernmental Transfers in Reaching Multidimensional Goals
- O.A. Guerrero, G. Castañeda, How Does Government Expenditure Impact Sustainable Development? Studying the Multidimensional Link between Budgets and Development Gaps
- T.V. Vo, et al., Federated Estimation of Causal Effects from Observational Data
- Q. Lin, et al., Multi-output Gaussian process prediction for computationally expensive problems with multiple levels of fidelity
- S. Covino, et al., Detecting the periodicity of highly irregularly sampled light-curves with GPs
- Y. Jung, J. Park, Scalable Inference for Hybrid Bayesian HMM using GP Emission
- H. Liu, et al., Scalable multi-task GPs with neural embedding of coregionalization
- L.M. Rivera-Muñoz, et al., Missing Data Estimation in a Low-Cost Sensor network for Measuring Air Quality
- G. Caballero, et al., Synergy of Sentinel-1 and Sentinel-2 Time Series for Cloud-Free Vegetation Water Content Mapping with Multi-Output Gaussian Processes
- S.T. Yeh, X. Du, Optimal Tilt-Wing eVTOL Takeoff Trajectory Prediction Using Regression Generative Adversarial Networks
- A. Patharkar, et al., Predictive modeling of biomedical temporal data in healthcare applications: review and future directions
- M. Zhang, et al., A machine learning method for the prediction of ship motion trajectories in real operational conditions
- D. Polke, et al., Adaptive Learning with Gaussian Process Regression: A Comprehensive Review of Methods and Applications
- O.A. Guerrero, G. Catañeda, How does government expenditure impact sustainable development? Studying the multidimensional link between budgets and development gaps
- A.U. Hassan, M.J. Aljaafreh, Predicting UV-Vis Spectra of Benzothio/Dithiophene Polymers for Photodetectors by Machine-Learning-Assisted Computational Studies
- J. Li, et al., Battery capacity trajectory prediction by capturing the correlation between different vehicles
- A.U. Hassan, M.J. Aljaafreh, A Machine Learning Study to Explore the Structural Basis of Non-Conjugated Compounds for Their Optical Activity Features
- Q. Li, M. Ludovski, Probabilistic spatiotemporal modeling of day-ahead wind power generation with input-warped Gaussian processes
- R.R. Griffiths, et al., Modeling the Multiwavelength Variability of Mrk 335 Using Gaussian Processes
- H.A.K. Kyhoiesh, et al., A machine learning-gaussian process screening of carbazole based donors to design efficient organic polymers for photovoltaic applications
- Z. Sun, et al., PEMFC Performance Prediction Based on Degradation Mechanism and Machine Learning
- J. Barahona, et al., Machine learning modeling of lung mechanics: Assessing the variability and propagation of uncertainty in respiratory-system compliance and airway resistance
- E. Daş, J.W. Burdick, An Active Learning Based Robot Kinematic Calibration Framework Using Gaussian Processes
- Y. Yang, et al., Designing strongly coupled polaritonic structures via statistical machine learning
- P. Zhou, et al., Long-term prediction enhancement based on multi-output Gaussian process regression integrated with production plans for oxygen supply network
- L.M. Rivera-Muñoz, et al., Deep matrix factorization models for estimation of missing data in a low-cost sensor network to measure air quality
- X. Li, et al., Time-optimal general asymmetric S-curve profile with low residual vibration
- C. Miao, Y. Wang, Multivariate Gaussian process regression for characterization of geo-data spatial variability from limited and non-co-located measurements
- A. Lerow, et al., Cluster-Specific Predictions with Multi-Task Gaussian Processes
- T. Hoffbauer, et al., KernelMatmul: Scaling Gaussian Processes to Large Time Series
- J. Rohmer, et al., Improved metamodels for predicting high-dimensional outputs by accounting for the dependence structure of the latent variables: application to marine flooding
- Y. Dai, et al., Graphical Multioutput Gaussian Process with Attention
- E. Balzani, et al., A probabilistic framework for task-aligned intra- and inter-area neural manifold estimation
- V. Caro, et al., Modeling Neonatal EEG Using Multi-Output Gaussian Processes
- L. Xu, et al., Prediction for distributional outcomes in high-performance computing input/output variability
- R.R. Griffiths, Applications of Gaussian Processes at Extreme Lengthscales: From Molecules to Black Holes
- G. Yang, et al., Self-Evolving Offset-Free Model Predictive Control with Model–Plant Mismatch for Dynamic Working-Point Change Tasks in Industrial Processes
- Ó. García-Hinde, et al., A conditional one-output likelihood formulation for multitask Gaussian processes
- L. Liu, et al., Plane Cascade Aerodynamic Performance Prediction Based on Metric Learning for Multi-Output Gaussian Process Regression
- Y. Chai, Uncertainty Quantification for Network Models: A Study in Synthetic Brain Models
- A. Khanal, et al., Gaussian Process-Based Extended Kalman Filter for Trajectory Estimation in sUAV Traffic Management
- D. Özese, et al, Tree-Based Sequential Sampling for Efficient Designs in Package Electrical Analysis
- F. Batsch, Active Learning with Gaussian Processes for the Investigation of Critical Scenarios in Autonomous Driving
- V. Caro, et al., Modeling neonatal EEG using multi-output Gaussian processes
- Z. Sun, K. Chen, Leveraging Single Tasks for Better Generalization of Multitask Gaussian Process on Multivariate Time Series
- F. Tobar, et al., Data Science for Engineers: A Teaching Ecosystem
- F. Tobar, et al., Computationally-efficient initialisation of GPs: The generalised variogram method
- Q. Xu, et al., Revisiting Nonstationary Kernel Design for Multi-Output Gaussian Processes