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 using vibration features, a compact decision tree, and a held-out evaluation. The work includes leakage-aware training on the training bearings only, a cost-based alarm threshold decision, and a maintenance memo that explains the outer-race fault call in plain language using the model’s own numbers.
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
- Computed RMS, kurtosis, and crest factor with correct step-by-step logic and showed a strong separation between healthy and faulty snapshots.
- Trained a depth-1 decision tree on training bearings only and explicitly stated the tree depth and node count against the embedded budget.
- Provided a concrete maintenance memo with actual numbers for catch rate, false-alarm rate, and euro-denominated miss vs inspection costs.
- Leakage-Free Feature Engineering
- Honest Held-Out Evaluation
- Cost-Based Operational Decision-Making
The work I submitted18 tasks
10 tasks · 8.9k characters · Python · 8 written answers · 569 words
- Initial Prediction62 characters
- Load Plot Signal CodePython · 1.8k characters
- Load Plot Signal205 characters
- Example Rms WorkedPython · 698 characters
- Time FeaturesPython · 1.6k characters
- Freq FeaturesPython · 2.1k characters
- Train Classifier363 characters
- Evaluation Heldout288 characters
- Threshold Decision332 characters
- Decision Memo1.4k characters
- Initial Prediction9 words
- Load Plot Signal Code163 words
- Load Plot Signal15 words
- Example Rms Worked72 words
- Time Features158 words
- Freq Features97 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.