Acquisition and hallucination strategies#

Bayesian search scores candidate points with an acquisition function. Probability of improvement is the default; expected improvement and upper confidence bound are also available.

Parallel Bayesian batches are selected sequentially. After each selection, a hallucination strategy supplies a temporary objective value so the following slot explores a different part of the posterior. Posterior sampling is the default; mean, UCB, and constant strategies are available.

from hyperoptax import BayesianSearch, EI, MeanHallucination, UCB

state, optimizer = BayesianSearch.init(
    space,
    n_max=80,
    n_parallel=4,
    acquisition=EI(xi=0.01),
    hallucination=MeanHallucination(),
)

# UCB is an alternative acquisition strategy.
state, optimizer = BayesianSearch.init(
    space,
    n_max=80,
    acquisition=UCB(kappa=2.0),
)

API#

class hyperoptax.acquisition.BaseAcquisition[source]#

Bases: object

Base class for acquisition functions.

class hyperoptax.acquisition.UCB(kappa=2.0)[source]#

Bases: BaseAcquisition

Upper Confidence Bound acquisition function.

Parameters:

kappa (float)

class hyperoptax.acquisition.EI(xi=0.01)[source]#

Bases: BaseAcquisition

Expected Improvement acquisition function.

Parameters:

xi (float)

class hyperoptax.acquisition.PI(xi=0.01)[source]#

Bases: BaseAcquisition

Probability of Improvement acquisition function.

Parameters:

xi (float)

class hyperoptax.acquisition.BaseHallucination[source]#

Bases: object

Base class for Kriging Believer hallucination strategies.

Any callable with signature (mean, std, key, y_max) -> scalar can be used as a hallucination strategy — subclassing is optional.

class hyperoptax.acquisition.MeanHallucination[source]#

Bases: BaseHallucination

Classical Kriging Believer: hallucinate with GP posterior mean.

class hyperoptax.acquisition.SampleHallucination[source]#

Bases: BaseHallucination

Randomized Kriging Believer (RKB): hallucinate with a posterior sample.

arXiv 2603.01470.

class hyperoptax.acquisition.UCBHallucination(kappa=2.0)[source]#

Bases: BaseHallucination

Optimistic hallucination: mean + kappa * std.

Parameters:

kappa (float)

class hyperoptax.acquisition.ConstantHallucination(value=None)[source]#

Bases: BaseHallucination

Ginsbourger et al. 2010: hallucinate with y_max or a fixed constant.

If value is None, uses the current best observed value (y_max). Otherwise uses the fixed value regardless of observations.

Parameters:

value (float | None)