-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgenerate_model.py
More file actions
61 lines (47 loc) · 1.82 KB
/
generate_model.py
File metadata and controls
61 lines (47 loc) · 1.82 KB
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
import os
import timeit
import itertools
import numpy as np
import pandas as pd
import seaborn as sn
import glob2 as glob
from functools import partial
from datetime import datetime
import matplotlib.pyplot as plt
from time import gmtime, strftime
from tensorflow.keras import initializers
from tensorflow.keras.optimizers import RMSprop, Adam
from tensorflow.keras.models import Sequential, Model
from tensorflow.keras.layers import Input, Dense, Reshape, Activation, Dropout
from tensorflow.keras.layers import BatchNormalization
from tensorflow.keras.wrappers.scikit_learn import KerasClassifier
from tensorflow.keras.layers import ELU, LeakyReLU
import tensorflow
from sklearn.model_selection import train_test_split, GroupShuffleSplit
from sklearn.metrics import classification_report
from sklearn.model_selection import GridSearchCV
from sklearn.metrics import accuracy_score
from sklearn.metrics import roc_curve, auc
from sklearn.metrics import precision_recall_curve, auc
from sklearn.metrics import confusion_matrix
from sklearn.preprocessing import StandardScaler, MinMaxScaler
from sklearn.utils import resample
from sklearn.metrics import roc_auc_score
def generate_model(init, dropout_rate, momentum, n_input, n_layer):
model = Sequential()
# input layer
model.add(Dense(n_input, input_dim=n_input, kernel_initializer='he_uniform'))
model.add(BatchNormalization(momentum=momentum))
model.add(Activation('elu'))
model.add(Dropout(dropout_rate))
# hidden layer
for i in range(n_layer):
model.add(Dense(100))
model.add(BatchNormalization(momentum=momentum))
model.add(Activation('elu'))
model.add(Dropout(dropout_rate))
# output layer
model.add(Dense(3))
model.add(BatchNormalization(momentum=momentum))
model.add(Activation('softmax'))
return model