def setUp(self): self.x = np.array([[0.62971589], [0.63273273], [0.17867868], [0.17447447], [1.88558559]]) self.y = np.array([[-3.69925653], [-3.66221988], [-3.65560591], [-3.58907791], [-8.06925984]]) self.kernel = GPy.kern.RBF(input_dim=1, variance=30.1646253727, lengthscale=0.435343653946) self.noise = 1e-20 self.model = GPyModel(self.kernel, noise_variance=self.noise, optimize=False) self.model.train(self.x, self.y)
from robo.visualization.plotting import plot_model, plot_objective_function, plot_acquisition_function from robo import BayesianOptimization # def objective_function(x): # return np.sin(x) + 0.1 * np.cos(10 * x) def objective_function(x): return np.sin(3 * x) * 4 * (x - 1) * (x + 2) X_lower = np.array([0]) X_upper = np.array([6]) dims = 1 kernel = GPy.kern.Matern52(input_dim=dims, lengthscale=0.01) model = GPyModel(kernel, optimize=True, noise_variance=1e-8, num_restarts=10) acquisition_func = EI(model, X_upper=X_upper, X_lower=X_lower, compute_incumbent=compute_incumbent, par=0.1) maximizer = DIRECT bo = BayesianOptimization(acquisition_fkt=acquisition_func, model=model, maximize_fkt=maximizer, X_lower=X_lower, X_upper=X_upper, dims=dims, objective_fkt=objective_function) bo.run(num_iterations=5) X, Y = bo.get_observations() X = X[:-1]