LLNL / MuyGPyS

A fast, pure python implementation of the MuyGPs Gaussian process realization and training algorithm.
Other
23 stars 11 forks source link

Feature: hierarchical RBF #145

Closed igoumiri closed 1 year ago

igoumiri commented 1 year ago

This is work in progress to do what's described in https://github.com/LLNL/MuyGPyS/issues/71

igoumiri commented 1 year ago

Do you have any example notebooks that illustrate the behavior of the hierarchical parameters?

I was initially thinking of baking it in do_regress and maybe other places from examples but a notebook seems like a good idea. Didn't you mention something about deprecating do_regress anyway?

bwpriest commented 1 year ago

I was initially thinking of baking it in do_regress and maybe other places from examples but a notebook seems like a good idea. Didn't you mention something about deprecating do_regress anyway?

Yes, we are going to massively simplify MuyGPyS.examples for the 1.0 release. In the future, all of the scripts in MuyGPyS.examples will be made into very simple, single-use scripts. Each script will target a single backend as well. Their primary purpose will be to be read. It will be possible to use them, but that will be primarily for educational purposes.

I'd really like you to add a notebook to docs/examples. It can be simple. A runnable notebook will give us an easy way to play with the feature and make sure that it works as we are developing it, and the notebook itself will serve as documentation.

igoumiri commented 1 year ago

I'm still working on:

  1. adding more tests, in particular testing with anisotropic distortion
  2. the notebook
igoumiri commented 1 year ago

I created a notebook. You can preview it here: https://github.com/LLNL/MuyGPyS/blob/753d7122e55b2662565348be477ab41828f937ef/docs/examples/nonstationary_tutorial.ipynb

It's a starting point. Right now it mostly shows that it runs and how to pass the extra argument to the kernel.

The failing tests are just due to randomness. I suppose we could keep increasing the thresholds, or maybe there is a way to provide initial guesses close to the expected values?