The repository contains code refered to the work:
Giuseppina Andresini, Annalisa Appice, Nicola Di Mauro, Corrado Loglisci, Donato Malerba
Multi-Channel Deep Feature Learning for Intrusion Detection
Please cite our work if you find it useful for your research and work.
@ARTICLE{9036935,
author={G. {Andresini} and A. {Appice} and N. D. {Mauro} and C. {Loglisci} and D. {Malerba}},
journal={IEEE Access},
title={Multi-Channel Deep Feature Learning for Intrusion Detection},
year={2020},
volume={8},
number={},
pages={53346-53359},}
The code relies on the following python3.6+ libs.
Packages need are:
The datasets used for experiments are accessible from DATASETS. Original dataset is transformed in a binary classification: "attack, normal" (_oneCls files). The repository contains the orginal dataset (folder: "original") and the dataset after the preprocessing phase (folder: "numeric")
Preprocessing phase is done mapping categorical feature and performing the Min Max scaler.
Repository contains scripts of all experiments included in the paper:
- main.py : script to run MINDFUL
- AblationExperiments.py : script to run ablation experiments (section C.2):
- Exp_Filters.py script to run experiments about filters (section C.3)
- Imbalanced.py script to run experiments about imbalanced dataset (section C.4)
Code contains models (autoencoder and classification) and datasets used for experiments in the work.
To replicate experiments reported in the work, you can use models and datasets stored in homonym folders. Global variables are stored in MINDFUL.conf file
N_CLASSES = 2
PREPROCESSING1 = 0 #if set to 1 code execute preprocessing phase on original date
LOAD_AUTOENCODER_ADV = 1 #if 1 the autoencoder for attacks items is loaded from models folder
LOAD_AUTOENCODER_NORMAL = 1 #if 1 the autoencoder for normal items is loaded from models folder
LOAD_CNN = 1 #if 1 the classifier is loaded from models folder
VALIDATION_SPLIT #the percentage of validation set used to train models