This project implements a multi-class classification model to predict the operational state of a pumpβOK, Warning, or Failureβbased on synthetic sensor data. It's designed to simulate a real-world APM use case where early detection of anomalies helps reduce unplanned downtime and improve asset reliability.
- Goal: Classify pump health using features like vibration, bearing temperature, seal pressure, and leak status.
- Data: Synthetic dataset generated to simulate realistic operational profiles of rotating equipment.
- Models Used:
- Decision Tree Classifier
- Logistic Regression (for interpretability)
- Evaluation Metrics: Accuracy, Precision, Recall, F1-Score, Confusion Matrix
| Class | Precision | Recall | F1-Score | Support |
|---|---|---|---|---|
| OK | 0.98 | 0.97 | 0.98 | 157 |
| Warning | 0.71 | 0.80 | 0.75 | 15 |
| Failure | 1.00 | 0.96 | 0.98 | 28 |
| Overall Accuracy | β | β | 0.96 | 200 |
[[153 4 0]
[ 3 12 0]
[ 0 1 27]]
| Feature | Decision Tree | Logistic Regression Coefficient (Class=OK) |
|---|---|---|
| bearing_temp | 0.73 | -1.11 |
| vibration | 0.26 | -1.76 |
| seal_pressure | 0.01 | -0.56 |
| leak_flag | 0.00 | +0.22 |
pump_apm_predictor/
βββ data/ # Synthetic data files
βββ notebooks/ # Jupyter notebook(s) for training and evaluation
βββ plots/ # Output figures (confusion matrix, etc.)
βββ src/ # Optional: model scripts (train_model.py)
βββ requirements.txt # Dependencies
βββ README.md # Project overview
βββ .gitignore # Common file ignores
- Deploy model for real-time scoring using simulated sensor streams
- Integrate with dashboard or PLC mockup
- Implement Remaining Useful Life (RUL) estimation
- Extend to multi-asset systems (compressors, motors)
This is part of a weekly APM mini-project series focused on exploring predictive maintenance workflows in asset-intensive systems.
MIT License (add LICENSE file if publishing publicly)