Skip to content

AHVijay/mlprojects

Repository files navigation

🎯 Student Exam Performance Indicator

This project aims to predict students' math scores based on various factors such as gender, ethnicity, parental education, lunch type, and test preparation course. 📊 By analyzing the dataset and training machine learning models, the project provides insights into how these factors influence student performance.


❓ Problem Statement

The goal of this project is to understand how students' performance (test scores) is affected by other variables such as:

  • 👦👧 Gender
  • 🌎 Ethnicity
  • 🎓 Parental level of education
  • 🍱 Lunch type
  • 📚 Test preparation course

It also aims to build a machine learning model to predict math scores based on these factors.


📂 Dataset

  • Source: Kaggle - Students Performance in Exams
  • Description: The dataset contains 1000 rows and 8 columns:
    • gender: Gender of the student (Male/Female)
    • race/ethnicity: Ethnicity of the student (Group A, B, C, D, E)
    • parental level of education: Parents' final education level
    • lunch: Type of lunch before the test (Standard/Free or Reduced)
    • test preparation course: Completion status of the test prep course
    • math score: Math test score
    • reading score: Reading test score
    • writing score: Writing test score

🔁 Project Workflow

1. 🧪 Exploratory Data Analysis (EDA)

  • Cleaned data, visualized patterns, and gathered insights:
    • ✅ Standard lunch improves performance
    • 👩‍🎓 Female students perform better overall, except in math
    • ✅ Test prep course boosts scores

2. 🧼 Data Preprocessing

  • Encoded categorical features with OneHotEncoder
  • Scaled numerical data with StandardScaler
  • Split the data into training and testing sets

3. 🤖 Model Training

  • Trained multiple regression models:
    • Linear Regression
    • Decision Tree Regressor
    • Random Forest Regressor 🌲
    • XGBoost, CatBoost, AdaBoost
  • Evaluated using:
    • MAE, RMSE, and R² Score 📈

4. 🚀 Deployment

  • Built a Flask web app for predictions
  • Deployed on AWS Elastic Beanstalk 🌐

🛠️ Installation

git clone https://github.com/your-username/student-performance-indicator.git
cd student-performance-indicator
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt
python app.py

🌍 Usage

  1. Open your browser at http://127.0.0.1:5000
  2. Fill in the form with student details
  3. Click "Predict Your Math Score" to get results 🎯

📁 Project Structure

mlprojects/
├── app.py
├── src/
│   ├── pipeline/
│   │   ├── predict_pipeline.py
│   │   └── train_pipeline.py
│   ├── utils.py
│   └── exception.py
├── notebook/
│   ├── 1. EDA STUDENT PERFORMANCE.ipynb
│   ├── 2. MODEL TRAINING.ipynb
├── templates/
│   ├── index.html
│   ├── home.html
├── artifacts/
├── data/
│   └── stud.csv
├── requirements.txt
└── README.md

🏆 Results

  • Best Model: Random Forest Regressor 🌲
  • R² Score: 0.92 on test data 🚀

🧰 Technologies Used

  • Language: Python 🐍
  • Libraries:
    • 📊 Pandas, NumPy
    • 📈 Matplotlib, Seaborn
    • 🤖 Scikit-learn, XGBoost, CatBoost
  • Web: Flask 🌐
  • Deployment: AWS Elastic Beanstalk ☁️

🔮 Future Enhancements

  • Add more features to boost accuracy ⚙️
  • Dockerize and deploy with Kubernetes 🐳
  • Try more ML models and ensembles

👤 Author

Vijayakumar
💬 Feel free to reach out for questions or suggestions!


📝 License

This project is licensed under the MIT License. See the LICENSE file for details.

About

Student Performance Indicator

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages