Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
193 changes: 127 additions & 66 deletions README.md
Original file line number Diff line number Diff line change
@@ -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!