-
Notifications
You must be signed in to change notification settings - Fork 0
Description
The JuliaGPs org is trying to figure out how best to provide a high-level front-end for our GPs -- currently they're useful for researchers and people who know a bit more about GPs, but we've not built functionality which lets people just call "fit" and expect something sensible to happen.
We're investigating all of the ML frameworks that we can find in the Julia ecosystem to figure out which ones are likely to work for us (see e.g. https://github.com/willtebbutt/MLJAbstractGPsGlue.jl/). We might pick one, or we might pick a couple if there's a good reason to do so.
To that end, I have a couple of API-related questions, to try and establish where there is / is not flexibility in the current Models.jl API:
- Input and output types. JuliaGPs leans heavily on the idea of collections of inputs being represented as
AbstractVector
s of the same length as the number of outputs. For an explanation of this, see our API docs and design discussion docs. The Models.jl API presently requires that inputs areAbstractMatrix
s. Would it be possible to generalise this toAbstractVector
s? - The same question applies to outputs: JuliaGPs requires a single output per input (including in the multi-output case -- we transform multi-output problems into single-output problems on an extended input space).
- Joint predictions. The current API requires that distributional predictions are marginal, in the sense that the output of
predict
must be a vector of distributions. Often, we're interested in joint predictions in JuliaGPs, so it would be nice to return a single distribution object when someone callspredict
, which represents the joint distribution over the predictions at all locations requested by the user.
None of these are show-stoppers for us, but it would be good to know how set-in-stone they are.