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 a compact rolling-bearing fault detector end to end: loaded and interpreted vibration snapshots, selected kurtosis as the strongest impulsive-fault feature, trained a shallow decision tree on training bearings only, and evaluated it on a held-out set with reported catch-rate and false-alarm rate. Also wrote a maintenance memo that defended a 0.35 alarm threshold using explicit cost trade-offs and a plain-language explanation for non-experts.
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
- Chose kurtosis as the most responsive time-domain feature for impulsive bearing faults
- Trained a depth-1 decision tree and explicitly stated depth, node count, and embedded-budget fit
- Used held-out catch-rate and false-alarm rate in the threshold memo with concrete euro costs
- Leakage-Free Model Training
- Honest Held-Out Evaluation
- Cost-Based Thresholding
The work I submitted19 tasks
11 tasks · 6.9k characters · Python · 8 written answers · 478 words
- Initial Prediction62 characters
- Example Load Plot HealthyPython · 952 characters
- Load Plot Signal CodePython · 1.8k characters
- Load Plot Signal205 characters
- Example Rms WorkedPython · 697 characters
- Time Features143 characters
- Freq FeaturesPython · 991 characters
- Train Classifier363 characters
- Evaluation Heldout288 characters
- Threshold Decision335 characters
- Decision Memo1.1k characters
- Initial Prediction9 words
- Example Load Plot Healthy90 words
- Load Plot Signal Code163 words
- Load Plot Signal15 words
- Example Rms Worked72 words
- Time Features10 words
- Freq Features88 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.