Register best model from GitHub Actions
Browse files- README.md +1 -75
- best_engine_maintenance_model.joblib +2 -2
- model_experiment_results.csv +6 -6
- model_metadata.json +9 -13
README.md
CHANGED
|
@@ -1,77 +1,3 @@
|
|
| 1 |
-
---
|
| 2 |
-
license: mit
|
| 3 |
-
library_name: scikit-learn
|
| 4 |
-
tags:
|
| 5 |
-
- predictive-maintenance
|
| 6 |
-
- engine-health
|
| 7 |
-
- tabular-classification
|
| 8 |
-
- sensor-data
|
| 9 |
-
metrics:
|
| 10 |
-
- accuracy
|
| 11 |
-
- precision
|
| 12 |
-
- recall
|
| 13 |
-
- f1
|
| 14 |
-
- roc_auc
|
| 15 |
-
---
|
| 16 |
-
|
| 17 |
# Engine Predictive Maintenance Model
|
| 18 |
|
| 19 |
-
|
| 20 |
-
|
| 21 |
-
## Business Objective
|
| 22 |
-
|
| 23 |
-
Predict whether an engine is operating normally or requires maintenance, enabling proactive intervention before failure.
|
| 24 |
-
|
| 25 |
-
## Best Model
|
| 26 |
-
|
| 27 |
-
- Model selected: `AdaBoost`
|
| 28 |
-
- Selection metric: F1-score
|
| 29 |
-
- Target column: `Engine_Condition`
|
| 30 |
-
|
| 31 |
-
## Features
|
| 32 |
-
|
| 33 |
-
- `Engine_RPM`
|
| 34 |
-
- `Lub_Oil_Pressure`
|
| 35 |
-
- `Fuel_Pressure`
|
| 36 |
-
- `Coolant_Pressure`
|
| 37 |
-
- `Lub_Oil_Temperature`
|
| 38 |
-
- `Coolant_Temperature`
|
| 39 |
-
|
| 40 |
-
## Label Assumption
|
| 41 |
-
|
| 42 |
-
- `0`: Normal/healthy operation
|
| 43 |
-
- `1`: Maintenance/faulty condition
|
| 44 |
-
|
| 45 |
-
## Test Metrics
|
| 46 |
-
|
| 47 |
-
| model_name | accuracy | precision | recall | f1 | roc_auc | best_cv_f1 | best_params |
|
| 48 |
-
|:-------------|-----------:|------------:|---------:|---------:|----------:|-------------:|:-----------------------------------------------------------|
|
| 49 |
-
| AdaBoost | 0.651139 | 0.648488 | 0.975233 | 0.778985 | 0.681114 | 0.775172 | {"model__n_estimators": 200, "model__learning_rate": 0.03} |
|
| 50 |
-
|
| 51 |
-
## Artifacts
|
| 52 |
-
|
| 53 |
-
- `best_engine_maintenance_model.joblib`: trained scikit-learn pipeline
|
| 54 |
-
- `model_metadata.json`: feature list, target mapping, selected hyperparameters, metrics
|
| 55 |
-
- `model_experiment_results.csv`: full model comparison
|
| 56 |
-
- `requirements.txt`: dependencies for inference
|
| 57 |
-
|
| 58 |
-
## Example Inference
|
| 59 |
-
|
| 60 |
-
```python
|
| 61 |
-
import joblib
|
| 62 |
-
import pandas as pd
|
| 63 |
-
|
| 64 |
-
model = joblib.load("best_engine_maintenance_model.joblib")
|
| 65 |
-
|
| 66 |
-
sample = pd.DataFrame([{
|
| 67 |
-
"Engine_RPM": 800,
|
| 68 |
-
"Lub_Oil_Pressure": 3.2,
|
| 69 |
-
"Fuel_Pressure": 6.5,
|
| 70 |
-
"Coolant_Pressure": 2.4,
|
| 71 |
-
"Lub_Oil_Temperature": 78.0,
|
| 72 |
-
"Coolant_Temperature": 80.0
|
| 73 |
-
}])
|
| 74 |
-
|
| 75 |
-
prediction = model.predict(sample)[0]
|
| 76 |
-
print(prediction)
|
| 77 |
-
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
# Engine Predictive Maintenance Model
|
| 2 |
|
| 3 |
+
Best model: AdaBoost
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
best_engine_maintenance_model.joblib
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:9144ebe90152f4df37d64f2a1cd70b22c83d8ae19c0c9b3a901de5a35b50c3a6
|
| 3 |
+
size 66229
|
model_experiment_results.csv
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
model_name,accuracy,precision,recall,f1,roc_auc,best_cv_f1,best_params
|
| 2 |
-
AdaBoost,0.
|
| 3 |
-
|
| 4 |
-
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
Decision_Tree,0.6403890453033018,0.687057991513437,0.7888753552578157,0.7344547344547344,0.6686565040718985,0.7440265771431916,"{""
|
|
|
|
| 1 |
model_name,accuracy,precision,recall,f1,roc_auc,best_cv_f1,best_params
|
| 2 |
+
AdaBoost,0.6304069618633222,0.6304069618633222,1.0,0.7733124018838304,0.6764444808090487,0.7752141809940855,"{""model__n_estimators"": 100, ""model__learning_rate"": 0.05}"
|
| 3 |
+
Gradient_Boosting,0.6647043767596621,0.684244167465644,0.8692651238327244,0.7657367668097281,0.700410676347899,0.7674745413885123,"{""model__n_estimators"": 100, ""model__max_depth"": 2, ""model__learning_rate"": 0.05}"
|
| 4 |
+
XGBoost,0.6613770156130023,0.6796973518284993,0.8753552578156719,0.7652173913043478,0.6967336806340487,0.7703872294098518,"{""model__n_estimators"": 50, ""model__max_depth"": 3, ""model__learning_rate"": 0.05}"
|
| 5 |
+
Random_Forest,0.6647043767596621,0.687479674796748,0.8583028826634186,0.7634525099313831,0.7002312901299341,0.7656012982489183,"{""model__n_estimators"": 100, ""model__max_depth"": 8, ""model__class_weight"": null}"
|
| 6 |
+
Bagging,0.6542103916048119,0.698005698005698,0.7957775071051563,0.7436918990703851,0.6762816835987012,0.7426819826395361,"{""model__n_estimators"": 100, ""model__max_samples"": 0.8}"
|
| 7 |
+
Decision_Tree,0.6403890453033018,0.687057991513437,0.7888753552578157,0.7344547344547344,0.6686565040718985,0.7440265771431916,"{""model__min_samples_leaf"": 1, ""model__max_depth"": 3}"
|
model_metadata.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
{
|
| 2 |
-
"created_at": "2026-05-16T09:
|
| 3 |
"best_model_name": "AdaBoost",
|
| 4 |
"target_column": "Engine_Condition",
|
| 5 |
"feature_columns": [
|
|
@@ -10,22 +10,18 @@
|
|
| 10 |
"Lub_Oil_Temperature",
|
| 11 |
"Coolant_Temperature"
|
| 12 |
],
|
| 13 |
-
"label_assumption": {
|
| 14 |
-
"0": "normal_or_healthy",
|
| 15 |
-
"1": "maintenance_or_faulty"
|
| 16 |
-
},
|
| 17 |
"selection_metric": "f1",
|
| 18 |
"best_model_metrics": {
|
| 19 |
"model_name": "AdaBoost",
|
| 20 |
-
"accuracy": 0.
|
| 21 |
-
"precision": 0.
|
| 22 |
-
"recall":
|
| 23 |
-
"f1": 0.
|
| 24 |
-
"roc_auc": 0.
|
| 25 |
-
"best_cv_f1": 0.
|
| 26 |
},
|
| 27 |
"best_params": {
|
| 28 |
-
"model__n_estimators":
|
| 29 |
-
"model__learning_rate": 0.
|
| 30 |
}
|
| 31 |
}
|
|
|
|
| 1 |
{
|
| 2 |
+
"created_at": "2026-05-16T09:32:18.916423Z",
|
| 3 |
"best_model_name": "AdaBoost",
|
| 4 |
"target_column": "Engine_Condition",
|
| 5 |
"feature_columns": [
|
|
|
|
| 10 |
"Lub_Oil_Temperature",
|
| 11 |
"Coolant_Temperature"
|
| 12 |
],
|
|
|
|
|
|
|
|
|
|
|
|
|
| 13 |
"selection_metric": "f1",
|
| 14 |
"best_model_metrics": {
|
| 15 |
"model_name": "AdaBoost",
|
| 16 |
+
"accuracy": 0.6304069618633222,
|
| 17 |
+
"precision": 0.6304069618633222,
|
| 18 |
+
"recall": 1.0,
|
| 19 |
+
"f1": 0.7733124018838304,
|
| 20 |
+
"roc_auc": 0.6764444808090487,
|
| 21 |
+
"best_cv_f1": 0.7752141809940855
|
| 22 |
},
|
| 23 |
"best_params": {
|
| 24 |
+
"model__n_estimators": 100,
|
| 25 |
+
"model__learning_rate": 0.05
|
| 26 |
}
|
| 27 |
}
|