How do we know a bearing is about to fail… before it actually does?
This project explores that question using Machine Learning applied to real vibration data from experimental setups.
The goal: Develop a predictive maintenance system that detects early fault detection in bearings, helping industries reduce downtime, lower costs, and improve safety.
| Dataset | Duration | Files | Channels | Faults Observed |
|---|---|---|---|---|
| Set 1 | Oct 22, 2003 – Nov 25, 2003 | 2156 | 8 (2 per bearing: x- and y-axis) | Bearing 3: Inner race defect; Bearing 4: Roller element defect |
| Set 2 | Feb 12, 2004 – Feb 19, 2004 | 984 | 4 (1 per bearing) | Bearing 1: Outer race defect |
| Set 3 | Mar 4, 2004 – Apr 4, 2004 | 6324 | 4 (1 per bearing) | Bearing 3: Outer race defect |
- Data Preprocessing → Cleaning, balancing, cutoff handling (e.g., special case for roller element defect in Set 1).
- Feature Engineering → Time-domain features from vibration signals.
- Model Training → Compared multiple ML classifiers.
- Evaluation → Accuracy, Precision, Recall, F1-score.
- Final model achieved ~87% accuracy on unseen test data.
- Key finding: Roller element defect in Set 1, Bearing 4 showed early critical signs at 81.3% of lifetime, unlike other bearings.
- 💰 Cost Reduction → Planned maintenance vs. costly emergency repairs
- 🛡️ Safety Enhancement → Avoid catastrophic failures & hazards
- ⚙️ Equipment Longevity → Extend machinery lifespan
- 📈 Production Efficiency → Minimize downtime, optimize operations
- Python 🐍
- Scikit-learn 🤖
- Pandas & NumPy 📊
- Matplotlib 📉
-
Dataset:
- NASA Bearing Dataset: Kaggle
- IMS Bearing Dataset: Raw vibration signal data from the NSF I/UC Center for Intelligent Maintenance Systems (IMS), University of Cincinnati
-
Libraries Used:
- Data Processing:
numpy: Numerical computingpandas: Data manipulation
- Visualization:
matplotlib: Basic plottingseaborn: Statistical visualization
- Machine Learning:
scikit-learn: Random Forest implementation and metricspathlib: File path handling
- Data Processing: