Dataset: fd001_export.csv · 100 machines, 20,631 readings · generated 2026-07-06
Average surprise score of held-out machines across each tenth of machine life. Flat while healthy, then a sharp climb — the final tenth is ×124 the early-life average.
| Life period | Avg surprise |
|---|---|
| Decile 1 | 4.13 |
| Decile 2 | 1.92 |
| Decile 3 | 2.26 |
| Decile 4 | 3.94 |
| Decile 5 | 3.46 |
| Decile 6 | 3.75 |
| Decile 7 | 9.8 |
| Decile 8 | 25 |
| Decile 9 | 95 |
| Decile 10 | 389 |
Trend correlation between health score and age for each of the 30 machines the model never saw during training. All 30 are positive.
| Machine | Trend ρ |
|---|---|
| Machine 73 | 0.896 |
| Machine 6 | 0.889 |
| Machine 12 | 0.881 |
| Machine 39 | 0.872 |
| Machine 62 | 0.848 |
| Machine 32 | 0.843 |
| Machine 8 | 0.836 |
| Machine 34 | 0.832 |
| Machine 82 | 0.815 |
| Machine 56 | 0.808 |
| Machine 81 | 0.785 |
| Machine 64 | 0.780 |
| Machine 94 | 0.772 |
| Machine 55 | 0.767 |
| Machine 80 | 0.761 |
| Machine 54 | 0.758 |
| Machine 92 | 0.741 |
| Machine 100 | 0.731 |
| Machine 60 | 0.705 |
| Machine 25 | 0.703 |
| Machine 47 | 0.687 |
| Machine 97 | 0.678 |
| Machine 42 | 0.669 |
| Machine 99 | 0.621 |
| Machine 28 | 0.551 |
| Machine 31 | 0.539 |
| Machine 15 | 0.409 |
| Machine 78 | 0.369 |
| Machine 33 | 0.366 |
| Machine 30 | 0.317 |
The system grouped your columns into physical sense domains automatically — no manual configuration.
| Domain | Columns | Signals |
|---|---|---|
| thermal | 4 | T2, T24, T30, T50 |
| pressure | 5 | P2, P15, P30, Ps30, epr |
| rotation | 4 | Nf, Nc, NRf, NRc |
| flow | 5 | W31, W32, BPR, phi_fuel, farB |
| bleed | 1 | htBleed |
We built a health-monitoring baseline from 100 engines (20,631 rows of cycle-by-cycle sensor data) without using any failure labels. On a held-out set of 30 engines the model separated healthy-period readings from end-of-life readings almost perfectly (AUC 0.99), and its health score rose toward end of life in every one of those 30 engines. This is a strong result, with the important caveat that it rests on the assumption that each engine record runs all the way to failure.
We trained an unsupervised model on a healthy window only — the earliest portion of each training engine's life (30% healthy fraction) — so the model learned what "normal" looks like without ever being told which engines fail or when. No labels were used in training. We then measured a "surprise" score (how far current readings drift from healthy behavior, taken as the maximum across the thermal, pressure, rotation, flow, and bleed sensor domains) and checked whether that score behaves sensibly on engines the model never saw during training. The 100 engines were split into 70 for training and 30 for holdout evaluation.
Confirm where the failure/RUL labels for these engines are stored, then re-check the model's health score against a handful of known failures. This is low effort and would convert the current exploratory trend result into a validated one before any operational use.
Automated checks this analysis passed before the report was released.