premswan commited on
Commit
314cb78
·
verified ·
1 Parent(s): 554be70

Register best predictive maintenance model

Browse files
README.md ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e2efd27063c329ed564058892c6acb7d14477512a0e05758898b7b0f84246105
3
+ size 130229
model_experiment_results.csv ADDED
@@ -0,0 +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}"
model_metadata.json ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "created_at": "2026-05-01T22:37:39.738362Z",
3
+ "best_model_name": "AdaBoost",
4
+ "target_column": "Engine_Condition",
5
+ "feature_columns": [
6
+ "Engine_RPM",
7
+ "Lub_Oil_Pressure",
8
+ "Fuel_Pressure",
9
+ "Coolant_Pressure",
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
+ }
requirements.txt ADDED
@@ -0,0 +1,4 @@
 
 
 
 
 
1
+ pandas
2
+ numpy
3
+ scikit-learn
4
+ joblib