【问题标题】:How does n_points in skopt BayesSearchCV work?skopt BayesSearchCV 中的 n_points 是如何工作的?
【发布时间】:2021-09-10 10:39:36
【问题描述】:
我对 n_points 在 skopt BayesSearchCV 中的工作方式感到困惑。据我了解,贝叶斯搜索是顺序的。但是在 skopt BayesSearchCV 中,我们可以设置 n_point 参数,该参数指定要并行采样的参数设置的数量。这种并行性如何工作?它是做 n_points 个独立的贝叶斯搜索还是执行批量贝叶斯优化?
【问题讨论】:
标签:
parallel-processing
skopt
bayessearchcv
【解决方案1】:
基于source code,BayesSearchCV 在优化的每个步骤中生成并尝试一批大小为n_points 的参数集。 (见BayesSearchCV._step和optimzer.ask)
因此,批处理中的参数集是使用相同数量的参数空间“知识”生成的。这权衡了更快地搜索参数空间(假设n_jobs > 1)与尝试不良参数集的风险增加。
请注意,批量大小将从n_iter 计数中减去,因此尝试的参数集数量和贝叶斯优化的迭代次数之间存在区别。比如n_iter=100和n_points=5,那么会有20轮优化。