MATLAB toolbox for Gaussian Process (GP), Student-t Process (TP), multivariate GP (MV-GP) and multivariate TP (MV-TP) regression built on top of GPML 3.6.
This code is proof-of-concept, not optimized for speed.
- MATLAB R2016b or maybe newer
- GPML MATLAB Code v3.6 (run
startup.mfrom GPML before using this repo) - Add this repo to the MATLAB path via
add_path.m
- Clone GPML 3.6 and run its
startup.m. - Run
add_path.min this repo. - Call
gptp_generalwith your data:% GP regression with defaults (SE kernel, sn = 0.1) GP = gptp_general(xtr, ytr, xte); % MV-TP regression with custom kernel and inits covfunc = @covSEard; para_init = @SE_init; sn = 0.05; mvTP = gptp_general(xtr, ytr, xte, sn, covfunc, para_init, "TPVS");
gptp_general.m— high-level driver for GP, TP, MV-GP, MV-TP and their independent variants.solver/— model-specific solvers that wrap GPML primitives:gp_solve_gpml.m,tp_solve_gpml.m,mvgp_solve_gpml.m,mvtp_solve_gpml.m
init/— hyperparameter initialisation helpers. Adapt these to your data for best results:SE_init.m(kernel hyperparameters)Omega_init.m(output correlation) — provides a starting point only; production use should supply a task-specific initialiser.nv_init.m(degrees of freedom for TP/MV-TP)
util/andcov/— supporting math utilities and default SE covariance functions from GPML.sample/andexample/— small scripts for sampling and simulation demos.
Performance is sensitive to initial hyperparameters. The default SE_init.m, Omega_init.m, and nv_init.m are generic and meant as placeholders. For serious use, design problem-specific initialisation based on your training data and kernel choice (e.g., scale parameters, sensible output correlations, or informative priors on degrees of freedom).
gptp_general.m— main APIsolver/— optimisation and prediction routinesinit/— hyperparameter initialisersutil/,cov/— utilities and covariance functionssample/,example/— sampling and usage examples
- Chen, Zexun, and Bo Wang. "How priors of initial hyperparameters affect Gaussian process regression models." Neurocomputing 275 (2018): 1702–1710.
- Chen, Zexun, Bo Wang, and Alexander N. Gorban. "Multivariate Gaussian and Student-t Process Regression for Multi-output Prediction." Neural Computing and Applications 32.8 (2020): 3005–3028.
- Chen, Zexun, Jun Fan, and Kuo Wang. "Remarks on multivariate Gaussian Process." Neural Computing and Applications (published version of arXiv:2010.09830), 2023.