| --- |
| 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) |
| ``` |
|
|