A machine learning project focused on predicting students’ math performance scores using demographic, academic, and socio-economic features. The project includes the full workflow — from data exploration and preprocessing to model training, evaluation, and deployment through a simple web application.
This project predicts student math scores based on features such as study habits, parental education levels, test preparation, and other academic indicators. It demonstrates:
- Feature engineering for educational datasets
- Model training and hyperparameter tuning
- Evaluation using regression metrics
- Saving trained models and transformers
- Deployment through a Flask web application
- Modular ML codebase inside
src/ - EDA and model experimentation inside
notebook/ - Automatic storage of model artifacts
- Web-based prediction interface
- Easy installation via
setup.py - Reproducible environment with
requirements.txt
mlproject/
├── artifacts/ # Stores trained models, logs, and outputs
├── catboost_info/ # CatBoost training metadata
├── notebook/ # Jupyter notebooks for exploration and experiments
├── src/ # ML pipeline modules
│ ├── data/ # Data loading & preprocessing
│ ├── features/ # Feature engineering
│ ├── modeling/ # Training, evaluation, model building
│ ├── utils/ # Helper utilities
│ └── ...
├── templates/ # HTML templates for the web app (if applicable)
├── application.py # Main web application
├── setup.py # Package configuration
├── requirements.txt # Python dependencies
├── README.md # Project documentation
└── .gitignore # Ignored files
Follow these steps to set up and run the project.
- Python 3.7+
- (Optional) Virtual environment
git clone https://github.com/ASHMEET555/mlproject.git
cd mlproject
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txtTo start the web interface:
python application.pyThen visit the local URL shown in the terminal (e.g., http://127.0.0.1:5000).
- Use notebooks in
notebook/for EDA and training. - Trained model artifacts are stored in
artifacts/. application.pyloads the model pipeline and exposes a UI/API.- Extend the pipeline by modifying modules inside
src/.
- Python
- CatBoost / Sklearn (as used in the notebooks and pipeline)
- Flask / Web framework for UI
- Jupyter Notebooks
Contributions are welcome! To contribute:
- Fork the repository
- Create a new branch (
feature-xyz) - Commit your changes
- Push and open a Pull Request
This project is licensed under the MIT License.
Author: Ashmeet GitHub: ASHMEET555
If you'd like badges, screenshots, or improvements to this README, feel free to ask!