premswan's picture
Register best predictive maintenance model
314cb78 verified
---
license: mit
library_name: scikit-learn
tags:
- predictive-maintenance
- engine-health
- tabular-classification
- sensor-data
metrics:
- accuracy
- precision
- recall
- f1
- roc_auc
---
# Engine Predictive Maintenance Model
This repository contains the best trained model for classifying engine condition using sensor readings.
## Business Objective
Predict whether an engine is operating normally or requires maintenance, enabling proactive intervention before failure.
## Best Model
- Model selected: `AdaBoost`
- Selection metric: F1-score
- Target column: `Engine_Condition`
## Features
- `Engine_RPM`
- `Lub_Oil_Pressure`
- `Fuel_Pressure`
- `Coolant_Pressure`
- `Lub_Oil_Temperature`
- `Coolant_Temperature`
## Label Assumption
- `0`: Normal/healthy operation
- `1`: Maintenance/faulty condition
## Test Metrics
| model_name | accuracy | precision | recall | f1 | roc_auc | best_cv_f1 | best_params |
|:-------------|-----------:|------------:|---------:|---------:|----------:|-------------:|:-----------------------------------------------------------|
| AdaBoost | 0.651139 | 0.648488 | 0.975233 | 0.778985 | 0.681114 | 0.775172 | {"model__n_estimators": 200, "model__learning_rate": 0.03} |
## Artifacts
- `best_engine_maintenance_model.joblib`: trained scikit-learn pipeline
- `model_metadata.json`: feature list, target mapping, selected hyperparameters, metrics
- `model_experiment_results.csv`: full model comparison
- `requirements.txt`: dependencies for inference
## Example Inference
```python
import joblib
import pandas as pd
model = joblib.load("best_engine_maintenance_model.joblib")
sample = pd.DataFrame([{
"Engine_RPM": 800,
"Lub_Oil_Pressure": 3.2,
"Fuel_Pressure": 6.5,
"Coolant_Pressure": 2.4,
"Lub_Oil_Temperature": 78.0,
"Coolant_Temperature": 80.0
}])
prediction = model.predict(sample)[0]
print(prediction)
```