Self-directed project
Predictive Maintenance: Industrial ML for Fault Detection
Condition-Monitoring Engineer · AI / ML · August 2026
A ProoV case study · educational project, not employment
Built an end-to-end rolling-bearing fault detector from vibration data: visualized a faulty snapshot, engineered RMS/kurtosis/crest-factor and defect-frequency envelope features, localized the fault to the outer race via BPFO, and trained a tiny depth-capped decision tree on training bearings only. Evaluated on a held-out set with catch-rate and false-alarm metrics, then justified a 0.30 alarm threshold using the candidate’s own cost numbers in a maintenance memo.
Graded against
- Feature engineering (signal to honest numbers)25%
- Held-out evaluation (honest measurement)25%
- Cost-based threshold decision + memo25%
- Compact model + embedded-budget justification15%
- Plain-language explanation10%
Passed · pass mark 60/100
What stood out6
- Used the provided envelope_spectrum() helper and correctly found BPFO as the dominant defect band, mapping it to the outer race.
- Reported a compact decision tree with stated depth 1 and 3 nodes, explicitly noting it was trained on training bearings only and within the embedded budget.
- Made the threshold decision with concrete operational costs (€20,000 missed failure vs €500 false alarm) and tied the memo to the observed 100% catch-rate and 42% false-alarm rate.
- Leakage-Free Feature Engineering
- Honest Held-Out Evaluation
- Physics-Based Fault Localization
The work I submitted19 tasks
11 tasks · 12 lines · Python · 8 written answers · 401 words
- Initial Prediction62 characters
- Load Plot Signal CodePython · 1.7k characters
- Example Rms WorkedPython · 697 characters
- Time Features143 characters
- Freq FeaturesPython · 935 characters
- Fault Location239 characters
- Train Classifier363 characters
- Evaluation Heldout288 characters
- Threshold Decision334 characters
- Decision Memo1.2k characters
- Jupyterlite Code2 lines
- Initial Prediction9 words
- Load Plot Signal Code163 words
- Example Rms Worked72 words
- Time Features10 words
- Freq Features78 words
- Fault Location14 words
- Train Classifier31 words
- Evaluation Heldout24 words
Summarised on purpose — the submitted code and writing stay private so this page cannot be reused as an answer key. The full submission sits behind the verified certificate.