experimental-design / bofire

Experimental design and (multi-objective) bayesian optimization.
https://experimental-design.github.io/bofire/
BSD 3-Clause "New" or "Revised" License
207 stars 22 forks source link

Set default value for bounds in ContinuousInput Feature #288

Closed jduerholt closed 11 months ago

jduerholt commented 12 months ago

This PR implement default bounds for the ContinuousInput feature of (0,1), which allows the user to just type:

ContinuousInput(key="input_1")

instead of

ContinuousInput(key="input_1", bounds = (0,1))

which is especially useful in situations where using features of BoFire where bounds are not needed. Less typing is then needed ;)

bertiqwerty commented 12 months ago

What are the situations where you don't need bounds?

jduerholt commented 12 months ago

If you want to just use the domain to filter/aggregate/process some data for example. Furthermore, in a lot for formulation settings (0,1) are the default bounds. But if you want to keep it more verbose, this is also fine for me ;)

simonsung06 commented 11 months ago

A comment from my point of view about this change.

The bounds for ContinuousInput features are considered when the default Normalize scalar for SingleTaskGP is used (to the best of understanding based on this function). This means bounds could affect the model training. Therefore, if providing bounds became less visible and not required, and the values for the ContinuousInput feature in the provided experiments DataFrame are between 0 and 1, then the arbitrary (0, 1) bounds would be used as the lower and upper bound in the Normalize input scalar, which may not be intended for a user who doesn't provide bounds.

This is just a slight risk that I think is worth pointing out. But fine with me if you want to keep it and we have the users just be more aware of how they are using BoFire.

jduerholt commented 11 months ago

@simonsung06 : this is a very good point! I will retract this PR.