python贝叶斯优化算法代码
时间: 2024-05-13 07:11:39 浏览: 175
贝叶斯优化是一种基于贝叶斯定理的优化算法,可以用于求解黑盒函数的最优解。Python中有很多库可以实现贝叶斯优化算法,其中比较常用的是scikit-optimize和BayesianOptimization。
scikit-optimize库实现了多种全局优化算法,其中包括贝叶斯优化算法。以下是一个简单的示例代码:
```
from skopt import gp_minimize
from skopt.space import Real
def objective(x):
return (x-2)**2 + (x+3)**2
space = [Real(-10, 10, name='x1'), Real(-5, 5, name='x2')]
res = gp_minimize(objective, space)
print("Minimum value found: %f" % res.fun)
print("Minimum location found: ", res.x)
```
在这个例子中,我们定义了一个目标函数objective,该函数接受一个长度为2的向量作为输入,并返回一个标量输出。我们使用gp_minimize函数来最小化这个函数,并指定搜索空间为两个连续变量x1和x2。最终,我们得到了最小值和最小值所在位置的输出。
BayesianOptimization库也提供了一个类似的API,以下是一个简单的示例代码:
```
from bayes_opt import BayesianOptimization
def objective(x, y):
return -(x**2 + (y-1)**2)
pbounds = {'x': (-10, 10), 'y': (-5, 5)}
optimizer = BayesianOptimization(
f=objective,
pbounds=pbounds,
random_state=1,
)
optimizer.maximize(n_iter=10)
print(optimizer.max)
```
在这个例子中,我们定义了一个目标函数objective,该函数接受两个连续变量x和y作为输入,并返回一个标量输出。我们使用BayesianOptimization类来最大化这个函数,并指定搜索空间为两个变量x和y。最终,我们得到了最大值和最大值所在位置的输出。
阅读全文