Skip to content

abhinavyy/Student-Exam-Performance-Indicator

Repository files navigation

End to End Ml project

Student Exam Performance Indicator

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.


Key Features:

  • 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.

Project Structure:

  • 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.

Technologies Used:

  • 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.

How to Run:

  1. Clone the repository to your local machine:

    git clone <repository-url>
  2. Install the required dependencies:

    pip install -r requirements.txt
  3. Run the Flask application:

    python app.py
    or you can run
    python application.py
  4. Access the web interface:

  5. Input data and get predictions:

    • On the home.html page, fill in the required fields and submit the form to get predictions.

Future Improvements:

  • 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.

About

This project is a machine learning application built to predict students' exam performance based on various demographic and academic features.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors