parallel-processingscikit-optimizekappa

what does model_queue_size do?


General question: Using scikit-optimize for a black box optimization. Can't find in the doc what model_queue_size does. I'm doing the ask-tell because I can parallelize the calculation of y as described in the example. So, doing some profiling, it looks like the opt.tell() call runs faster when model_queue_size is set smaller. Is that what model_queue_size does - limits the number of sample used in the opt.tell() call? 2nd question, how can I set kappa when using the Optimizier - ask-tell method?

thanks


Solution

  • When using the default model_queue_size=None all surrogate models are stored in the optimizer's models attribute. If a number is specified, only model_queue_size models will be remembered. That is in the the docs.
    A new model is added each time tell is called and old models will be discarded once model_queue_size is reached. So only the most recent models are remembered. That can be seen by looking at the code.
    Not sure why this would affect runtime in your case. I suppose if you run many iterations and models are very large it could be a memory thing.

    Kappa can be set by using the acq_func_kwargs parameter of the Optimizer constructor as shown in the exploration vs exploitation example.