This project predicts the compressive strength of concrete based on its components and other factors. Using a dataset containing detailed information about cement mixtures and their curing age, the project employs machine learning models to optimize predictions and aid in quality assurance and material selection for concrete production.
The repository is organized into logical modules for clarity and scalability:
config/: Configuration files for model settings and data schema.src/: Source code for the application, including components for data handling and pipelines.templates/: HTML templates for the web app.
application.py: Main application script to run the project.cement_data.csv: Dataset for training and evaluation.requirements.txt: Python dependencies.setup.py: Setup script for package installation.LICENSE: Licensing information.README.md: Documentation file (this file).
Cement_strength_prediction/
│
├── config/ # Configuration files
│ ├── model.yaml # Model hyperparameters and settings
│ └── schema.yaml # Data schema specifications
│
├── notebooks/ # Jupyter notebooks for exploration and modeling
│ ├── cementStrength.ipynb
│ ├── cement_strength.ipynb
│ ├── cement_strength_prediction copy.ipynb
│ └── eda.ipynb
│
├── src/ # Source code for the application
│ ├── components/ # Core components for data handling and modeling
│ │ ├── __init__.py
│ │ ├── data_ingestion.py
│ │ ├── data_transformation.py
│ │ └── model_trainer.py
│ ├── pipelines/ # Training and prediction pipelines
│ │ ├── __init__.py
│ │ ├── prediction_pipeline.py
│ │ └── training_pipeline.py
│ ├── exception.py # Custom error handling
│ ├── logger.py # Logging utility
│ └── utils.py # Helper functions
│
├── templates/ # HTML templates for the web app
│ ├── index.html # Main web page
│ └── upload_file.html # File upload interface
│
├── application.py # Main application script
├── cement_data.csv # Dataset for training and evaluation
├── LICENSE # Licensing information
├── requirements.txt # Python dependencies
├── setup.py # Setup script for package installation
└── README.md # Documentation (this file)
The dataset comprises concrete mix details and their corresponding compressive strength measurements (in MPa).
Key features:
- Cement (kg in a m³ mixture): Amount of cement used.
- Blast Furnace Slag (kg in a m³ mixture): Quantity of slag.
- Fly Ash (kg in a m³ mixture): Quantity of fly ash.
- Water (kg in a m³ mixture): Amount of water in the mixture.
- Superplasticizer (kg in a m³ mixture): Quantity of plasticizer used.
- Coarse Aggregate (kg in a m³ mixture): Amount of coarse aggregates.
- Fine Aggregate (kg in a m³ mixture): Amount of fine aggregates.
- Age (days): Curing period of the concrete sample.
- Concrete compressive strength (MPa): The target variable, measuring the strength of the concrete.
Sample data:
| Cement | Slag | Fly Ash | Water | Superplasticizer | Coarse Aggregate | Fine Aggregate | Age | Strength (MPa) |
|---|---|---|---|---|---|---|---|---|
| 540.0 | 0.0 | 0.0 | 162.0 | 2.5 | 1040.0 | 676.0 | 28 | 79.99 |
- Data Analysis: Comprehensive exploratory data analysis (EDA) to identify patterns and relationships.
- Model Training: Machine learning pipelines to predict concrete strength.
- Web Application: An intuitive interface for data input and predictions.
- Customizable Configurations: YAML-based configurations for models and data schema.
- Python 3.8 or later
- Libraries specified in
requirements.txt
-
Clone the repository:
git clone https://github.com/Monish-Nallagondalla/Cement_strength_prediction.git cd Cement_strength_prediction -
Install dependencies:
pip install -r requirements.txt
-
Set up the project:
python setup.py install
- Execute the main application script:
python application.py
- Open your browser and navigate to
http://localhost:5000.
- Analyze data trends in
notebooks/eda.ipynb. - Train and evaluate models using
notebooks/cement_strength.ipynb.
We welcome contributions! Please:
- Fork the repository.
- Create a feature branch.
- Submit a pull request with detailed descriptions.
This project is licensed under the MIT License. See the LICENSE file for more information.
For questions or feedback:
- GitHub: Monish-Nallagondalla
- Email: [nsmonish@gmail.com]