bayesian优化demo运行
参考链接:贝叶斯优化
准备工作
在所使用的python版本下,应有一个bayes_opt目录如下:
如果没有这个目录,可以用pip install bayesian-optimization
命令下载
demo代码
新建一个python文件basic_bayesian.py
,其中代码如下:
def black_box_function(x, y):
"""Function with unknown internals we wish to maximize.
This is just serving as an example, for all intents and
purposes think of the internals of this function, i.e.: the process
which generates its output values, as unknown.
"""
return -x ** 2 - (y - 1) ** 2 + 1
from bayes_opt import BayesianOptimization
pbounds = {'x': (2, 4), 'y': (-3, 3)}
optimizer = BayesianOptimization(
f=black_box_function,
pbounds=pbounds,
verbose=2, # verbose = 1 prints only when a maximum is observed, verbose = 0 is silent
random_state=1,
)
optimizer.maximize(
init_points=2,
n_iter=3,
)
print(optimizer.max)
代码分析
- 代码中的
black_box_function
函数,在例子中是已知的,但实际中不需要是一个已知表达式的函数,只需要是一个已知输入参数和输出实数的函数就可以 optimizer
是一个实例化的BayesianOptimization
对象pbounds
是参数的界限,也就是参数可取的上下界范围,因为贝叶斯优化是有约束的优化技术maximize
是主要的方法,用于找出最大值init_points
参数表示希望进行随机探索的次数,n_iter
参数表示执行的贝叶斯优化步骤
运行结果
使用sudo python3 basic_bayesian.py
命令运行代码,输出如下:
如果希望查看所有探测到的参数,以及对应的目标值,可以在代码最后添加:
for i, res in enumerate(optimizer.res):
print("Iteration {}: \n\t{}".format(i, res))
重新运行,可以看到总共五次探索的参数和target值:
标签:function,optimizer,demo,参数,bayesian,优化 From: https://www.cnblogs.com/CCchaos/p/17409667.html