Case study
Predictive Maintenance Pipeline
07/2025
22 derived features from 8 sensor streams, 5 models compared on F1 under class imbalance, 14 pytest tests, and a one-command Docker setup.
- 22 features
- 5 models
- 14 pytest tests
- XGBoost
- Docker
- pytest
Problem
Sensor streams for maintenance are uneven, and the failure class is small. I needed a comparison that would not hide the rare cases.
What I built
I derived 22 features from 8 sensor streams and added automated data quality checks. I benchmarked 5 models with stratified cross-validation: logistic regression, random forest, gradient boosting, XGBoost, and SVM. The choice used F1 under class imbalance.
Architecture
Training is deterministic. Evaluation reports are generated automatically. pytest covers 14 tests. Docker starts the pipeline with one command.
Results
- 22 derived features from 8 sensor streams
- 5 models compared with stratified cross-validation
- Selection by F1 under class imbalance
- 14 pytest tests and automated evaluation reports
What I learned
I picked the model by F1 because the classes were imbalanced.
Stack
The benchmark included XGBoost. Docker packages the run. pytest locks the checks.