Commit bdfec245abd22d3a4fbed63293e529acc9ddb012

Authored by rcavalie
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
@@ -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
@@ -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();