Commit bdfec245abd22d3a4fbed63293e529acc9ddb012
1 parent
4d6b688b
intégration du réseau de neurones début
Showing
2 changed files
with
48 additions
and
1 deletions
Show diff stats
python/ANN.py
@@ -5,6 +5,7 @@ Réseau de neurones | @@ -5,6 +5,7 @@ Réseau de neurones | ||
5 | P32 : Apprentissage DoS | 5 | P32 : Apprentissage DoS |
6 | PFE 2018 - IMA5SC Polytech Lille | 6 | PFE 2018 - IMA5SC Polytech Lille |
7 | """ | 7 | """ |
8 | +#Programme générique. N'oubliez pas de changer les PATHS | ||
8 | ############################################################################### | 9 | ############################################################################### |
9 | #LIBRAIRIES UTILES | 10 | #LIBRAIRIES UTILES |
10 | ############################################################################### | 11 | ############################################################################### |
@@ -16,7 +17,6 @@ from sklearn.preprocessing import StandardScaler | @@ -16,7 +17,6 @@ from sklearn.preprocessing import StandardScaler | ||
16 | from sklearn.metrics import confusion_matrix | 17 | from sklearn.metrics import confusion_matrix |
17 | # Réseau de neurones | 18 | # Réseau de neurones |
18 | from keras.models import Sequential | 19 | from keras.models import Sequential |
19 | -from keras.models import model_from_json | ||
20 | from keras.layers import Dense | 20 | from keras.layers import Dense |
21 | ############################################################################### | 21 | ############################################################################### |
22 | 22 | ||
@@ -102,4 +102,15 @@ good_prediction = cm[0, 0] + cm[1, 1]; | @@ -102,4 +102,15 @@ good_prediction = cm[0, 0] + cm[1, 1]; | ||
102 | #dire qu'une attaque est un trafic normal | 102 | #dire qu'une attaque est un trafic normal |
103 | bad_prediction = cm[1, 0] + cm[0, 1]; | 103 | bad_prediction = cm[1, 0] + cm[0, 1]; |
104 | taux_succes = good_prediction * 100 / (good_prediction + bad_prediction); | 104 | taux_succes = good_prediction * 100 / (good_prediction + bad_prediction); |
105 | +########################################################################################## | ||
106 | + | ||
107 | +########################################################################################## | ||
108 | +#SAUVEGARDE DU TRAINING SET | ||
109 | +########################################################################################## | ||
110 | +#Le modèle est mis au format JSON | ||
111 | +classifier_json = classifier.to_json(); | ||
112 | +with open('C:/Users/Utilisateur/PFE/python/Training/training.json',"w") as json_file : | ||
113 | + json_file.write(classifier_json); | ||
114 | +#Les poids sont mis en HDF5 | ||
115 | +classifier.save_weights("C:/Users/Utilisateur/PFE/python/datasets/training.h5"); | ||
105 | ########################################################################################## | 116 | ########################################################################################## |
106 | \ No newline at end of file | 117 | \ No newline at end of file |
python/main.py
@@ -10,8 +10,41 @@ Main - prédictions, affichage, vérification du trafic | @@ -10,8 +10,41 @@ Main - prédictions, affichage, vérification du trafic | ||
10 | ############################################################################### | 10 | ############################################################################### |
11 | import tkinter as tkr; | 11 | import tkinter as tkr; |
12 | import time; | 12 | import time; |
13 | +from keras.models import model_from_json | ||
14 | +from keras.models import Sequential | ||
15 | +import numpy as np | ||
13 | ############################################################################### | 16 | ############################################################################### |
14 | 17 | ||
18 | +########################################################################################## | ||
19 | +#LOAD DU TRAINING SET | ||
20 | +########################################################################################## | ||
21 | +json_file=open('C:/Users/Utilisateur/PFE/python/Training/training.json','r'); | ||
22 | +loaded_model_json=json_file.read(); | ||
23 | +json_file.close(); | ||
24 | +loaded_model=model_from_json(loaded_model_json); | ||
25 | +loaded_model.load_weights('C:/Users/Utilisateur/PFE/python/Training/training.h5'); | ||
26 | +########################################################################################## | ||
27 | + | ||
28 | +########################################################################################## | ||
29 | +#REALISER DES PREDICTIONS | ||
30 | +########################################################################################## | ||
31 | +#PING en ms | ||
32 | +ping_mesured = 1000; | ||
33 | +#Delta _RSSI entre deux trames en dB (dBm - dBm -> dB) | ||
34 | +rssi_mesured = 8; | ||
35 | +classifier = Sequential(); | ||
36 | +dataset_to_pred = [ping_mesured, rssi_mesured]; | ||
37 | +predictions = classifier.predict(dataset_to_pred); | ||
38 | + | ||
39 | +predictions_named = []; | ||
40 | + | ||
41 | +for x in range(0, 1): | ||
42 | + if predictions[x] > 0.5: | ||
43 | + predictions_named.append("Normal") | ||
44 | + else: | ||
45 | + predictions_named.append("Attaque") | ||
46 | +########################################################################################## | ||
47 | + | ||
15 | ############################################################################### | 48 | ############################################################################### |
16 | #FONCTIONS UTILES | 49 | #FONCTIONS UTILES |
17 | ############################################################################### | 50 | ############################################################################### |
@@ -54,6 +87,9 @@ def Refresher(): | @@ -54,6 +87,9 @@ def Refresher(): | ||
54 | text.configure(text=time.asctime()); | 87 | text.configure(text=time.asctime()); |
55 | root.after(1000, Refresher);#Refresh toutes les secondes | 88 | root.after(1000, Refresher);#Refresh toutes les secondes |
56 | 89 | ||
90 | +############################################################################### | ||
91 | +#AFFICHAGE | ||
92 | +############################################################################### | ||
57 | root=tkr.Tk(); | 93 | root=tkr.Tk(); |
58 | Draw(); | 94 | Draw(); |
59 | Refresher(); | 95 | Refresher(); |