Skip to content

Commit 7fd0b25

Browse files
authored
Update meta_opt_extensive_example.py
1 parent f8ebb5e commit 7fd0b25

1 file changed

Lines changed: 32 additions & 30 deletions

File tree

examples/meta_opt_extensive_example.py

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,24 @@ def data_aug(X, y, sample_multi=5, feature_multi=5):
3131

3232
return X_list, y_list
3333

34+
def model(para, X, y):
35+
model = DecisionTreeClassifier(
36+
max_depth=para["max_depth"],
37+
min_samples_split=para["min_samples_split"],
38+
min_samples_leaf=para["min_samples_leaf"],
39+
)
40+
scores = cross_val_score(model, X, y, cv=3)
41+
42+
return scores.mean()
43+
44+
search_config_model = {
45+
model: {
46+
"max_depth": range(2, 50),
47+
"min_samples_split": range(2, 50),
48+
"min_samples_leaf": range(1, 50),
49+
}
50+
}
51+
3452

3553
def meta_opt(para, X_list, y_list):
3654
scores = []
@@ -39,46 +57,30 @@ def meta_opt(para, X_list, y_list):
3957
X_list, y_list = data_aug(X, y, sample_multi=3, feature_multi=3)
4058

4159
for X, y in zip(X_list, y_list):
42-
def model(para, X, y):
43-
model = DecisionTreeClassifier(
44-
max_depth=para["max_depth"],
45-
min_samples_split=para["min_samples_split"],
46-
min_samples_leaf=para["min_samples_leaf"],
60+
61+
for n_iter in [10, 25, 50, 100]:
62+
opt = Hyperactive(
63+
search_config_model,
64+
optimizer={
65+
"ParticleSwarm": {"inertia": para["inertia"], "cognitive_weight": para["cognitive_weight"], "social_weight": para["social_weight"]}
66+
},
67+
n_iter=n_iter,
68+
verbosity=None,
4769
)
48-
scores = cross_val_score(model, X, y, cv=3)
49-
50-
return scores.mean()
51-
52-
search_config = {
53-
model: {
54-
"max_depth": range(2, 50),
55-
"min_samples_split": range(2, 50),
56-
"min_samples_leaf": range(1, 50),
57-
}
58-
}
59-
60-
opt = Hyperactive(
61-
search_config,
62-
optimizer={
63-
"ParticleSwarm": {"inertia": para["inertia"], "cognitive_weight": para["cognitive_weight"], "social_weight": para["social_weight"]}
64-
},
65-
n_iter=30,
66-
verbosity=None,
67-
)
68-
opt.search(X, y)
69-
score = opt.score_best
70-
scores.append(score)
70+
opt.search(X, y)
71+
score = opt.score_best
72+
scores.append(score)
7173

7274
return np.array(scores).mean()
7375

7476

75-
search_config = {
77+
search_config_meta = {
7678
meta_opt: {
7779
"inertia": np.arange(0, 1, 0.01),
7880
"cognitive_weight": np.arange(0, 1, 0.01),
7981
"social_weight": np.arange(0, 1, 0.01),
8082
}
8183
}
8284

83-
opt = Hyperactive(search_config, optimizer="Bayesian", n_iter=30)
85+
opt = Hyperactive(search_config_meta, optimizer="Bayesian", n_iter=30)
8486
opt.search(X_list, y_list)

0 commit comments

Comments
 (0)