
Concrete Strength Prediction App: End-to-End ML Application
During this project, I built a complete machine learning application that predicts the compressive strength of concrete based on its mix components.
The system consists of three connected parts:
🧩 Model Training – Using Python and Scikit-Learn, I analyzed the UCI Concrete Strength Dataset ↗, compared several regression models (Ridge, MLP, Random Forest), and built a reproducible pipeline with feature transformations, cross-validation, and hyperparameter tuning.
The final model — a Random Forest Regressor — achieved an R² of about 0.91.
⚙️ API Service – I then created a FastAPI endpoint that loads the trained model and returns predictions via a /predict route. The service runs inside a Docker container on Google Cloud Run, with an integrated API key for secure access.
💻 User Interface – Finally, I built a Streamlit web app where users can enter up to three different concrete mixes and instantly compare their predicted strengths. The app communicates with the FastAPI backend through HTTPS requests and is also deployed as a Docker container on Google Cloud Run.
🟢 Live app: Concrete Strength Comparator ↗
📁 GitHub Repositories: