11import numpy as np
22from bayes_opt import BayesianOptimization
33from bayes_opt import UtilityFunction
4+ from bayes_opt .logger import ScreenLogger
45
56
67def f (x ):
78 return np .exp (- (x - 2 ) ** 2 ) + np .exp (- (x - 6 ) ** 2 / 10 ) + 1 / (x ** 2 + 1 )
89
10+ def black_box_function (x , y ):
11+ return - x ** 2 - (y - 1 ) ** 2 + 1
12+
13+
914
1015if __name__ == '__main__' :
11- optimizer = BayesianOptimization (f = None , pbounds = {'x' : (- 2 , 2 )}, verbose = 2 , random_state = 1 , allow_duplicate_points = True )
12- optimizer .set_gp_params (normalize_y = True , alpha = 2.5e-3 , n_restarts_optimizer = 20 ) # tuning of the gaussian parameters...
13- utility = UtilityFunction (kind = "ucb" , kappa = 5 , xi = 1 ) # kappa determines explore/Exploitation ratio
14- for point in range (20 ):
15- next_point_to_probe = optimizer .suggest (utility )
16- NextPointValues = np .array (list (next_point_to_probe .values ()))
17- mean ,std = optimizer ._gp .predict (NextPointValues .reshape (1 , - 1 ),return_std = True )
18- target = f (** next_point_to_probe )
19- optimizer .register (params = next_point_to_probe , target = target )
16+ repeat_points_version = True
17+ if repeat_points_version :
18+ optimizer = BayesianOptimization (f = f , pbounds = {'x' : (- 2 , 2 )}, verbose = 2 , random_state = 1 , allow_duplicate_points = True )
19+ # logger = ScreenLogger()
20+ # optimizer.subscribe(Events.OPTIMIZATION_STEP, logger)
21+ optimizer .set_gp_params (normalize_y = True , alpha = 2.5e-3 , n_restarts_optimizer = 20 ) # tuning of the gaussian parameters...
22+ utility = UtilityFunction (kind = "ucb" , kappa = 5 , xi = 1 ) # kappa determines explore/Exploitation ratio
23+ # optimizer.maximize(
24+ # init_points=2,
25+ # n_iter=20,
26+ # )
27+
28+ optimizer .maximize (init_points = 2 ,
29+ n_iter = 25 ,
30+ acq = 'ucb' ,
31+ kappa = 5 ,
32+ xi = 1 ,
33+ ** {'normalize_y' :True , 'alpha' :2.5e-3 , 'n_restarts_optimizer' :20 })
34+ # for point in range(20):
35+ # next_point_to_probe = optimizer.suggest(utility)
36+ # NextPointValues = np.array(list(next_point_to_probe.values()))
37+ # mean,std = optimizer._gp.predict(NextPointValues.reshape(1, -1),return_std=True)
38+ # target = f(**next_point_to_probe)
39+ # optimizer.register(params=next_point_to_probe, target=target)
40+ else :
41+
42+ # Bounded region of parameter space
43+ pbounds = {'x' : (2 , 4 ), 'y' : (- 3 , 3 )}
44+
45+ optimizer = BayesianOptimization (
46+ f = black_box_function ,
47+ pbounds = pbounds ,
48+ verbose = 2 , # verbose = 1 prints only when a maximum is observed, verbose = 0 is silent
49+ random_state = 1 ,
50+ )
51+
52+ optimizer .maximize (
53+ init_points = 2 ,
54+ n_iter = 3 ,
55+ )
56+
0 commit comments