def test_EI(self): opt = SimpleBayesianOptimizer({"initial_random_runs": 3}) exp = Experiment("test", {"x": MinMaxNumericParamDef(0, 1)}) for i in range(10): cand = opt.get_next_candidates(exp)[0] assert_true(isinstance(cand, Candidate)) cand.result = 2 exp.add_finished(cand) cands = opt.get_next_candidates(exp, num_candidates=3) assert_equal(len(cands), 3)
def test_PoI(self): opt = SimpleBayesianOptimizer({"initial_random_runs": 3, "acquisition": ProbabilityOfImprovement}) assert_true(isinstance(opt.acquisition_function, ProbabilityOfImprovement)) exp = Experiment("test", {"x": MinMaxNumericParamDef(0, 1)}) for i in range(10): cand = opt.get_next_candidates(exp)[0] assert_true(isinstance(cand, Candidate)) cand.result = 2 exp.add_finished(cand) cands = opt.get_next_candidates(exp, num_candidates=3) assert_equal(len(cands), 3)
def test_init(self): #test default parameters opt = SimpleBayesianOptimizer(None) assert_equal(opt.initial_random_runs, 10) assert_is_none(opt.acquisition_hyperparams) assert_equal(opt.num_gp_restarts, 10) assert_true(isinstance(opt.acquisition_function, ExpectedImprovement)) assert_dict_equal(opt.kernel_params, {}) assert_equal(opt.kernel, "matern52") assert_false(opt.mcmc) assert_equal(opt.num_precomputed, 10) #test correct initialization opt_arguments = { "initial_random_runs": 5, "acquisition_hyperparams": {}, "num_gp_restarts": 5, "acquisition": ProbabilityOfImprovement, "kernel_params": {}, "kernel": "matern52", "mcmc": True, "num_precomputed": 5 } opt = SimpleBayesianOptimizer(opt_arguments) assert_equal(opt.initial_random_runs, 5) assert_dict_equal(opt.acquisition_hyperparams, {}) assert_equal(opt.num_gp_restarts, 5) assert_true(isinstance(opt.acquisition_function, ProbabilityOfImprovement)) assert_dict_equal(opt.kernel_params, {}) assert_equal(opt.kernel, "matern52") if import_if_exists("pymcmc")[0]: assert_true(opt.mcmc) else: assert_false(opt.mcmc) assert_equal(opt.num_precomputed, 5)