示例#1
0
def test_initialize_vertices():
    initialize = {"vertices": 2}

    opt = RandomSearchOptimizer(search_space, initialize=initialize)
    opt.search(objective_function, n_iter=2)

    assert abs(opt.best_score) - 10000 < 0.001
def test_verbosity_4():
    opt = RandomSearchOptimizer(search_space)
    opt.search(
        objective_function,
        n_iter=100,
        verbosity=["progress_bar", "print_results"],
    )
示例#3
0
def test_attributes_iter_times_1():
    c_time = time.time()
    opt = RandomSearchOptimizer(search_space)
    opt.search(objective_function, n_iter=100)
    diff_time = time.time() - c_time

    assert np.array(opt.iter_times).sum() < diff_time
示例#4
0
def test_max_time_1():
    c_time1 = time.time()
    opt = RandomSearchOptimizer(search_space)
    opt.search(objective_function, n_iter=1000000, max_time=1)
    diff_time1 = time.time() - c_time1

    assert 0.3 < diff_time1 < 2
示例#5
0
def test_attributes_results_5():
    opt = RandomSearchOptimizer(search_space,
                                initialize={"warm_start": [{
                                    "x1": 10
                                }]})
    opt.search(objective_function, n_iter=1)

    assert 10 in list(opt.results["x1"].values)
def test_attributes_results_4():
    opt = RandomSearchOptimizer(search_space)
    opt.search(objective_function,
               n_iter=1,
               initialize={},
               warm_start=[{
                   "x1": 0
               }])

    assert 0 in list(opt.results["x1"].values)
示例#7
0
def test_initialize_grid_0():
    search_space = {
        "x1": np.arange(-1, 2, 1),
    }
    initialize = {"grid": 1}

    opt = RandomSearchOptimizer(search_space, initialize=initialize)
    opt.search(objective_function, n_iter=1)

    assert abs(opt.best_score) < 0.001
def test_function():
    def objective_function(para):
        score = -para["x1"] * para["x1"]
        return score

    search_space = {
        "x1": np.arange(-100, 101, 1),
    }

    opt = RandomSearchOptimizer(search_space)
    opt.search(objective_function, n_iter=30)
def test_obj_func_return_dictionary_0():
    def objective_function(para):
        score = -para["x1"] * para["x1"]
        return score, {"_x1_": para["x1"]}

    search_space = {
        "x1": np.arange(-100, 101, 1),
    }

    opt = RandomSearchOptimizer(search_space)
    opt.search(objective_function, n_iter=30)

    assert "_x1_" in list(opt.results.columns)
示例#10
0
def test_initialize_warm_start_0():
    init = {
        "x1": 0,
    }

    initialize = {"warm_start": [init]}

    opt = RandomSearchOptimizer(search_space, initialize=initialize)
    opt.search(objective_function, n_iter=1)

    # print("\nself.results \n", opt.results)

    assert abs(opt.best_score) < 0.001
def test_memory_timeSave_0():
    data = load_breast_cancer()
    X, y = data.data, data.target

    def objective_function(para):
        dtc = DecisionTreeClassifier(
            min_samples_split=para["min_samples_split"])
        scores = cross_val_score(dtc, X, y, cv=5)

        return scores.mean()

    search_space = {
        "min_samples_split": np.arange(2, 20),
    }

    c_time1 = time.time()
    opt = RandomSearchOptimizer(search_space)
    opt.search(objective_function, n_iter=100)
    diff_time1 = time.time() - c_time1

    c_time2 = time.time()
    opt = RandomSearchOptimizer(search_space)
    opt.search(objective_function, n_iter=100, memory=False)
    diff_time2 = time.time() - c_time2

    assert diff_time1 < diff_time2 * 0.8
示例#12
0
def test_initialize_warm_start_2():
    search_space = {
        "x1": np.arange(-10, 10, 1),
    }
    init = {
        "x1": -10,
    }

    initialize = {"warm_start": [init], "random": 0, "vertices": 0, "grid": 0}

    opt = RandomSearchOptimizer(search_space, initialize=initialize)
    opt.search(objective_function, n_iter=1)

    assert opt.best_para == init
