/
test_xgboost.py
170 lines (131 loc) · 4.29 KB
/
test_xgboost.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
# Author: Simon Blanke
# Email: simon.blanke@yahoo.com
# License: MIT License
from sklearn.datasets import load_breast_cancer
data = load_breast_cancer()
X = data.data
y = data.target
search_config = {
"xgboost.XGBClassifier": {
"n_estimators": range(1, 20, 1),
"max_depth": range(1, 11),
"learning_rate": [1e-3, 1e-2, 1e-1, 0.5, 1.0],
"min_child_weight": range(1, 21),
}
}
def test_xgboost():
from hyperactive import RandomSearchOptimizer
opt = RandomSearchOptimizer(search_config, 1)
opt.fit(X, y)
opt.predict(X)
opt.score(X, y)
def test_xgboost_classification():
from hyperactive import RandomSearchOptimizer
ml_scores = [
"accuracy_score",
"balanced_accuracy_score",
"average_precision_score",
"brier_score_loss",
"f1_score",
"log_loss",
"precision_score",
"recall_score",
"jaccard_score",
"roc_auc_score",
]
for score in ml_scores:
opt = RandomSearchOptimizer(search_config, 1, metric=score)
assert opt._config_.metric == score
opt.fit(X, y)
assert opt._config_.metric == score
opt.predict(X)
assert opt._config_.metric == score
opt.score(X, y)
assert opt._config_.metric == score
def test_xgboost_regression():
from hyperactive import RandomSearchOptimizer
ml_losses = [
"explained_variance_score",
"max_error",
"mean_absolute_error",
"mean_squared_error",
"mean_squared_log_error",
"median_absolute_error",
"r2_score",
]
for loss in ml_losses:
opt = RandomSearchOptimizer(search_config, 1, metric=loss)
assert opt._config_.metric == loss
opt.fit(X, y)
assert opt._config_.metric == loss
opt.predict(X)
assert opt._config_.metric == loss
opt.score(X, y)
assert opt._config_.metric == loss
"""
def _test_xgboost_n_jobs():
from hyperactive import RandomSearchOptimizer
n_jobs_list = [1, 2, 3, 4]
for n_jobs in n_jobs_list:
opt = RandomSearchOptimizer(search_config, 1, n_jobs=n_jobs)
opt.fit(X, y)
opt.predict(X)
opt.score(X, y)
"""
def test_xgboost_n_iter():
from hyperactive import RandomSearchOptimizer
n_iter_list = [0, 1, 1, 10]
for n_iter in n_iter_list:
opt = RandomSearchOptimizer(search_config, n_iter)
opt.fit(X, y)
opt.predict(X)
opt.score(X, y)
def test_xgboost_cv():
from hyperactive import RandomSearchOptimizer
cv_list = [0.1, 0.5, 0.9, 2, 4]
for cv in cv_list:
opt = RandomSearchOptimizer(search_config, 1, cv=cv)
opt.fit(X, y)
opt.predict(X)
opt.score(X, y)
def test_xgboost_verbosity():
from hyperactive import RandomSearchOptimizer
verbosity_list = [0, 1, 2]
for verbosity in verbosity_list:
opt = RandomSearchOptimizer(search_config, 1, verbosity=verbosity)
opt.fit(X, y)
opt.predict(X)
opt.score(X, y)
def test_xgboost_random_state():
from hyperactive import RandomSearchOptimizer
random_state_list = [None, 0, 1, 2]
for random_state in random_state_list:
opt = RandomSearchOptimizer(search_config, 1, random_state=random_state)
opt.fit(X, y)
opt.predict(X)
opt.score(X, y)
def test_xgboost_warm_start():
from hyperactive import RandomSearchOptimizer
warm_start = {"sklearn.tree.DecisionTreeClassifier": {"max_depth": [1]}}
warm_start_list = [None, warm_start]
for warm_start in warm_start_list:
opt = RandomSearchOptimizer(search_config, 1, warm_start=warm_start)
opt.fit(X, y)
opt.predict(X)
opt.score(X, y)
def test_xgboost_memory():
from hyperactive import RandomSearchOptimizer
memory_list = [False, True]
for memory in memory_list:
opt = RandomSearchOptimizer(search_config, 1, memory=memory)
opt.fit(X, y)
opt.predict(X)
opt.score(X, y)
def test_xgboost_scatter_init():
from hyperactive import RandomSearchOptimizer
scatter_init_list = [False, 2, 3, 4]
for scatter_init in scatter_init_list:
opt = RandomSearchOptimizer(search_config, 1, scatter_init=scatter_init)
opt.fit(X, y)
opt.predict(X)
opt.score(X, y)