-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmodel_dispatcher.py
41 lines (37 loc) · 1.23 KB
/
model_dispatcher.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
import config
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from xgboost import XGBClassifier
from tensorflow import keras
from tensorflow.keras import layers
# DNN model
def dnn():
dnn = keras.Sequential([
layers.BatchNormalization(input_shape = config.input_shape),
layers.Dense(512, activation = 'relu'),
layers.BatchNormalization(),
layers.Dropout(0.3),
layers.Dense(256, activation = 'relu'),
layers.BatchNormalization(),
layers.Dropout(0.2),
layers.Dense(256, activation = 'relu'),
layers.Dropout(0.2),
layers.Dense(1, activation = 'sigmoid')
])
dnn.compile(
optimizer = 'adam',
loss = 'binary_crossentropy',
metrics = ['binary_accuracy']
)
return dnn
# early_stopping = keras.callbacks.EarlyStopping(
# patience = config.patience,
# min_delta = config.min_delta,
# restore_best_weights = True,
# )
models = {
'dnn' : dnn(),
'logistic_regression' : LogisticRegression(C = 1.2),
'xgboost': XGBClassifier(eta = 0.35, max_depth = 12),
'random_forest' : RandomForestClassifier(n_estimators = 120)
}