alirezaaminzadeh's picture
Link Dataset, Model, Space, and Collection; add eval model-index
136d039 verified
|
Raw
History Blame Contribute Delete
3.46 kB
---
license: mit
library_name: sklearn
pipeline_tag: tabular-classification
datasets:
- alirezaaminzadeh/refineryguard-tep-features
tags:
- oil-gas
- petrochemical
- refinery
- process-anomaly-detection
- tennessee-eastman
- lstm-autoencoder
- isolation-forest
- time-series
- isa-18.2
- aria-ai
model-index:
- name: refineryguard-lstm-ae
results:
- task:
type: tabular-classification
name: TEP fault detection (held-out Braatz test, 21 faults)
dataset:
name: Tennessee Eastman Process (Braatz files)
type: alirezaaminzadeh/refineryguard-tep-features
metrics:
- type: pca_detection_rate
value: 1.0
- type: pca_mean_ttd_hours
value: 1.51
- type: pca_mean_far_pre_fault
value: 0.025
- type: mean_alarm_reduction_rate
value: 0.93
---
# RefineryGuard LSTM-AE
CPU-friendly process-anomaly bundle for the Tennessee Eastman Process:
- `lstm_ae.onnx` — LSTM autoencoder (reconstruction error = anomaly score)
- `isolation_forest.joblib` — window mean/std baseline
- `pca.joblib` — 90% variance reconstruction baseline (**operational primary detector**)
- `fault_classifier.joblib` — 22-class TEP fault id (HistGradientBoosting)
- `scaler.joblib` / `normal_stats.joblib` / `thresholds.joblib`
- `eval_results.json` — held-out Braatz test protocol
## Data honesty
Trained only on **TEP simulation** (Downs & Vogel 1993; Braatz evaluation files). Not a live refinery
model. Thresholds are 99th percentiles of **normal** reconstruction / IF scores on IDV(0) train windows.
Recalibrate on each plant before any operational use.
Operational alerts use **PCA reconstruction** (lowest usable false-alarm rate among LSTM / PCA /
Isolation Forest). LSTM-AE is kept for scoring and per-tag attribution; it is **not** the primary
alarm because its pre-fault FAR on this protocol is high (~0.58).
## Held-out protocol (fault after 8 h)
| Detector | Detection (21 faults) | Mean TTD (h) | Mean FAR (pre-fault / IDV0) |
|---|---:|---:|---:|
| PCA reconstruction (primary) | 100% | 1.51 | 0.025 |
| Isolation Forest | 100% | 1.02 | 0.126 |
| LSTM-AE | 100% | 0.06 | 0.585 |
| Univariate 3σ baseline | 100% | 1.07 | 0.072 |
Mean alarm reduction (PCA incidents vs raw 3σ tag alarms): **93%**. IDV(3), IDV(9), IDV(15) are
weakly observable in the TEP literature.
## How to score a window
```python
import joblib, numpy as np, onnxruntime as ort
scaler = joblib.load("scaler.joblib")
thr = joblib.load("thresholds.joblib")
sess = ort.InferenceSession("lstm_ae.onnx")
# x: (T, 52) raw tags in xmeas_1..xmv_11 order, T>=20
from numpy.lib.stride_tricks import sliding_window_view
scaled = scaler.transform(x)
windows = sliding_window_view(scaled, (20, 52))[:, 0]
recon = sess.run(None, {"window": windows.astype("float32")})[0]
score = ((windows - recon) ** 2).mean(axis=(1, 2))
alert = score > thr["lstm"]
```
## Related
- Dataset: [alirezaaminzadeh/refineryguard-tep-features](https://huggingface.co/datasets/alirezaaminzadeh/refineryguard-tep-features)
- Space: [alirezaaminzadeh/refineryguard-process-anomaly](https://huggingface.co/spaces/alirezaaminzadeh/refineryguard-process-anomaly)
- Collection: [RefineryGuard](https://huggingface.co/collections/alirezaaminzadeh/refineryguard-6aa2681b964031cc88de9d1e)
- Product: [aria-ai.ir](https://aria-ai.ir)
MIT · Aria AI Engineering Team