예제 #1
0
 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)
예제 #2
0
 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)