Passed
Push — master ( eeab31...6c8f7d )
by Simon
02:03
created

tests.test_performance.test_TabuOptimizer()   A

Complexity

Conditions 1

Size

Total Lines 24
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 20
dl 0
loc 24
rs 9.4
c 0
b 0
f 0
cc 1
nop 0
1
# Author: Simon Blanke
2
# Email: [email protected]
3
# License: MIT License
4
5
from sklearn.datasets import load_iris
6
from sklearn.model_selection import cross_val_score
7
from sklearn.tree import DecisionTreeClassifier
8
from hyperactive import Hyperactive
9
10
data = load_iris()
11
X = data.data
12
y = data.target
13
14
random_state = 1
15
n_jobs = 2
16
17
18 View Code Duplication
def model(para, X_train, y_train):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
19
    model = DecisionTreeClassifier(
20
        criterion=para["criterion"],
21
        max_depth=para["max_depth"],
22
        min_samples_split=para["min_samples_split"],
23
        min_samples_leaf=para["min_samples_leaf"],
24
    )
25
    scores = cross_val_score(model, X_train, y_train, cv=2)
26
27
    return scores.mean(), model
28
29
30
search_config = {
31
    model: {
32
        "criterion": ["gini", "entropy"],
33
        "max_depth": range(1, 11),
34
        "min_samples_split": range(2, 11),
35
        "min_samples_leaf": range(1, 11),
36
    }
37
}
38
39
warm_start = {model: {"max_depth": [1]}}
40
41
42
def test_TabuOptimizer():
43
    opt0 = Hyperactive(
44
        search_config,
45
        optimizer="TabuSearch",
46
        n_iter=1,
47
        random_state=random_state,
48
        verbosity=0,
49
        n_jobs=1,
50
        warm_start=warm_start,
51
    )
52
    opt0.fit(X, y)
53
54
    opt1 = Hyperactive(
55
        search_config,
56
        optimizer="TabuSearch",
57
        n_iter=30,
58
        random_state=random_state,
59
        verbosity=0,
60
        n_jobs=n_jobs,
61
        warm_start=warm_start,
62
    )
63
    opt1.fit(X, y)
64
65
    assert opt0._optimizer_.score_best < opt1._optimizer_.score_best
66