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