Skip to content

Monish-Nallagondalla/Cement_strength_prediction

Repository files navigation

Cement Strength Prediction

Python MIT License

1. 📜 Description

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.

2. 🏗️ Project Structure

The repository is organized into logical modules for clarity and scalability:

Core Components

  • 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.

Main Files

  • 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).

Detailed Project Structure:

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)

3. 📊 Dataset Overview

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

4. 🚀 Features

  • 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.

5. ⚙️ Installation

Prerequisites

  • Python 3.8 or later
  • Libraries specified in requirements.txt

Steps

  1. Clone the repository:

    git clone https://github.com/Monish-Nallagondalla/Cement_strength_prediction.git
    cd Cement_strength_prediction
  2. Install dependencies:

    pip install -r requirements.txt
  3. Set up the project:

    python setup.py install

6. 📂 Usage

Running the Application

  1. Execute the main application script:
    python application.py
  2. Open your browser and navigate to http://localhost:5000.

Notebooks

  • Analyze data trends in notebooks/eda.ipynb.
  • Train and evaluate models using notebooks/cement_strength.ipynb.

7. 🤝 Contributing

We welcome contributions! Please:

  1. Fork the repository.
  2. Create a feature branch.
  3. Submit a pull request with detailed descriptions.

8. 📝 License

This project is licensed under the MIT License. See the LICENSE file for more information.

9. 📬 Contact

For questions or feedback:

About

The Cement Strength Prediction project uses machine learning to predict the compressive strength of cement based on its components, such as Cement, Fly Ash, Water, Superplasticizer, Coarse Aggregate, Fine Aggregate, and Age. The goal is to forecast compressive strength (MPa) for optimized cement production and quality control.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages