How tando26/ai-ids works
AI-IDS is a configurable binary network-intrusion detection experiment pipeline for CIC-IDS2017. Its principal workflow prepares traffic-flow data, trains models across imbalance and split strategies, then evaluates the saved models and produces comparison reports and plots. Training source confirms the feature-selection, preprocessing, resampling, model-building, and artifact-saving stages; README documents the broader preparation and evaluation workflow. Evaluation internals and several model implementations were not sampled, so their detailed call wiring is not inferred.
Main entry points: train.py Training orchestrator · evaluate.py Evaluation orchestration · prepare_data.py Prepare data CLI · config.yaml Experiment config
Components 21
Data preparation
- Prepare data CLI
scripts/prepare_data.py - Parquet loader
src/data/load_data.py - Data cleaning
src/data/clean_data.py - Data splitting
src/data/split_data.py - Saved splits
Model training
- Train experiments CLI
scripts/train_all.py - Training orchestrator
src/training/train.py - Feature selection
src/preprocessing/feature_selection.py - Feature preprocessing
src/preprocessing/build_preprocessor.py - Imbalance strategies
src/imbalance - Model registry
src/models/registry.py - Model implementations
src/models - Saved models and preprocessors
Evaluation and reports
- Evaluate CLI
scripts/evaluate_all.py - Evaluation orchestration
src/evaluation/evaluate.py - Classification metrics
src/evaluation/metrics.py - Evaluation plots
src/evaluation/plots.py - Metrics and plot reports
Experiment setup
- Experiment config
configs/config.yaml
Other components
- Engineer
- CIC-IDS2017 files
Connections 27
- Engineer → Prepare data CLI: runs preparation
- CIC-IDS2017 files → Parquet loader: reads parquet
- Prepare data CLI → Parquet loader: loads data
- Prepare data CLI → Data cleaning: cleans data
- Prepare data CLI → Data splitting: creates splits
- Parquet loader → Data cleaning: provides rows
- Data cleaning → Data splitting: provides cleaned rows
- Data splitting → Saved splits: writes splits
- Experiment config → Prepare data CLI: configures
- Engineer → Train experiments CLI: runs training
- Train experiments CLI → Training orchestrator: runs experiments
- Experiment config → Train experiments CLI: configures
- Training orchestrator → Saved splits: loads splits
- Training orchestrator → Feature selection: selects features
- Training orchestrator → Feature preprocessing: builds transforms
- Training orchestrator → Imbalance strategies: resamples training data
- Training orchestrator → Model registry: requests model
- Model registry → Model implementations: builds model
- Training orchestrator → Saved models and preprocessors: saves artifacts
- Engineer → Evaluate CLI: runs evaluation
- Evaluate CLI → Evaluation orchestration: evaluates experiments
- Experiment config → Evaluate CLI: configures
- Evaluation orchestration → Saved models and preprocessors: loads models
- Evaluation orchestration → Saved splits: loads test data
- Evaluation orchestration → Classification metrics: calculates metrics
- Evaluation orchestration → Evaluation plots: generates plots
- Evaluation orchestration → Metrics and plot reports: writes reports