premswan commited on
Commit
f8f9020
·
verified ·
1 Parent(s): 0f91a40

Register best model from GitHub Actions

Browse files
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
- This repository contains the best trained model for classifying engine condition using sensor readings.
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:e2efd27063c329ed564058892c6acb7d14477512a0e05758898b7b0f84246105
3
- size 130229
 
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.6511389813155875,0.6484881209503239,0.975233455136013,0.7789849197340685,0.6811138646989292,0.775172466662594,"{""model__n_estimators"": 200, ""model__learning_rate"": 0.03}"
3
- Bagging,0.6511389813155875,0.659976730657359,0.9212342671538774,0.7690221996271819,0.6480291977780852,0.7658860957610526,"{""model__n_estimators"": 150, ""model__max_samples"": 1.0, ""model__max_features"": 0.6}"
4
- Gradient_Boosting,0.6647043767596621,0.684244167465644,0.8692651238327244,0.7657367668097281,0.700410676347899,0.7674745413885123,"{""model__subsample"": 1.0, ""model__n_estimators"": 100, ""model__max_depth"": 2, ""model__learning_rate"": 0.05}"
5
- XGBoost,0.6613770156130023,0.6796973518284993,0.8753552578156719,0.7652173913043478,0.6967336806340487,0.7703872294098518,"{""model__subsample"": 1.0, ""model__n_estimators"": 50, ""model__max_depth"": 3, ""model__learning_rate"": 0.05, ""model__colsample_bytree"": 1.0}"
6
- Random_Forest,0.6649603276170976,0.687094682230869,0.8603329273244011,0.7640165855417342,0.700493059046745,0.7655985568463354,"{""model__n_estimators"": 300, ""model__min_samples_leaf"": 2, ""model__max_depth"": 8, ""model__class_weight"": null}"
7
- Decision_Tree,0.6403890453033018,0.687057991513437,0.7888753552578157,0.7344547344547344,0.6686565040718985,0.7440265771431916,"{""model__min_samples_split"": 2, ""model__min_samples_leaf"": 1, ""model__max_depth"": 3, ""model__class_weight"": null}"
 
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:29:57.239818Z",
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.6511389813155875,
21
- "precision": 0.6484881209503239,
22
- "recall": 0.975233455136013,
23
- "f1": 0.7789849197340685,
24
- "roc_auc": 0.6811138646989292,
25
- "best_cv_f1": 0.775172466662594
26
  },
27
  "best_params": {
28
- "model__n_estimators": 200,
29
- "model__learning_rate": 0.03
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
  }