Completed
Push — master ( f67568...5e5af8 )
by Simon
01:28
created

tests.optimizer_parameter.DecisionTree   A

Complexity

Total Complexity 9

Size/Duplication

Total Lines 64
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 41
dl 0
loc 64
rs 10
c 0
b 0
f 0
wmc 9

5 Functions

Rating   Name   Duplication   Size   Complexity  
A test_start_up_evals() 0 7 2
A test_gpr() 0 6 1
A test_max_sample_size() 0 7 2
A sphere_function() 0 8 3
A test_warm_start_smbo() 0 6 1
1
# Author: Simon Blanke
2
# Email: [email protected]
3
# License: MIT License
4
5
import numpy as np
6
7
from hyperactive import Hyperactive
8
9
X, y = np.array([0]), np.array([0])
10
memory = False
11
n_iter = 25
12
13
14
def sphere_function(para, X_train, y_train):
15
    loss = []
16
    for key in para.keys():
17
        if key == "iteration":
18
            continue
19
        loss.append(para[key] * para[key])
20
21
    return -np.array(loss).sum()
22
23
24
search_config = {
25
    sphere_function: {"x1": np.arange(-3, 3, 0.1), "x2": np.arange(-3, 3, 0.1)}
26
}
27
28
29
def test_start_up_evals():
30
    for start_up_evals in [1, 100]:
31
        opt = Hyperactive(X, y, memory=memory)
32
        opt.search(
33
            search_config,
34
            n_iter=n_iter,
35
            optimizer={"DecisionTree": {"start_up_evals": start_up_evals}},
36
        )
37
38
39
def test_warm_start_smbo():
40
    opt = Hyperactive(X, y, memory="long")
41
    opt.search(
42
        search_config,
43
        n_iter=n_iter,
44
        optimizer={"DecisionTree": {"warm_start_smbo": True}},
45
    )
46
47
48
def test_max_sample_size():
49
    for max_sample_size in [10, 100, 10000, 10000000000]:
50
        opt = Hyperactive(X, y, memory=memory)
51
        opt.search(
52
            search_config,
53
            n_iter=n_iter,
54
            optimizer={"DecisionTree": {"max_sample_size": True}},
55
        )
56
57
58
def test_gpr():
59
    opt = Hyperactive(X, y, memory=memory)
60
    opt.search(
61
        search_config,
62
        n_iter=n_iter,
63
        optimizer={"DecisionTree": {"tree_regressor": "random_forest"}},
64
    )
65