I read some posts and tutorials about BayesianOptimization
and I never saw explanation about kappa
variable.
kappa
variable ?BayesianOptimization
process ?The kappa
parameter, along with xi
, is used to control how much the Bayesian optimization acquisition function balances exploration and exploitation.
Higher kappa
values mean more exploration and less exploitation and vice versa for low values. Exploration pushes the search towards unexplored regions and exploitation focuses on results in the vicinity of the current best results by penalizing for higher variance values.
It may be beneficial to begin with default kappa
values at the start of optimization and then lower values if you reduce the search space.
In scikit-optimize, kappa
is only used if the acquisition function acq_func
is set to “LCB” and xi
is used when acq_func
is “EI” or “PI” where LCB is Lower Confidence Bound, EI is Expected Improvement and PI is Probability of Improvement.
Similarly for the BayesianOptimization package:
acq: {'ucb', 'ei', 'poi'}
The acquisition method used.
* 'ucb' stands for the Upper Confidence Bounds method
* 'ei' is the Expected Improvement method
* 'poi' is the Probability Of Improvement criterion.
Mathematical details on acquisition functions
Note, the BayesianOptimization package and scikit-optimize use different default kappa
values: 2.576 and 1.96 respectively.
There is a decent exploration vs exploitation example in the scikit-optimize docs.
There is a similar BayesianOptimization exploration vs exploitation example notebook.
FWIW I've used both packages and gotten OK results. I find the scikit-optimize plotting functions to be useful when fine tuning the parameter search space.