14
14
import sys
15
15
from sklearn .metrics import confusion_matrix
16
16
17
- FEATURE = 'size_IAT' # use burst features or size_IAT ('size_IAT', 'burst' or 'both')
18
- METHOD = 'RF ' # options: 'NB' : Naive Bayes, 'RF' : random forest, 'MLP' : , 'LR': logistic regression
17
+ # FEATURE = 'size_IAT' # use burst features or size_IAT ('size_IAT', 'burst' or 'both')
18
+ # METHOD = 'LR ' # options: 'NB' : Naive Bayes, 'RF' : random forest, 'MLP' : , 'LR': logistic regression
19
19
TEST_SIZE = 0.20
20
20
21
21
@@ -26,13 +26,16 @@ def log(s):
26
26
27
27
if __name__ == "__main__" :
28
28
mode = sys .argv [1 ]
29
+ FEATURE = sys .argv [2 ] # use burst features or size_IAT ('size_IAT', 'burst' or 'both')
30
+ METHOD = sys .argv [3 ] # options: 'NB' : Naive Bayes, 'RF' : random forest, 'MLP' : , 'LR': logistic regression
29
31
all_traces = load_pickled_traces (mode )
30
- windowed_traces = window_all_traces (all_traces )
32
+ # windowed_traces = window_all_traces(all_traces)
31
33
32
- # Split test set
33
- labels = [x .label for x in windowed_traces ]
34
- X_train_val , X_test , y_train_val , y_test = train_test_split (windowed_traces ,labels , stratify = np .array (labels ), test_size = TEST_SIZE , random_state = 0 )
34
+ # Split test set but keep windows from different traces seperated from eachother
35
+ labels = [x .label for x in all_traces ]
36
+ X_train_val , X_test , y_train_val , y_test = train_test_split (all_traces ,labels , stratify = np .array (labels ), test_size = TEST_SIZE , random_state = 0 )
35
37
38
+ X_train_val = window_all_traces (X_train_val )
36
39
37
40
if METHOD == 'NB' :
38
41
clf = MultinomialNB ()
@@ -53,8 +56,8 @@ def log(s):
53
56
for train , val in kf .split (X_train_val ):
54
57
log ('Started testing hyperparameters for fold ' + str (fold + 1 )+ '.' )
55
58
# Seperate train list from val list
56
- train_list = [windowed_traces [i ] for i in train ]
57
- val_list = [windowed_traces [i ] for i in val ]
59
+ train_list = [X_train_val [i ] for i in train ]
60
+ val_list = [X_train_val [i ] for i in val ]
58
61
59
62
if FEATURE == 'size_IAT' :
60
63
feature_matrix , classes , train_range = build_feature_matrix_size_IAT (train_list )
@@ -63,7 +66,7 @@ def log(s):
63
66
feature_matrix , classes , train_range = build_feature_matrix_burst (train_list )
64
67
feature_matrix_val , classes_val , val_range = build_feature_matrix_burst (val_list , train_range )
65
68
elif FEATURE == 'both' :
66
- feature_matrix , classes , train_range = build_feature_matrix_both (X_train_val )
69
+ feature_matrix , classes , train_range = build_feature_matrix_both (train_list )
67
70
feature_matrix_val , classes_val , val_range = build_feature_matrix_both (val_list , train_range )
68
71
69
72
for par in list (parameters ):
0 commit comments