| --- |
| language: |
| - en |
| license: apache-2.0 |
| task_categories: |
| - tabular-classification |
| tags: |
| - anomaly-detection |
| - industrial-control-systems |
| - synthetic-data |
| - scikit-learn |
| --- |
| |
| # Edge Sentinel |
|
|
| Edge Sentinel is a classical machine-learning benchmark for industrial telemetry. |
| It detects sensor drift, actuator mismatch, vibration faults, pressure spikes, and |
| network floods across simulated devices. |
|
|
| The evaluation split holds out entire devices, not random rows, reducing leakage from |
| device-specific operating patterns. |
|
|
| ## Verified results |
|
|
| The final threshold and model weighting were selected on devices 8 and 9. Devices 10 |
| and 11 were used once for the held-out test: |
|
|
| | Model | ROC-AUC | Average precision | F1 | Recall | False-positive rate | |
| | --- | ---: | ---: | ---: | ---: | ---: | |
| | Isolation Forest | 0.9259 | 0.6954 | 0.6889 | 0.7000 | 0.0444 | |
| | Gradient boosting | **0.9775** | **0.9597** | **0.9308** | **0.9288** | **0.0090** | |
|
|
| The validation search assigned the supervised model a weight of `1.0`, so the final |
| artifact is not described as an ensemble improvement. The Isolation Forest remains |
| useful as a label-free baseline. |
|
|
| The test confusion matrix was `[[8741, 79], [84, 1096]]` across 10,000 observations. |
|
|
| ## Dataset |
|
|
| - 60,000 simulated timestamped observations across 12 devices; |
| - 26 raw and engineered numeric features; |
| - five anomaly families: drift, mismatch, vibration fault, pressure spike, and |
| network flood; |
| - train devices 0-7, validation devices 8-9, test devices 10-11. |
|
|
| The generated Parquet files are directly loadable with Hugging Face Datasets. |
|
|
| ## Reproduce |
|
|
| ```powershell |
| uv run python projects/edge-sentinel-ml/generate_data.py |
| uv run python projects/edge-sentinel-ml/train.py |
| ``` |
|
|
| The fitted artifact and complete metric report are written to |
| `artifacts/edge-sentinel-ensemble/`. |
|
|