Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[QUESTION] Stheno or AbstractGPs.jl? #231

Closed
vikram-s-narayan opened this issue Mar 14, 2022 · 6 comments
Closed

[QUESTION] Stheno or AbstractGPs.jl? #231

vikram-s-narayan opened this issue Mar 14, 2022 · 6 comments

Comments

@vikram-s-narayan
Copy link

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
Copy link
Member

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
Copy link
Author

vikram-s-narayan commented Mar 14, 2022

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
Copy link
Member

willtebbutt commented Mar 14, 2022

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
Copy link
Author

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

@st--
Copy link
Member

st-- commented Mar 17, 2022

@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
Copy link
Author

@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!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants