ML experiments with IoT23 dataset [1]
No | Name | Version | Description |
---|---|---|---|
1 | Python | 3.8.8 | Programming Language |
2 | scikit-learn | 0.24.1 | Tools for Machine Learning in Python |
3 | NymPy | 1.19.5 | Tools for Scientific Computing in Python |
4 | pandas | 1.2.2 | Tools for Data Analysis & Data Manipulation in Python |
5 | matplotlib | 3.3.4 | Visualization with Python |
6 | seaborn | 0.11.1 | Statistical data visualization |
7 | psutil | 5.8.0 | Cross-platform library for retrieving information on running processes and system utilization (CPU, memory, disks, network, sensors) in Python |
8 | scikit-plot | 0.3.7 | Library for visualizations |
9 | pickle | - | Python object serialization for model serialization |
- Download & Extract IoT23
- Clone this repo
- Install missing libraries
- Open config.py and configure required directories
- iot23_scenarios_dir should point to the home folder, where iot23 scenarios are located
- iot23_attacks_dir will be used to store files for each attack type from the scenarios files
- iot23_experiments_dir will be used to store experiment files, including trained models and results
- Run configuration check by running run_configuration_check.py
Make sure the output message says that you may continue with the next step. If not, then check your configuration and fix the errors.
- Run data extraction by running run_data_extraction_from_scenarios.py
Even though, there are multiple scenarios, files still contain mixed attack and benign traffic. For this reason we are going to extract the entries of a similar type into separate files. The output files will be stored in iot23_attacks_dir.
- Run demo by running run_demo.py
[1] “Stratosphere Laboratory. A labeled dataset with malicious and benign IoT network traffic. January 22th. Agustin Parmisano, Sebastian Garcia, Maria Jose Erquiaga. Online: https://www.stratosphereips.org/datasets-iot23