Skip to content

Repository files navigation

🎓 Student Math Score Prediction (End-to-End ML + MLOps)

Python scikit-learn MLflow Streamlit License

An end-to-end Machine Learning and MLOps-style project for predicting student math performance using multiple regression models, experiment tracking with MLflow + DagsHub, and deployment via Streamlit.


🚀 Project Overview

This project builds a regression system that predicts Math Score using demographic and academic features.
It demonstrates real-world ML engineering practices including:

  • Modular ML pipeline design\
  • Multi-model benchmarking\
  • Hyperparameter tuning\
  • Experiment tracking with MLflow\
  • SHAP-based interpretability\
  • Production-ready Streamlit deployment

🧠 Key Features

  • ✅ Modular ML pipeline architecture\
  • ✅ Comparison of 8 regression algorithms\
  • ✅ Hyperparameter tuning\
  • ✅ MLflow experiment tracking\
  • ✅ DagsHub integration\
  • ✅ SHAP model interpretability\
  • ✅ Training--serving consistency via full sklearn Pipeline\
  • ✅ Streamlit web app for real-time predictions

🏗 Project Workflow

Data Ingestion

Data Transformation (ColumnTransformer)

Model Benchmarking & Tuning

Best Model Selection

MLflow Logging

SHAP Interpretability

Streamlit Deployment


📂 Project Structure

├── artifacts/
│   ├── model.pkl
│   ├── model_comparison.csv
│   └── shap_summary.png
│
├── src/DataScienceProject/
│   ├── components/
│   │   ├── data_ingestion.py
│   │   ├── data_transformation.py
│   │   └── model_trainer.py
│   ├── utils.py
│   ├── logger.py
│   └── exception.py
│
├── streamlit_app.py
├── main.py
├── requirements.txt
└── README.md

📊 Dataset

Based on the Students Performance Dataset.

Target Variable

math_score


🤖 Models Evaluated

  • Linear Regression\
  • K-Nearest Neighbors\
  • Decision Tree\
  • Random Forest\
  • Gradient Boosting\
  • AdaBoost\
  • XGBoost\
  • CatBoost

Best model selected based on R² Score.


📈 Evaluation Metrics

  • RMSE\
  • MAE\
  • R² Score

🌐 Streamlit Deployment

Run locally with:

streamlit run streamlit_app.py

Open browser at:

http://localhost:8501

🌐 Live Demo

👉 https://studentmarksdsproject.streamlit.app/


⚙️ Tech Stack

  • Python\
  • scikit-learn\
  • XGBoost\
  • CatBoost\
  • MLflow\
  • DagsHub\
  • SHAP\
  • Streamlit\
  • Pandas\
  • NumPy

👨‍💻 Author

Ayush Mishra\


⭐ If you found this project useful, consider giving it a star!

About

End-to-end Machine Learning + MLOps project for predicting student math scores using multiple regression models, MLflow experiment tracking, SHAP interpretability, and Streamlit deployment.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages