This project is an end-to-end machine learning solution designed to predict student performance using key features like parents' education, lunch type, race/ethnicity, and reading and writing scores. The repository includes exploratory data analysis (EDA), model training, and a Flask-based web application for real-time predictions. The project is built using modular programming for clean, maintainable code and deployed using AWS Elastic Beanstalk and CodePipeline.
notebook/
: Jupyter notebooks for EDA and model training.src/
: Source code for data preprocessing, model building, and evaluation.templates/
: HTML templates for the web application.app.py
: Flask application script for deployment.requirements.txt
: Dependencies list.setup.py
: Script for setting up the package.
- Python: Core programming language for the project.
- Pandas & NumPy: Data manipulation and analysis.
- Matplotlib & Seaborn: Data visualization.
- Scikit-learn: Machine learning model building and evaluation.
- Flask: Web framework for deploying the model.
- AWS Elastic Beanstalk & CodePipeline: Deployment of the web application
- Jupyter Notebook: Interactive environment for EDA and model training.
-
Exploratory Data Analysis:
- Comprehensive data exploration with visualizations.
- Key insights into factors affecting student performance.
-
Model Training:
- Custom-built modules for data preprocessing and model evaluation.
- Implementation of machine learning algorithms to predict outcomes.
-
Deployment:
- Flask-based web application allowing real-time predictions.
- Deployed using AWS Elastic Beanstalk and CodePipeline.
- Clone the repository:
git clone https://github.com/altamashajaz/Student-Performance-Predictor.git
- Install dependencies:
cd Student-Performance-Predictor
pip install -r requirements.txt
- Run the application:
python app.py
- Explore the dataset using the EDA notebook to identify key factors.
- Train the model using the training notebook and customize it as needed.
- Deploy the model using app.py and interact with the web interface to predict student performance.
- Data Preprocessing: Handles missing data, feature engineering, and normalization.
- Model Training & Evaluation: Implements multiple ML models with cross-validation.
- Web Interface: Flask app for user input and model predictions.
You can access the live application here.
This project is licensed under the MIT License.
Contributions are welcome! Please submit a pull request or open an issue to discuss any changes.
For any queries or issues, please contact Altamash Ajaz.