1
|
|
|
# Author: Simon Blanke |
2
|
|
|
# Email: [email protected] |
3
|
|
|
# License: MIT License |
4
|
|
|
|
5
|
|
|
import pandas as pd |
6
|
|
|
from sklearn.datasets import load_iris |
7
|
|
|
from sklearn.tree import DecisionTreeClassifier |
8
|
|
|
from sklearn.model_selection import cross_val_score |
9
|
|
|
|
10
|
|
|
data = load_iris() |
11
|
|
|
X_np = data.data |
12
|
|
|
y_np = data.target |
13
|
|
|
|
14
|
|
|
iris_X_train_columns = ["x1", "x2", "x3", "x4"] |
15
|
|
|
X_pd = pd.DataFrame(X_np, columns=iris_X_train_columns) |
16
|
|
|
y_pd = pd.DataFrame(y_np, columns=["y1"]) |
17
|
|
|
|
18
|
|
|
|
19
|
|
View Code Duplication |
def model(para, X_train, y_train): |
|
|
|
|
20
|
|
|
model = DecisionTreeClassifier( |
21
|
|
|
criterion=para["criterion"], |
22
|
|
|
max_depth=para["max_depth"], |
23
|
|
|
min_samples_split=para["min_samples_split"], |
24
|
|
|
min_samples_leaf=para["min_samples_leaf"], |
25
|
|
|
) |
26
|
|
|
scores = cross_val_score(model, X_train, y_train, cv=3) |
27
|
|
|
|
28
|
|
|
return scores.mean() |
29
|
|
|
|
30
|
|
|
|
31
|
|
|
search_config = { |
32
|
|
|
model: { |
33
|
|
|
"criterion": ["gini", "entropy"], |
34
|
|
|
"max_depth": range(1, 21), |
35
|
|
|
"min_samples_split": range(2, 21), |
36
|
|
|
"min_samples_leaf": range(1, 21), |
37
|
|
|
} |
38
|
|
|
} |
39
|
|
|
|
40
|
|
|
""" |
41
|
|
|
def test_data(): |
42
|
|
|
from hyperactive import Hyperactive |
43
|
|
|
|
44
|
|
|
opt0 = Hyperactive(search_config) |
45
|
|
|
opt0.search(X_np, y_np) |
46
|
|
|
|
47
|
|
|
opt1 = Hyperactive(search_config) |
48
|
|
|
opt1.search(X_pd, y_pd) |
49
|
|
|
""" |
50
|
|
|
|