def test_memory_warm_start():
    data = load_breast_cancer()
    X, y = data.data, data.target

    def objective_function(para):
        dtc = DecisionTreeClassifier(
            max_depth=para["max_depth"],
            min_samples_split=para["min_samples_split"],
        )
        scores = cross_val_score(dtc, X, y, cv=5)

        return scores.mean()

    search_space = {
        "max_depth": np.arange(1, 10),
        "min_samples_split": np.arange(2, 20),
    }

    c_time1 = time.time()
    opt0 = RandomSearchOptimizer(search_space)
    opt0.search(objective_function, n_iter=300)
    diff_time1 = time.time() - c_time1

    c_time2 = time.time()
    opt1 = RandomSearchOptimizer(search_space)
    opt1.search(objective_function, n_iter=300, memory_warm_start=opt0.results)
    diff_time2 = time.time() - c_time2

    print("\n opt0.results \n", opt0.results)

    assert diff_time2 < diff_time1 * 0.5
def test_memory_warm_start_manual():
    data = load_breast_cancer()
    X, y = data.data, data.target

    def objective_function(para):
        dtc = GradientBoostingClassifier(n_estimators=para["n_estimators"], )
        scores = cross_val_score(dtc, X, y, cv=5)

        return scores.mean()

    search_space = {
        "n_estimators": np.arange(500, 502),
    }

    c_time_1 = time.time()
    opt = RandomSearchOptimizer(search_space)
    opt.search(objective_function, n_iter=1)
    diff_time_1 = time.time() - c_time_1

    memory_warm_start = pd.DataFrame([[500, 0.9], [501, 0.91]],
                                     columns=["n_estimators", "score"])

    c_time = time.time()
    opt = RandomSearchOptimizer(search_space)
    opt.search(objective_function,
               n_iter=10,
               memory_warm_start=memory_warm_start)
    diff_time = time.time() - c_time

    assert diff_time_1 > diff_time * 0.3
def test_no_random_state_0():
    opt0 = RandomSearchOptimizer(search_space, initialize={"random": 1})
    opt0.search(objective_function, n_iter=100)

    opt1 = RandomSearchOptimizer(search_space, initialize={"random": 1})
    opt1.search(objective_function, n_iter=100)

    assert abs(opt0.best_score - opt1.best_score) > err
示例#16
0
def test_initialize_warm_start_0():
    init = {
        "x1": 0,
    }

    initialize = {"warm_start": [init]}

    opt = RandomSearchOptimizer(search_space)
    opt.search(
        objective_function,
        n_iter=1,
        initialize=initialize,
    )

    assert abs(opt.best_score) < 0.001
示例#17
0
def test_attributes_results_6():
    def objective_function(para):
        score = -para["x1"] * para["x1"]
        return score

    search_space = {
        "x1": np.arange(0, 10, 1),
    }

    opt = RandomSearchOptimizer(search_space, initialize={"random": 1})
    opt.search(objective_function, n_iter=20, memory=False)

    x1_results = list(opt.results["x1"].values)

    print("\n x1_results \n", x1_results)

    assert len(set(x1_results)) < len(x1_results)
def test_sklearn():
    data = load_iris()
    X, y = data.data, data.target

    def model(para):
        knr = KNeighborsClassifier(n_neighbors=para["n_neighbors"])
        scores = cross_val_score(knr, X, y, cv=5)
        score = scores.mean()

        return score

    search_space = {
        "n_neighbors": np.arange(1, 51, 1),
    }

    opt = RandomSearchOptimizer(search_space)
    opt.search(model, n_iter=30)
示例#19
0
def test_initialize_warm_start_1():
    search_space = {
        "x1": np.arange(-10, 10, 1),
    }
    init = {
        "x1": -10,
    }

    initialize = {"warm_start": [init]}

    opt = RandomSearchOptimizer(search_space)
    opt.search(
        objective_function,
        n_iter=1,
        initialize=initialize,
    )

    assert opt.best_para == init
