JuliaGaussianProcesses / Stheno.jl

Probabilistic Programming with Gaussian processes in Julia
Other
338 stars 26 forks source link

[QUESTION] Stheno or AbstractGPs.jl? #231

Closed vikram-s-narayan closed 2 years ago

vikram-s-narayan commented 2 years ago

Could you please elaborate on how to choose between Stheno and AbstractGPs.jl. For what use cases would a developer choose one over the other.

Specifically, I'm trying to update SthenoKriging.jl (which used Stheno 0.6) and am wondering how to proceed.

Thanks!

willtebbutt commented 2 years ago

Good question!

You should just use the GP object in AbstractGPs if you just need a GP that's most easily written using a mean function and a kernel. You should consider using Stheno if you need to combine individual GPs in interesting ways.

Could you perhaps elaborate on the model used in SthenoKriging.jl?

vikram-s-narayan commented 2 years ago

Ah ...thank you.

Based on my review of the source code, the test cases and the documentation, it is my understanding that SthenoKriging.jl is designed to:

  1. Fit a model based on a set of input points and corresponding values
  2. Provide a prediction and standard error for any new interpolated point

The model does not combine individual GPs.

willtebbutt commented 2 years ago

Ah I see.

My impression from what I can see in the docs is that you'll probably be fine just using an AbstractGPs.GP for all of the single-output stuff. If you've got multiple outputs, you can either use Stheno, or one of the multi-output kernels found here + an AbstractGPs.GP.

One thing to be aware of is that literally everything in the AbstractGPs ecosystem reduces to a single-output GP, so if you just assume that the user provides an AbstractGP, you shouldn't stop users from using any of the above options.

edit: see this discussion for more info on multi-output stuff in the JuliaGPs ecosystem.

vikram-s-narayan commented 2 years ago

Thank you again. I'm closing this issue as the question has been answered :)

st-- commented 2 years ago

@vikram-s-narayan - I recently came across Surrogates.jl and was looking at the Kriging.jl and SthenoKriging.jl and was thinking they do need a bunch of clean-up & TLC. We'd be happy to help you get it working with the up-to-date AbstractGPs package - if you like, please join us on the Turing slack via this invite link: https://join.slack.com/t/turingjl/shared_invite/zt-ubbtg7r8-xtg4WjXEQTG_jvE~estuKw - and join the discussion in #gp-julia channel :)

vikram-s-narayan commented 2 years ago

@vikram-s-narayan - I recently came across Surrogates.jl and was looking at the Kriging.jl and SthenoKriging.jl and was thinking they do need a bunch of clean-up & TLC. We'd be happy to help you get it working with the up-to-date AbstractGPs package - if you like, please join us on the Turing slack via this invite link: https://join.slack.com/t/turingjl/shared_invite/zt-ubbtg7r8-xtg4WjXEQTG_jvE~estuKw - and join the discussion in #gp-julia channel :)

Thanks!