Predictive maintenance system for industrial IoT sensor data.
AriSense uses an XGBoost classifier to predict equipment maintenance requirements from real-time sensor readings. It achieves a 0.72 ROC-AUC and includes an interactive Streamlit dashboard for monitoring and decision support.
- ML-powered predictions -- XGBoost binary classifier trained on the Smart Manufacturing IoT Monitoring Dataset
- Interactive dashboard -- Streamlit UI with live prediction gauge, batch upload, and model insights
- 6 sensor inputs -- Temperature, vibration, humidity, pressure, energy consumption, and anomaly flag
- Batch processing -- Upload CSV files for bulk prediction with downloadable results
- Model interpretability -- Feature importance visualization and model configuration details
# Install dependencies
pip install -r requirements.txt
# Train the model
python train.py
# Launch the dashboard
streamlit run app.pyThe model is trained on the Smart Manufacturing IoT Cloud Monitoring Dataset from Kaggle. The training script (train.py) downloads the dataset automatically via kagglehub.
| Feature | Description | Type |
|---|---|---|
| temperature | Process temperature (Celsius) | Continuous |
| vibration | Machine vibration level | Continuous |
| humidity | Ambient humidity percentage | Continuous |
| pressure | System pressure | Continuous |
| energy_consumption | Power consumption | Continuous |
| anomaly_flag | Anomaly detection flag (0/1) | Binary |
- maintenance_required -- Binary classification: 1 = maintenance needed, 0 = normal operation
python predict.pyUses default sample values and outputs a prediction with probability score.
python predict.py path/to/sensor_data.csvThe CSV must contain all 6 feature columns. Results are printed with Prediction and Probability columns appended.
streamlit run app.pyThe dashboard provides four views:
- Overview -- KPI metrics, feature importance chart, and sensor feature reference
- Predict -- Interactive sliders for each sensor input with a real-time probability gauge
- Batch Predict -- CSV upload with result distribution histogram and download
- Insights -- Feature importance ranking, cumulative importance chart, and model configuration
- ROC-AUC: 0.72
- Algorithm: XGBoost Classifier (300 estimators, max depth 6)
- Dominant feature:
anomaly_flag(96.3% importance) - Class imbalance handling:
scale_pos_weightcomputed from training distribution - Evaluation metric: AUC-PR (Area Under Precision-Recall Curve)
arisense/
app.py Streamlit dashboard
train.py Model training pipeline
predict.py CLI inference script
requirements.txt Python dependencies
pyproject.toml Project metadata and packaging
Makefile Common task runner
artifacts/ Trained model, scaler, and feature columns
docs/ Additional documentation
- Python 3.10+
- Dependencies listed in
requirements.txt - macOS users: install
libompfor XGBoost (brew install libomp)
MIT -- see LICENSE.
Contributions are welcome. See CONTRIBUTING.md for guidelines.