This project implements a complete preprocessing and deep learning pipeline for intrusion detection in Industrial Internet of Things (IIoT) environments using the Edge-IIoT dataset. The system combines feature engineering, imbalance handling, normalization, and a CNN-LSTM hybrid architecture for binary and multiclass attack classification.
.
├── preprocessing.ipynb # Data preprocessing pipeline
├── train.ipynb # CNN-LSTM training and evaluation
├── DNN-EdgeIIoT-dataset.csv
├── X_train.csv
├── X_val.csv
├── X_test.csv
├── y_train.csv
├── y_val.csv
├── y_test.csv
└── README.mdThe project uses the Edge-IIoT Dataset, which contains normal and malicious network traffic generated in Industrial IoT environments.
The dataset includes:
- Network traffic features
- Multiple attack categories
- Normal traffic samples
- Mixed numerical and categorical attributes
The notebook preprocessing.ipynb performs all preprocessing operations required before training.
The dataset is loaded using Pandas:
df = pd.read_csv('./../DNN-EdgeIIoT-dataset.csv')Categorical features are converted into numerical representations using:
LabelEncoder- Feature transformation methods
The project uses Mutual Information (MI) to identify the most relevant features.
Benefits:
- Reduces dimensionality
- Improves training speed
- Removes noisy features
The dataset imbalance is handled using:
SMOTE()This generates synthetic samples for minority classes.
Visualization is also included to compare:
- Original distribution
- Balanced distribution
Features are standardized using:
StandardScaler()This ensures:
- Mean = 0
- Standard deviation = 1
The data is divided into:
- Training set
- Validation set
- Test set
The notebook train.ipynb implements a hybrid CNN-LSTM deep learning model.
Two modes are supported:
- Binary Classification
- Multiclass Classification
Used for:
- Spatial feature extraction
- Learning local traffic patterns
Used for:
- Temporal dependency learning
- Sequential behavior analysis
Detects:
- Normal traffic
- Attack traffic
Classifies multiple attack categories individually.
The training pipeline includes:
- Data loading
- Feature scaling
- Label encoding
- Model compilation
- Training with validation monitoring
Loss functions:
- Binary Crossentropy
- Categorical Crossentropy
Optimizers:
- Adam Optimizer
Metrics:
- Accuracy
- Precision
- Recall
- F1-score
The project evaluates the trained model using:
- Classification Report
- Confusion Matrix
- Accuracy Curves
- Loss Curves
Visualization functions are included to monitor training history.
After training, the notebook saves:
cnn_lstm_final_model.h5Additional saved artifacts may include:
- Encoders
- Scalers
- Feature selection outputs
- Python
- Pandas
- NumPy
- Scikit-learn
- TensorFlow / Keras
- Matplotlib
- Seaborn
- Imbalanced-learn (SMOTE)
pip install pandas numpy scikit-learn tensorflow matplotlib seaborn imbalanced-learnOpen and execute:
preprocessing.ipynbThis generates the processed datasets.
Run:
train.ipynbThe notebook will:
- Train the CNN-LSTM model
- Evaluate performance
- Save the final model
This project can be applied in:
- Industrial IoT security
- Smart factories
- Network intrusion detection systems
- Cybersecurity research
- Edge AI security systems