Open
Description
The examples notebooks listed at https://github.com/bayesian-optimization/BayesianOptimization/blob/master/examples/parameter_types.ipynb are not working anymore.
I try this:
import warnings
import numpy as np
import matplotlib.pyplot as plt
from bayes_opt import BayesianOptimization
from bayes_opt import acquisition
from sklearn.gaussian_process.kernels import Matern
# suppress warnings about this being an experimental feature
warnings.filterwarnings(action="ignore")
def target_function_1d(x):
return np.sin(np.round(x)) - np.abs(np.round(x) / 5)
c_pbounds = {'x': (-10, 10)}
bo_cont = BayesianOptimization(target_function_1d, c_pbounds, verbose=0, random_state=1)
# one way of constructing an integer-valued parameter is to add a third element to the tuple
d_pbounds = {'x': (-10, 10, int)}
bo_disc = BayesianOptimization(target_function_1d, d_pbounds, verbose=0, random_state=1)
fig, axs = plt.subplots(2, 1, figsize=(10, 6), sharex=True, sharey=True)
bo_cont.maximize(init_points=2, n_iter=10)
bo_cont.acquisition_function._fit_gp(bo_cont._gp, bo_cont.space)
y_mean, y_std = bo_cont._gp.predict(np.linspace(-10, 10, 1000).reshape(-1, 1), return_std=True)
axs[0].set_title('Continuous')
axs[0].plot(np.linspace(-10, 10, 1000), target_function_1d(np.linspace(-10, 10, 1000)), 'k--', label='True function')
axs[0].plot(np.linspace(-10, 10, 1000), y_mean, label='Predicted mean')
axs[0].fill_between(np.linspace(-10, 10, 1000), y_mean - y_std, y_mean + y_std, alpha=0.3, label='Predicted std')
axs[0].plot(bo_cont.space.params, bo_cont.space.target, 'ro')
bo_disc.maximize(init_points=2, n_iter=10)
bo_disc.acquisition_function._fit_gp(bo_disc._gp, bo_disc.space)
y_mean, y_std = bo_disc._gp.predict(np.linspace(-10, 10, 1000).reshape(-1, 1), return_std=True)
axs[1].set_title('Discrete')
axs[1].plot(np.linspace(-10, 10, 1000), target_function_1d(np.linspace(-10, 10, 1000)), 'k--', label='True function')
axs[1].plot(np.linspace(-10, 10, 1000), y_mean, label='Predicted mean')
axs[1].fill_between(np.linspace(-10, 10, 1000), y_mean - y_std, y_mean + y_std, alpha=0.3, label='Predicted std')
axs[1].plot(bo_disc.space.params, bo_disc.space.target, 'ro')
for ax in axs:
ax.grid(True)
fig.tight_layout()
I got this error:
Traceback (most recent call last):
File ~\anaconda3\Lib\site-packages\spyder_kernels\py3compat.py:356 in compat_exec
exec(code, globals, locals)
File c:\users\lades\downloads\tcc_victor\untitled1.py:27
bo_disc = BayesianOptimization(target_function_1d, d_pbounds, verbose=0, random_state=1)
File ~\anaconda3\Lib\site-packages\bayes_opt\bayesian_optimization.py:153 in __init__
self._space = TargetSpace(f, pbounds, random_state=random_state,
File ~\anaconda3\Lib\site-packages\bayes_opt\target_space.py:61 in __init__
self._bounds = np.array(
TypeError: float() argument must be a string or a real number, not 'type'