ARotting's picture
Publish Device-held-out industrial anomaly classifier
572c4ce verified
|
Raw
History Blame Contribute Delete
1.83 kB
---
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/`.