Spaces:
Build error
Build error
| title: Predictive Maintenance System | |
| emoji: 🔧 | |
| colorFrom: blue | |
| colorTo: green | |
| sdk: streamlit | |
| sdk_version: 1.29.0 | |
| app_file: app.py | |
| pinned: false | |
| # Predictive Maintenance System - AI4I 2020 Dataset | |
| ## Project Overview | |
| This project implements a comprehensive predictive maintenance system using machine learning to predict when industrial machinery needs maintenance. The system analyzes the AI4I 2020 Predictive Maintenance Dataset and provides interactive visualizations and real-time predictions through a Streamlit web application. | |
| ## Features | |
| - **Comprehensive EDA**: 15+ different exploratory data analyses | |
| - **Machine Learning Model**: Random Forest Classifier for failure prediction | |
| - **Real-time Predictions**: Interactive interface for runtime predictions | |
| - **Maintenance Scheduling**: Estimates time to failure and maintenance urgency | |
| - **Interactive Visualizations**: Dynamic charts and graphs using Plotly | |
| - **Batch Processing**: Upload CSV files for batch predictions | |
| ## Dataset | |
| The AI4I 2020 Predictive Maintenance Dataset contains: | |
| - **10,000 machine records** | |
| - **14 features** including temperature, rotational speed, torque, and tool wear | |
| - **Binary target**: Machine failure (0 = no failure, 1 = failure) | |
| - **5 failure types**: TWF, HDF, PWF, OSF, RNF | |
| ## Project Structure | |
| ``` | |
| project/ | |
| ├── ai4i2020.csv # Dataset file | |
| ├── analysis.py # EDA analysis script | |
| ├── preprocessing.py # Data preprocessing module | |
| ├── model.py # Machine learning model | |
| ├── train_model.py # Script to train and save model | |
| ├── app.py # Streamlit web application | |
| └── README.md # Project documentation | |
| ``` | |
| ## Installation | |
| 1. **Clone or download the project** | |
| 2. **Install dependencies** (requirements listed below): | |
| ```bash | |
| pip install pandas==2.1.4 numpy==1.26.2 matplotlib==3.8.2 seaborn==0.13.0 scikit-learn==1.4.0 streamlit==1.29.0 plotly==5.18.0 | |
| ``` | |
| 3. **Ensure the dataset file (`ai4i2020.csv`) is in the project directory** | |
| ## Usage | |
| ### Option 1: Run Streamlit App Directly (Recommended) | |
| The app will train the model automatically on first run: | |
| ```bash | |
| streamlit run app.py | |
| ``` | |
| ### Option 2: Train Model First, Then Run App | |
| 1. **Train the model**: | |
| ```bash | |
| python train_model.py | |
| ``` | |
| 2. **Run the Streamlit app**: | |
| ```bash | |
| streamlit run app.py | |
| ``` | |
| ### Option 3: Run EDA Analysis Only | |
| ```bash | |
| python analysis.py | |
| ``` | |
| ## Streamlit Application | |
| The web application includes four main sections: | |
| ### 1. Introduction | |
| - Dataset overview and statistics | |
| - Project goals and features | |
| - Dataset preview | |
| ### 2. Exploratory Data Analysis | |
| Interactive visualizations including: | |
| - Summary statistics | |
| - Target distribution | |
| - Feature distributions | |
| - Correlation analysis | |
| - Failure analysis by machine type | |
| - Tool wear analysis | |
| - Temperature analysis | |
| - Outlier detection | |
| - Pairwise relationships | |
| - Failure type breakdown | |
| ### 3. Model & Predictions | |
| - Model performance metrics | |
| - Feature importance visualization | |
| - **Runtime prediction**: Enter machine parameters to predict maintenance needs | |
| - **Batch prediction**: Upload CSV file for multiple predictions | |
| - Maintenance urgency assessment | |
| - Time-to-failure estimation | |
| ### 4. Conclusion | |
| - Key findings and takeaways | |
| - Applications and future improvements | |
| ## EDA Analyses Performed | |
| 1. Summary statistics (mean, median, mode, etc.) | |
| 2. Missing value analysis | |
| 3. Data types and unique value counts | |
| 4. Target variable distribution | |
| 5. Correlation analysis | |
| 6. Outlier detection (IQR method) | |
| 7. Feature distribution analysis | |
| 8. Failure analysis by machine type | |
| 9. Tool wear analysis | |
| 10. Temperature analysis | |
| 11. Power and rotational speed analysis | |
| 12. Pairwise feature relationships | |
| 13. Detailed failure type analysis | |
| 14. Time to failure estimation | |
| 15. Grouped aggregations | |
| ## Machine Learning Model | |
| - **Algorithm**: Random Forest Classifier | |
| - **Features**: 11 engineered features including: | |
| - Air temperature, Process temperature | |
| - Rotational speed, Torque | |
| - Tool wear | |
| - Temperature difference | |
| - Power | |
| - Machine type encoding | |
| - **Evaluation Metrics**: | |
| - Accuracy | |
| - Precision | |
| - Recall | |
| - F1-Score | |
| - ROC-AUC | |
| ## Predictive Features | |
| The model predicts: | |
| 1. **Machine Failure**: Binary prediction (Yes/No) | |
| 2. **Failure Probability**: Probability score (0-1) | |
| 3. **Time to Failure**: Estimated minutes until maintenance needed | |
| 4. **Maintenance Status**: Current maintenance requirement status | |
| 5. **Maintenance Urgency**: CRITICAL, HIGH, MEDIUM, or LOW | |
| ## Runtime Prediction | |
| Users can input machine parameters: | |
| - Machine Type (L, M, H) | |
| - Air Temperature (K) | |
| - Process Temperature (K) | |
| - Rotational Speed (rpm) | |
| - Torque (Nm) | |
| - Tool Wear (minutes) | |
| The system provides: | |
| - Failure prediction | |
| - Maintenance urgency level | |
| - Estimated time to failure | |
| - Detailed recommendations | |
| ## Technical Stack | |
| - **Python 3.8+** | |
| - **Data Processing**: Pandas, NumPy | |
| - **Visualization**: Matplotlib, Seaborn, Plotly | |
| - **Machine Learning**: Scikit-learn | |
| - **Web Framework**: Streamlit | |
| ## Key Insights | |
| 1. **Tool wear** is the most critical indicator of machine health | |
| 2. **Temperature difference** between process and air temperature correlates with failures | |
| 3. Machine **type affects failure rates** differently | |
| 4. Early detection can **prevent costly downtime** | |
| 5. Proactive maintenance scheduling can **optimize operations** | |
| ## Applications | |
| - Industrial manufacturing | |
| - Equipment monitoring systems | |
| - Preventive maintenance scheduling | |
| - Cost reduction through failure prevention | |
| - Production optimization | |
| ## Future Enhancements | |
| 1. Real-time data streaming integration | |
| 2. IoT sensor integration | |
| 3. Advanced ensemble methods | |
| 4. Time-series analysis | |
| 5. Automated alert system | |
| 6. Historical maintenance record integration | |
| ## Author | |
| Developed as part of the Introduction to Data Science course project. | |
| ## License | |
| This project is for educational purposes. | |
| ## Acknowledgments | |
| - AI4I 2020 Predictive Maintenance Dataset | |
| - Scikit-learn documentation | |
| - Streamlit documentation | |
| --- | |
| **Note**: Make sure the `ai4i2020.csv` file is in the same directory as the scripts before running the application. |