Multi output Gaussian Process package?


I am attempting to predict temperatures on a grid using a small dataset. Based on my research, I believe that Gaussian Processes would be the most effective approach. However, I am having trouble finding a package that accepts X_train and y_train as matrices (each row would describe a single experiment, parameters in X, grid |> vec results in y). Most of the packages available rely on the AbstractGPs.jl package, which requires y_train to be a vector of scalars.

I’m wondering if there’s a solution to this problem using a single model, or if I should define a separate model for each grid point. Any advice would be greatly appreciated.

1 Like

Hello! Have you seen GitHub - JuliaGaussianProcesses/Stheno.jl: Probabilistic Programming with Gaussian processes in Julia ? It claims to be flexible enough to do these things

Was about to reply to this and realised that our multi-output GP documentation is currently lacking (unless I’ve forgotten where we put it). In short: it’s quite straightforward to do multi-output stuff with AbstractGPs / KernelFunctions

Am working on a gist to show you how to do multi-output stuff now @lsablon , which I’ll turn into a proper example in kernelfunctions / abstractgps later today.

1 Like

Please see the gist here. I’d recommend consulting the docs both here and here if you’re interested in understanding what’s going on, and to get a sense of why things are the way that they are.

1 Like