|
|
--- |
|
|
license: mit |
|
|
tags: |
|
|
- sklearn |
|
|
- predictive-maintenance |
|
|
- classification |
|
|
- adaboost |
|
|
datasets: |
|
|
- jskswamy/predictive-maintenance-data |
|
|
metrics: |
|
|
- f2 |
|
|
- recall |
|
|
- accuracy |
|
|
--- |
|
|
|
|
|
# Predictive Maintenance Model |
|
|
|
|
|
## Model Description |
|
|
|
|
|
This AdaBoost classifier predicts whether a diesel engine requires maintenance based on sensor readings. |
|
|
The model was trained for **commercial fleet predictive maintenance** applications. |
|
|
|
|
|
## Primary Metric: F2 Score |
|
|
|
|
|
The model is optimized for **F2 Score** (recall weighted 2x over precision) because in predictive maintenance: |
|
|
- Missing a maintenance need (False Negative) leads to costly breakdowns |
|
|
- A false alarm (False Positive) only results in an extra inspection |
|
|
|
|
|
## Performance Metrics |
|
|
|
|
|
| Metric | Value | |
|
|
|--------|-------| |
|
|
| **F2 Score** | **0.8951** | |
|
|
| Recall | 1.0000 | |
|
|
| Precision | 0.6304 | |
|
|
| F1 Score | 0.7733 | |
|
|
| Accuracy | 0.6304 | |
|
|
| ROC-AUC | 0.6443 | |
|
|
|
|
|
## Features |
|
|
|
|
|
The model uses 6 engine sensor readings: |
|
|
1. Engine RPM |
|
|
2. Lub Oil Pressure |
|
|
3. Fuel Pressure |
|
|
4. Coolant Pressure |
|
|
5. Lub Oil Temp |
|
|
6. Coolant Temp |
|
|
|
|
|
## Usage |
|
|
|
|
|
```python |
|
|
import joblib |
|
|
import pandas as pd |
|
|
from huggingface_hub import hf_hub_download |
|
|
|
|
|
# Download model |
|
|
model_path = hf_hub_download( |
|
|
repo_id="jskswamy/predictive-maintenance-model", |
|
|
filename="best_model.joblib" |
|
|
) |
|
|
model = joblib.load(model_path) |
|
|
|
|
|
# Prepare input data (6 features) |
|
|
X_new = pd.DataFrame({ |
|
|
'Engine RPM': [800], |
|
|
'Lub Oil Pressure': [3.5], |
|
|
'Fuel Pressure': [6.0], |
|
|
'Coolant Pressure': [2.5], |
|
|
'Lub Oil Temp': [78], |
|
|
'Coolant Temp': [80] |
|
|
}) |
|
|
|
|
|
# Predict |
|
|
prediction = model.predict(X_new) |
|
|
probability = model.predict_proba(X_new)[:, 1] |
|
|
|
|
|
print(f"Prediction: {'Normal' if prediction[0] == 0 else 'Maintenance Required'}") |
|
|
print(f"Maintenance Probability: {probability[0]:.2%}") |
|
|
``` |
|
|
|
|
|
## Training Details |
|
|
|
|
|
- **Algorithm:** AdaBoost |
|
|
- **Hyperparameter Tuning:** GridSearchCV with 5-fold stratified CV |
|
|
- **Scoring:** F2 Score (beta=2) |
|
|
- **Training Data:** 15,628 samples |
|
|
- **Test Data:** 3,907 samples |
|
|
|
|
|
## License |
|
|
|
|
|
MIT License |
|
|
|