Downloads · 30 days
0
imanandshah/engine-maintenance-classifier
engine-maintenance-classifier is a tabular classification model from imanandshah. Use it for the tabular classification task on the model card, and read the license before you ship it in a product. It is set up for scikit-learn. The card lists the license as mit.
Classifies the current condition of a vehicle engine — Normal or Needs Maintenance — from six standard on-board sensor readings. Decision-support / triage tool, not a time-to-failure forecast.
Downloads · 30 days
0
Access
Public
Updated Aug 20, 2026
Repo size
549 KB
Likes
0
Public
Click a slice to open those files.
.joblib246 KB · 97%
From the Hugging Face model README
Classifies the current condition of a vehicle engine — Normal or Needs Maintenance — from six standard on-board sensor readings. Decision-support / triage tool, not a time-to-failure forecast.
0 = Normal · 1 = Requires Maintenance (Faulty, positive class), per the Great Learning Capstone Project 3 problem statement.
scikit-learn Pipeline: IQRCapper -> StandardScaler -> GradientBoostingClassifier. IQRCapper winsorises each feature at its 1.5×IQR fence, learned on training data only (leakage-safe); defined in the required preprocessing.py module.
https://huggingface.co/datasets/imanandshah/engine-predictive-maintenance (engine_data.csv, train.csv, test.csv)
80/20 stratified split of 19,535 de-duplicated records -> 15,628 train / 3,907 test, preserving ~63% Faulty / 37% Normal. random_state = 42.
Six families compared with 5-fold stratified CV ROC-AUC; Gradient Boosting tuned across 24 combinations with 3-fold stratified CV optimising F1. learning_rate = 0.05 · max_depth = 2 · n_estimators = 120 · subsample = 1.0
Recall 0.8624 · Precision 0.6845 · F1 0.7632 · ROC-AUC 0.7017 · Accuracy 0.6627 · Balanced accuracy 0.5922 · Train accuracy 0.6774
Prioritising / triaging engines by maintenance risk (rank order by predicted probability). Best for deciding inspection order, not a standalone pass/fail gate.
preprocessing.py (contains IQRCapper) must be importable to unpickle the pipeline.
import joblib, pandas as pd
from huggingface_hub import hf_hub_download
import preprocessing # noqa: F401
FEATURES = ["Engine_RPM","Lub_Oil_Pressure","Fuel_Pressure",
"Coolant_Pressure","Lub_Oil_Temperature","Coolant_Temperature"]
path = hf_hub_download(repo_id="imanandshah/engine-maintenance-classifier",
filename="engine_maintenance_pipeline.joblib")
model = joblib.load(path)
sample = pd.DataFrame([[746.0,3.16,6.20,2.17,76.82,78.35]], columns=FEATURES)
print(int(model.predict(sample)[0]), float(model.predict_proba(sample)[:,1][0]))
1.0.0