Project Overview:
This project is a machine learning application built to predict students' exam performance based on various demographic and academic features. The goal is to help educational institutions, parents, and students themselves understand the factors influencing exam scores and make data-driven decisions to improve performance.
The application takes inputs such as gender, ethnicity, parental education level, lunch type, test preparation course completion, and individual writing and reading scores to predict the overall exam score. This system aims to provide actionable insights into student performance using predictive analytics.
- User-Friendly Web Interface: A Flask-based web application where users can input their data (e.g., gender, ethnicity, scores) to receive predictions about exam performance.
- Model Prediction: The backend employs a trained machine learning model to predict students' performance, leveraging a variety of features.
- Data Preprocessing: The pipeline includes data transformation and scaling to ensure accurate predictions.
src/: Contains the main application code.components/:data_ingestion.py: Responsible for loading and preprocessing input data.data_transformation.py: Handles transformations and scaling of the input data.model_trainer.py: Trains the predictive model on the processed data.
pipeline/:predict_pipeline.py: Runs the model prediction pipeline.
utils.py: Contains utility functions for handling data and logs.exception.py: Defines custom exceptions for error handling.logger.py: Manages logging for debugging and monitoring purposes.
templates/: HTML templates for the Flask frontend.home.html: The main form for inputting student data and viewing predictions.
app.py: The entry point for the Flask application, which serves the web interface.application.py: Manages configuration settings for the application.requirements.txt: Lists all Python dependencies required for the project.README.md: Documentation providing an overview of the project, setup instructions, and usage.setup.py: Script for setting up the project as a Python package.uninstall_packages.py: Removes unnecessary packages.
- Flask: For building the web application.
- scikit-learn: For machine learning model training and prediction.
- pandas: For data handling and processing.
- HTML/CSS: For building the frontend.
- Git: For version control.
-
Clone the repository to your local machine:
git clone <repository-url>
-
Install the required dependencies:
pip install -r requirements.txt
-
Run the Flask application:
python app.py or you can run python application.py
-
Access the web interface:
- Open your browser and navigate to:
http://127.0.0.1:5000/for theindex.htmlpage.http://127.0.0.1:5000/predictdatafor thehome.htmlpage.
- Open your browser and navigate to:
-
Input data and get predictions:
- On the
home.htmlpage, fill in the required fields and submit the form to get predictions.
- On the
- Enhanced Model: Implementing more advanced models for better accuracy.
- Additional Features: Adding more demographic and academic features for comprehensive predictions.
- Performance Optimization: Improving the prediction speed and scalability for large datasets.