This project focuses on implementing a predictive maintenance system for mining equipment. By leveraging historical data, the model predicts potential failures before they occur, enabling proactive maintenance, reducing downtime, and improving operational efficiency.
Predictive maintenance involves using data analysis tools and techniques to detect anomalies in your operation and possible defects in equipment and processes so you can fix them before they result in failure. The goal is to predict when equipment failure might occur, and to prevent the occurrence of the failure by performing maintenance.
-
data/: Contains all the data used in the project.
- raw/: Raw data files.
equipment_data.csv
: The main dataset used for analysis.
- processed/: Processed data files.
train_data.csv
: Training dataset.test_data.csv
: Testing dataset.scaler.pkl
: Scaler object used for data normalization.
- external/: External data sources.
external_data_source.csv
: Additional data used for analysis.
- raw/: Raw data files.
-
notebooks/: Jupyter notebooks for exploratory data analysis and feature engineering.
eda.ipynb
: Notebook for exploratory data analysis.feature_engineering.ipynb
: Notebook for feature engineering.
-
scripts/: Python scripts for various stages of the project.
__init__.py
: Initialization file for the scripts module.data_preprocessing.py
: Script for data preprocessing.feature_engineering.py
: Script for feature engineering.model_training.py
: Script for training the predictive model.model_evaluation.py
: Script for evaluating the model.main.py
: Main script to run the entire pipeline.
-
models/: Directory to save trained models.
random_forest_model.pkl
: Trained Random Forest model.
-
reports/: Directory for storing reports.
evaluation_report.txt
: Report on model evaluation.
-
logs/: Directory for storing log files.
project.log
: Log file for tracking project execution.
-
utils/: Utility scripts for data loading and saving.
__init__.py
: Initialization file for the utils module.data_loader.py
: Script for loading data.data_saver.py
: Script for saving data.
-
requirements.txt: List of dependencies required to run the project.
-
README.md: This README file.
-
.gitignore: Git ignore file to exclude unnecessary files from version control.
- Data Preprocessing: Clean and preprocess the data.
- Exploratory Data Analysis (EDA): Visualize and understand the data.
- Feature Engineering: Create features for model training.
- Model Training: Train the predictive maintenance model.
- Model Evaluation: Evaluate the model's performance.
- Prediction: Use the model to predict potential failures.
-
Fork this and Clone your repo
-
install the requirements
pip install -r requirements.txt
- jupyter notebook for Exploratory data analysis
jupyter notebook notebooks/eda.ipynb
- train the model
python scripts/model_training.py
- evaluate the model
python scripts/model_evaluation.py
- make predictions
python scripts/main.py
The model used for predictive maintenance is a Random forest classifier. Random forest is chosen due to its robustness and ability to handle large datasets with high dimensionality. The model's performance is evaluated using metrics such as accuracy, precision, recall, and F1 score. The results indicate that the model cam effectively predict potential failures, enabling proactive maintenance.
This project was developed as part of internship training project under South Eastern CoalFields Limited (SECL).