The paper is accepted by ECML-PKDD 2021.
Three public network intrusion datasets "KDD99", "NSLKDD", "UNSWNB15" and one synthetic dataset
Linux or macOS, CPU, Python 3, keras, numpy, pandas, scikit-learn.
git clone https://github.com/junzhuang-code/NEGMGAN.git
cd NEGMGAN/negmgan
For pip users, please type the command: pip install -r requirements.txt
For Conda users, you may create a new Conda environment using: conda env create -f environment.yml
- gen_Data.py: Generate qualified dataset from raw data
- preproc.py: Preprocessing the given datasets
- utils.py: Utils modules
- model_GMGAN.py: GM-GAN Models
- model_Imeans.py: I-means Model
- ablation_ExtractUCs.py: Ablation study -- Implement GM-GAN to extract UCs on streaming data.
- ablation_DetectUCs.py: Ablation study -- Implement I-means algorithm to detect the number of new emerging classes on streaming data.
- main.py: Implement NE-GM-GAN on one streaming batch data.
-
Generate datasets
python [script_name] -DATA_NAME -DATA_DIR
e.g., python gen_Data.py KDD99 ../data/ -
Ablation study
- Extract UCs: python ablation_ExtractUCs.py KDD99 1000
- Detect UCs: python ablation_DetectUCs.py Syn 2 10 3 200
- Main function
python [script_name] -DATA_NAME -NUM_EPOCHS -Z -WS
e.g., python main.py Syn 1500 3 200