EmuKit / emukit

A Python-based toolbox of various methods in decision making, uncertainty quantification and statistical emulation: multi-fidelity, experimental design, Bayesian optimisation, Bayesian quadrature, etc.
https://emukit.github.io/emukit/
Apache License 2.0
605 stars 128 forks source link

Different interface for IVR #360

Closed charelstoncrabb closed 3 years ago

charelstoncrabb commented 3 years ago

Seems as though the IVR has a slightly different interface than the other acquisitions (i.e., ModelVariance, ExpectedImprovement, etc.)

(Pdb) _acquisition
<class 'emukit.experimental_design.acquisitions.integrated_variance.IntegratedVarianceReduction'>
(Pdb) _acquisition(model_obj)
*** TypeError: __init__() missing 1 required positional argument: 'space'
apaleyes commented 3 years ago

Do you mean the input to __init__ method? That's natural and isn't really considered a part of the interface. You would expect different acquisition funcitons to require different inputs. Say this very IVR actually has two more parameters, that aren't showing up in that message simply because they have reasonable defaults.

Generally in OOP interface is understood is the declared functionality of the object, which includes methods and sometimes properties. Think of it this way - you can create objects in various different ways, but what matters is that these objects behave similarly.

Hope that clarifies it.