def test_memory_timeSave_1():
    data = load_breast_cancer()
    X, y = data.data, data.target

    def objective_function(para):
        dtc = DecisionTreeClassifier(max_depth=para["max_depth"])
        scores = cross_val_score(dtc, X, y, cv=5)

        return scores.mean()

    search_space = {
        "max_depth": np.arange(1, 101),
    }

    results = pd.DataFrame(np.arange(1, 101), columns=["max_depth"])
    results["score"] = 0

    c_time1 = time.time()
    opt = RandomSearchOptimizer(search_space)
    opt.search(objective_function, n_iter=300, memory_warm_start=results)
    diff_time1 = time.time() - c_time1

    assert diff_time1 < 1
        return np.inf


search_space_ = {"x1": np.arange(0, 20, 1)}


def objective_function(para):
    score = -para["x1"] * para["x1"]
    return score


search_space = {"x1": np.arange(-10, 11, 1)}
search_space2 = {"x1": np.arange(-10, 51, 1)}
search_space3 = {"x1": np.arange(-50, 11, 1)}

opt1 = RandomSearchOptimizer(search_space)
opt2 = RandomSearchOptimizer(search_space2)
opt3 = RandomSearchOptimizer(search_space3)
opt4 = RandomSearchOptimizer(search_space_)
opt5 = RandomSearchOptimizer(search_space_)
opt6 = RandomSearchOptimizer(search_space_)

opt1.search(objective_function, n_iter=30)
opt2.search(objective_function, n_iter=30)
opt3.search(objective_function, n_iter=30)
opt4.search(objective_function_nan, n_iter=30)
opt5.search(objective_function_m_inf, n_iter=30)
opt6.search(objective_function_inf, n_iter=30)

search_data1 = opt1.results
search_data2 = opt2.results
示例#22
0
def test_attributes_best_score_0():
    opt = RandomSearchOptimizer(search_space)
    opt.search(objective_function, n_iter=100)

    assert np.inf > opt.best_score > -np.inf
示例#23
0
def test_attributes_best_para_0():
    opt = RandomSearchOptimizer(search_space)
    opt.search(objective_function, n_iter=100)

    assert isinstance(opt.best_para, dict)
示例#24
0
def test_attributes_best_para_1():
    opt = RandomSearchOptimizer(search_space)
    opt.search(objective_function, n_iter=100)

    assert list(opt.best_para.keys()) == list(search_space.keys())
示例#25
0
def test_attributes_iter_times_0():
    opt = RandomSearchOptimizer(search_space)
    opt.search(objective_function, n_iter=100)

    assert isinstance(opt.iter_times, list)
def test_attributes_results_3():
    opt = RandomSearchOptimizer(search_space)
    opt.search(objective_function, n_iter=100)

    assert "score" in list(opt.results.columns)
def test_attributes_results_1():
    opt = RandomSearchOptimizer(search_space)
    opt.search(objective_function, n_iter=100)

    assert set(search_space.keys()) < set(opt.results.columns)
def test_attributes_results_0():
    opt = RandomSearchOptimizer(search_space)
    opt.search(objective_function, n_iter=100)

    assert isinstance(opt.results, pd.DataFrame)
示例#29
0
import numpy as np
from gradient_free_optimizers import RandomSearchOptimizer


def ackley_function(pos_new):
    x = pos_new["x1"]
    y = pos_new["x2"]

    a1 = -20 * np.exp(-0.2 * np.sqrt(0.5 * (x * x + y * y)))
    a2 = -np.exp(0.5 * (np.cos(2 * np.pi * x) + np.cos(2 * np.pi * y)))
    score = a1 + a2 + 20
    return -score


search_space = {
    "x1": np.arange(-100, 101, 0.1),
    "x2": np.arange(-100, 101, 0.1),
}

opt = RandomSearchOptimizer(search_space)
opt.search(ackley_function, n_iter=30000)
def test_verbosity_5():
    opt = RandomSearchOptimizer(search_space)
    opt.search(objective_function, n_iter=100, verbosity=[])