This project leverages machine learning to predict the compressive strength of concrete based on its mix ingredients and age. The model is deployed using a Flask server and a Streamlit client for user interaction. Users can input the mix proportions and get the predicted concrete strength.
- 🔧 Machine Learning Model: Utilizes XGBoost for accurate strength predictions.
- 🌐 Flask Server: Handles backend processes and model inference.
- 📊 Streamlit Client: Provides a user-friendly interface for input and prediction visualization.
- 🔍 Feature Engineering & EDA: Comprehensive Exploratory Data Analysis and feature engineering for improved model performance.
- Install virtual environment using bash:
py -m venv myvenv
- Activate virtual environment:
myvenv\Scripts\activate
- Install pip:
py -m ensurepip --upgrade
- Install
ipykernel
for Jupyter Notebook:pip install ipykernel
- Install all the packages in the terminal after activating the virtual environment:
pip install flask streamlit requests scikit-learn xgboost joblib
- Run the Flask server:
python flask_app.py
- Run the Streamlit frontend:
streamlit run streamlit_app.py
The application takes the following input fields for user data:
-
Cement (kg/m³)
-
Blast Furnace Slag (kg/m³)
-
Fly Ash (kg/m³)
-
Water (kg/m³)
-
Superplasticizer (kg/m³)
-
Coarse Aggregate (kg/m³)
-
Fine Aggregate (kg/m³)
-
Age (kg/m³)
- Enter the mix proportions and age of the concrete.
- Click on the "Predict" button.
- The model will predict and display the compressive strength of the concrete.
Contributions are welcome! Please open an issue or submit a pull request for any improvements or additions.
This project is licensed under the MIT License.