Introducing Gumbi: the Gaussian Process Model Building Interface

Hi @Oliver, thanks for giving it a shot! Sorry for the delay in getting back to you. That’s interesting that the predictions are very different, could you provide a minimal example and open an issue on Github?

To your question about prepare_grid, it just builds a Cartesian grid across all dimensions. It defaults to 100 points spanning -2.5σ to +2.5σ, where σ is the standard deviation of the (transformed) dimension. I’m not sure what you mean by “the ParameterArray input of points has to be 1d”. Maybe you’re referring to the at keyword argument? That’s intended to indicate a specific “slice” of your multidimensional space. You can see its usage in this example in the documentation:

...

gp.fit(outputs=['mpg'], continuous_dims=['horsepower','weight', 'cylinders'], linear_dims=['horsepower','weight', 'cylinders']);

for ax, cyl in zip(axs, cylinders):

    XY = gp.prepare_grid(at=gp.parray(cylinders=cyl))
    X = XY['horsepower']
    Y = XY['weight']
    z = gp.predict_grid(with_noise=False)

...

There, a GP is fit on the “cars” dataset. We’re interested in looking at the dependence of mpg on horsepower and weight surface at each value of cylinder. Now, the cylinder dimension is technically discrete, not continuous, but I haven’t implemented a discrete kernel yet, so it’s treated as continuous. For plotting purposes, we use the at keyword argument to specify the specific “slice” along the cylinder dimension in cylinder-horsepower-weight space to make predictions along.

Hope that helps, let me know if anything’s unclear! I am still developing/maintaining the package, as I have time, so suggestions/issues/questions are very welcome!