Feature_02 — Predictive Intelligence
Machines fail quietly.This one is listening.
- Role
- ML Engineering, Backend
- Stack
- Python · FastAPI · Scikit-Learn · SQLite · Docker
- Elsewhere
- Repository ↗
A predictive maintenance pipeline built around a single uncomfortable truth: the two kinds of mistake do not cost the same.
An end-to-end predictive maintenance platform: sensor data in, failure probability out, with cost-sensitive learning that treats a missed failure as the expensive mistake it actually is.
01
Premise
Premise
Equipment rarely fails without warning; it fails without anyone listening. AutoIQ builds the listener — an ingestion, feature engineering, and inference pipeline that keeps a running opinion on the health of every machine it watches.
02
Method
Method
Automated preprocessing and feature engineering feed a cost-sensitive classifier served through FastAPI. Model serving, health monitoring, and inference endpoints share one contract, so the interface never lags the model.
03
Result
Result
ROC-AUC of 0.97 with a deliberate asymmetry: false negatives are penalised harder than false positives. Semi-finalist, EY Techathon 6.0 — entered solo.
“A false alarm costs an hour. A missed failure costs a factory. The model should know the difference.”
Architecture
The topology, read top to bottom.
Fig. 02a — topology
Engineering Decisions
3 entries01
Cost asymmetry encoded in the loss
A missed failure is forty times more expensive than a false alarm, so the training weights say exactly that. Accuracy was never the objective; expected cost was.
02
One contract for model and interface
Feature engineering, inference and health reporting share a single FastAPI schema, so the served model can never drift ahead of the thing calling it.
03
Deterministic preprocessing
Every transformation is versioned alongside the model. A prediction can be reconstructed from raw sensor data months later, exactly.
Challenges
What resisted.
Severe class imbalance
Failures are rare by definition. Stratified sampling plus weighted boosting kept the minority class from being optimised into silence.
Sensor drift
Readings shift as hardware ages. Rolling-window normalisation let the model judge behaviour relative to a machine's own recent history rather than a fixed factory baseline.
Trade-offs
More false alarms
Against — Higher raw accuracyThe model is deliberately nervous. An hour of unnecessary inspection is cheaper than an unplanned stop.
Gradient boosting
Against — A deep sequence modelInterpretability won. An engineer can ask why a machine was flagged and receive an answer.
0%
ROC-AUC
0
EY Techathon semi-final
0
Solo participant
Timeline
Ingestion
Sensor schema, cleaning, and windowed feature extraction.
Modelling
Cost-weighted training, threshold tuning against expected loss.
Serving
FastAPI inference, health endpoints, containerised deployment.
Submission
EY Techathon 6.0 — entered and defended solo.
Gallery
1cost_weights = np.where(y_train == 1, 40.0, 1.0)2clf = GradientBoostingClassifier()3clf.fit(X_train, y_train, sample_weight=cost_weights)
Fig. 02a — the forty-to-one penalty
1thresholds = np.linspace(0.05, 0.95, 91)2expected = [(40 * fn(t)) + fp(t) for t in thresholds]3operating_point = thresholds[np.argmin(expected)]
Fig. 02b — threshold chosen by expected cost, not accuracy
Fig. 02c — signal field
Results
0.97 ROC-AUC
Held across validation folds with the cost-weighted objective in place.
Semi-finalist
EY Techathon 6.0, competing as a single-person team.
Operational
Inference and health monitoring served behind one reproducible container.