File size: 1,968 Bytes
f2fa1df
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
---
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)
```