diff --git a/README.md b/README.md index 08a47f7..195033f 100644 --- a/README.md +++ b/README.md @@ -1,100 +1,161 @@ -# Predicting-Student-Performance-Using-Machine-Learning +# πŸŽ“ Predicting Student Performance Using Machine Learning -This project aims to predict student performance based on various factors such as gender, ethnicity, parental level of education, lunch type, test preparation course, and exam scores. The machine learning model trained on a dataset of student information can provide insights into predicting a student's performance in mathematics. +This project uses **machine learning** to predict how well a student might perform in **math**, based on information like their gender, ethnicity, parents' education, lunch type, and whether they took a test prep course. -## Table of Contents -- [Introduction](#introduction) -- [Features](#features) -- [Installation](#installation) -- [Usage](#usage) -- [Dataset](#dataset) -- [Model Training](#model-training) -- [Results](#results) -- [Contributing](#contributing) -- [License](#license) -- [Project Structure](#project-structure) -- [Author](#author) +It's a great example of how data and ML can help us understand and improve education! -## Introduction +--- -In today's educational landscape, understanding the factors that contribute to a student's academic performance is crucial for educators, parents, and policymakers. This project leverages machine learning techniques to predict a student's performance in mathematics based on various factors. By providing accurate predictions, this tool can help identify students who may need additional support and tailor educational strategies accordingly. +## πŸ“š Table of Contents -**Note: This Project is for Educational Purposes Only** +* [πŸ“Œ Introduction](#introduction) +* [✨ Features](#features) +* [βš™οΈ Installation](#installation) +* [πŸš€ How to Use](#how-to-use) +* [πŸ“Š Dataset](#dataset) +* [🧠 Model Training](#model-training) +* [πŸ“ˆ Results](#results) +* [🀝 Contributing](#contributing) +* [πŸ“„ License](#license) +* [πŸ“ Project Structure](#project-structure) +* [πŸ‘¨β€πŸ’» Author](#author) -The Student Exam Performance Predictor project is developed for educational purposes to showcase the application of machine learning techniques in predicting student performance. The results obtained from this project are based on a specific dataset and machine learning model, and should not be considered as definitive or accurate predictions for real-world scenarios. The primary goal of this project is to demonstrate the end-to-end process of developing a machine learning model and provide insights into the factors influencing student performance. +--- +## πŸ“Œ Introduction -## Features -- Predicts student performance in mathematics based on multiple factors. -- Provides insights into the influence of gender, ethnicity, parental level of education, lunch type, and test preparation course on student performance. -- User-friendly interface for inputting student information and obtaining predictions. +In education, it's important to know what helps students succeed. This project uses a **machine learning model** to predict a student's math performance based on several factors. -## Installation +The idea is to show how we can apply machine learning to solve real-world problems in education and possibly identify students who need extra help. -1. Clone the repository: `git clone https://github.com/skprasad117/Predicting-Student-Performance-Using-Machine-Learning.git` -2. Navigate to the project directory: `cd Predicting-Student-Performance-Using-Machine-Learning` -3. Install the required dependencies: `pip install -r requirements.txt` +> ⚠️ **Note:** This project is for **educational purposes only**. The predictions should not be used to make real decisions about students. -## Usage +--- -1. Run the application: `python app.py` -2. Access the web interface in your browser at `http://localhost:5000` -3. Fill in the student information and submit the form to obtain the predicted math score. +## ✨ Features -## Dataset +* Predicts a student’s math score using input data. +* Considers multiple factors like gender, parental education, and test prep. +* Simple and user-friendly web interface to test predictions. -The dataset used for training the machine learning model is sourced from [Kaggle - Students Performance in Exams](https://www.kaggle.com/datasets/spscientist/students-performance-in-exams?datasetId=74977). It contains information about students' demographics, parental education, lunch type, test preparation course, and their corresponding math scores. +--- -## Model Training +## βš™οΈ Installation -The machine learning model is trained using a supervised learning algorithm, such as a decision tree or random forest, to predict the math score based on the input features. The dataset is split into training and testing sets to evaluate the model's performance. +To run this project on your computer, follow these steps: -## Results +1. **Clone the repo:** -The trained model achieved an accuracy of 85% in predicting student performance in mathematics. The results demonstrate the significant impact of factors such as parental education, test preparation course, and lunch type on student scores. + ```bash + git clone https://github.com/skprasad117/Predicting-Student-Performance-Using-Machine-Learning.git + ``` -## Contributing +2. **Go to the project folder:** -Contributions are welcome! If you have any ideas, suggestions, or bug reports, please open an issue or submit a pull request. + ```bash + cd Predicting-Student-Performance-Using-Machine-Learning + ``` -## License +3. **Install required packages:** -This project is licensed under the [MIT License](LICENSE). + ```bash + pip install -r requirements.txt + ``` -## Project Structure +--- -The project has the following structure: - - β”œβ”€β”€β”€artifacts - β”œβ”€β”€β”€catboost_info - β”‚ └───learn - β”œβ”€β”€β”€Notebook - β”‚ └───data - β”œβ”€β”€β”€src - β”‚ β”œβ”€β”€β”€components - β”‚ └───pipeline - β”œβ”€β”€β”€static - β”‚ └───css - └───templates +## πŸš€ How to Use -- `artifacts`: This directory contains artifacts generated during the model training process. -- `catboost_info`: This directory stores CatBoost model information. -- `Notebook`: This directory contains notebooks used for data exploration and analysis. -- `src`: This directory contains the source code for the project. - - `components`: This directory contains components and modules used in the project. - - `pipeline`: This directory contains code related to the data processing and model training pipeline. -- `static`: This directory contains static files used in the web application. - - `css`: This directory contains CSS files for styling the web application. -- `templates`: This directory contains HTML templates used in the web application. +Once everything is set up, follow these steps to run the app: -## Author -Sanjay Kumar Prasad, You can also visit my GitHub profile: @skprasad117 +1. **Start the app:** -Feel free to reach out with any questions or feedback regarding the project. + ```bash + python app.py + ``` +2. **Open your browser and go to:** + ``` + http://localhost:5000 + ``` +3. **Fill in the form with student details**, and the app will show the predicted math score. +--- +## πŸ“Š Dataset +The model is trained using the dataset from Kaggle: +πŸ”— [Students Performance in Exams - Kaggle](https://www.kaggle.com/datasets/spscientist/students-performance-in-exams?datasetId=74977) + +This dataset includes: + +* Gender +* Race/ethnicity +* Parental level of education +* Lunch type (standard or free/reduced) +* Test preparation course (completed or not) +* Math, reading, and writing scores + +--- + +## 🧠 Model Training + +* The model uses **supervised learning** algorithms (like decision trees or random forests). +* The data is split into **training and testing sets** to measure performance. +* The goal is to **predict the math score** based on the input features. + +--- + +## πŸ“ˆ Results + +* The model achieved around **85% accuracy**. +* Features like **parental education**, **test preparation**, and **lunch type** had a strong impact on scores. + +--- + +## 🀝 Contributing + +Want to improve the project? Found a bug? Feel free to: + +* Open an issue +* Submit a pull request + +All contributions are welcome! + +--- + +## πŸ“„ License + +This project is open-source and licensed under the [MIT License](LICENSE). + +--- + +## πŸ“ Project Structure + +Here's what the project looks like inside: + +``` +β”œβ”€β”€ artifacts/ # Model artifacts after training +β”œβ”€β”€ catboost_info/ # Info from CatBoost (if used) +β”œβ”€β”€ Notebook/ # Jupyter notebooks and data exploration +β”‚ └── data/ +β”œβ”€β”€ src/ # Project source code +β”‚ β”œβ”€β”€ components/ # ML model components +β”‚ └── pipeline/ # Data processing & training pipeline +β”œβ”€β”€ static/ # Front-end styling (CSS, images) +β”‚ └── css/ +└── templates/ # HTML templates for the web interface +``` + +--- + +## πŸ‘¨β€πŸ’» Author + +**Sanjay Kumar Prasad** + +GitHub: [@skprasad117](https://github.com/skprasad117) + +Feel free to reach out with questions, suggestions, or feedback!