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

Register best predictive maintenance model

Browse files
README.md CHANGED
@@ -1,3 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  # Engine Predictive Maintenance Model
2
 
3
- Best model: AdaBoost
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ ```
best_engine_maintenance_model.joblib CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:9144ebe90152f4df37d64f2a1cd70b22c83d8ae19c0c9b3a901de5a35b50c3a6
3
- size 66229
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e2efd27063c329ed564058892c6acb7d14477512a0e05758898b7b0f84246105
3
+ size 130229
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.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}"
 
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}"
model_metadata.json CHANGED
@@ -1,5 +1,5 @@
1
  {
2
- "created_at": "2026-05-16T08:40:48.723498Z",
3
  "best_model_name": "AdaBoost",
4
  "target_column": "Engine_Condition",
5
  "feature_columns": [
@@ -10,18 +10,22 @@
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
  }
 
1
  {
2
+ "created_at": "2026-05-16T09:29:57.239818Z",
3
  "best_model_name": "AdaBoost",
4
  "target_column": "Engine_Condition",
5
  "feature_columns": [
 
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
  }