Self-directed project
Predictive Maintenance: Industrial ML for Fault Detection
Condition-Monitoring Engineer · AI / ML · October 2026
A ProoV case study · educational project, not employment
Built an end-to-end rolling-bearing fault detector from vibration data: engineered RMS, kurtosis, crest factor, and envelope-spectrum defect-frequency features; trained a depth-capped decision tree on training bearings only; and evaluated it on held-out bearings with catch-rate and false-alarm metrics. The candidate also localized the fault to the outer race via BPFO and justified an alarm threshold with a clear cost-based 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
- Correctly tied the dominant envelope peak to BPFO and the outer race fault location
- Chose kurtosis as the time-domain feature that jumps most on impulsive faults
- Reported a compact tree with stated depth 2 and 5 nodes, aligned to the embedded budget
- Defended the 0.40 threshold using explicit €20,000 miss cost versus €500 false-alarm cost
- Leakage-Free Feature Engineering
- Honest Held-Out Evaluation
The work I submitted19 tasks
11 tasks · 5.9k characters · Python, JavaScript · 8 written answers · 383 words
- Initial Prediction62 characters
- Load Plot Signal CodePython · 1.8k characters
- Load Plot Signal205 characters
- Example Rms WorkedPython · 697 characters
- Time Features143 characters
- Freq FeaturesPython · 775 characters
- Fault Location239 characters
- Train Classifier363 characters
- Evaluation Heldout288 characters
- Threshold Decision334 characters
- Decision MemoJavaScript · 1.0k characters
- Initial Prediction9 words
- Load Plot Signal Code163 words
- Load Plot Signal15 words
- Example Rms Worked72 words
- Time Features10 words
- Freq Features69 words
- Fault Location14 words
- Train Classifier31 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.