An Anomaly Based Network Intrusion Detection System (A-NIDS) that uses Unsupervised Learning.
There are three python files in this repo:
- model.py
- data.py
- Autoencoder.py
All code is released under the Apache 2.0 licence listed in the root directory of the repository.
This file contains the model, that combines an Isolation Forest, Random Forest and Autoencoder Neural Networks. The file should run from the command line, as it prompts the user to enter the locations of any files and any constants such as random seeds etc. It contains a section on the KDD data, in which the data is processed and a random forest is fitted. The other parts do not require any specific formatted data.
This file contains the preprocessing of the data. This does not include the engineering of certain features such as count as this was done before so.
The most customised section, this file contains the PartialAutoencoder and EnsemblePartialAutoencoders classes that combines the autoencoder theory in the paper.