Tabular Classification
Scikit-learn
lightgbm
predictive-maintenance
machine-failure
industrial-iot
kushal23's picture
Add comprehensive model card
0e1a590 verified
|
Raw
History Blame Contribute Delete
4.65 kB
---
license: mit
tags:
- tabular-classification
- sklearn
- lightgbm
- predictive-maintenance
- machine-failure
- industrial-iot
datasets:
- mascalmeida/industrial_machine_predictive_maintenance_classification
metrics:
- f1
- roc_auc
- accuracy
- precision
- recall
pipeline_tag: tabular-classification
---
# 🔧 Machine Maintenance Predictor
Predicts machine failures before they happen using sensor data. Built with **LightGBM** on the [AI4I 2020 Predictive Maintenance Dataset](https://huggingface.co/datasets/mascalmeida/industrial_machine_predictive_maintenance_classification).
## Performance
| Metric | Score |
|--------|-------|
| **Macro F1** | **0.892** |
| **AUC-ROC** | **0.960** |
| Accuracy | 0.986 |
| Precision | 0.775 |
| Recall | 0.809 |
### Model Comparison (5-Fold Stratified CV with SMOTE-in-Fold)
| Model | Macro F1 | AUC-ROC |
|-------|----------|---------|
| **LightGBM** ✓ | **0.886 ± 0.007** | **0.968 ± 0.006** |
| RandomForest | 0.780 ± 0.024 | 0.971 ± 0.006 |
| XGBoost | 0.732 ± 0.012 | 0.956 ± 0.010 |
### Visualizations
| Confusion Matrix | ROC Curves |
|:---:|:---:|
| ![Confusion Matrix](confusion_matrix.png) | ![ROC Curves](roc_curves.png) |
| Feature Importance | Model Comparison |
|:---:|:---:|
| ![Feature Importance](feature_importance.png) | ![Model Comparison](model_comparison.png) |
## Features
### Base Features (from sensors)
| Feature | Description |
|---------|-------------|
| Air temperature [K] | Ambient air temperature |
| Process temperature [K] | Process temperature |
| Rotational speed [rpm] | Machine rotational speed |
| Torque [Nm] | Machine torque |
| Tool wear [min] | Tool wear time |
| Type_encoded | Product quality variant (L=0, M=1, H=2) |
### Engineered Features (SHAP-validated, +5% F1 improvement)
| Feature | Formula | Physical Meaning |
|---------|---------|-----------------|
| temp_diff | Air temp - Process temp | Temperature differential |
| power_proxy | Torque / (Speed + 1) | Power consumption indicator |
| torque_wear | Torque × Tool wear | Stress accumulation |
| speed_wear | Speed × Tool wear | Rotational stress over time |
| temp_torque | Process temp × Torque | Thermal-mechanical load |
## Usage
```python
import pickle
import numpy as np
from huggingface_hub import hf_hub_download
# Download model
model_path = hf_hub_download(
repo_id="kushal23/machine-maintenance-predictor",
filename="model.pkl"
)
# Load
with open(model_path, "rb") as f:
pipeline = pickle.load(f)
# Prepare input: [Air temp, Process temp, Speed, Torque, Tool wear,
# Type_encoded, temp_diff, power_proxy, torque_wear, speed_wear, temp_torque]
air_temp = 298.1
proc_temp = 308.6
speed = 1551
torque = 42.8
tool_wear = 0
type_enc = 1 # L=0, M=1, H=2
sample = np.array([[
air_temp, proc_temp, speed, torque, tool_wear, type_enc,
air_temp - proc_temp, # temp_diff
torque / (speed + 1), # power_proxy
torque * tool_wear, # torque_wear
speed * tool_wear, # speed_wear
proc_temp * torque # temp_torque
]])
prediction = pipeline.predict(sample)
probability = pipeline.predict_proba(sample)[:, 1]
print(f"Failure predicted: {'YES ⚠️' if prediction[0] == 1 else 'No ✓'}")
print(f"Failure probability: {probability[0]:.1%}")
```
## Methodology
- **Algorithm**: LightGBM (300 estimators, lr=0.05, 31 leaves, balanced class weights)
- **Class Imbalance Handling**: SMOTE applied **inside** CV folds only (prevents data leakage)
- **Validation**: 5-fold stratified cross-validation
- **Preprocessing**: StandardScaler normalization
- **Reference**: Based on methodology from [arxiv:2603.13343](https://arxiv.org/abs/2603.13343) (2025)
## Dataset
The [AI4I 2020 Predictive Maintenance Dataset](https://huggingface.co/datasets/mascalmeida/industrial_machine_predictive_maintenance_classification) contains 10,000 data points with:
- **3.4% failure rate** (339 failures out of 10,000)
- **5 failure modes**: Tool Wear (TWF), Heat Dissipation (HDF), Power (PWF), Overstrain (OSF), Random (RNF)
- **3 product types**: Low (60%), Medium (30%), High (10%) quality
## Files
| File | Description |
|------|-------------|
| `model.pkl` | Full sklearn Pipeline (StandardScaler + LightGBM) |
| `metadata.json` | Model metadata, features, and all metrics |
| `label_encoder.pkl` | Product type encoder (L/M/H → 0/1/2) |
| `confusion_matrix.png` | Confusion matrix visualization |
| `feature_importance.png` | Feature importance chart |
| `model_comparison.png` | All models comparison |
| `roc_curves.png` | ROC curves for all models |
## License
MIT