Skip to content

Latest commit

 

History

History
87 lines (64 loc) · 2.86 KB

File metadata and controls

87 lines (64 loc) · 2.86 KB

First end-to-end machine learning project

Project Overview

This project aims to predict students' exam performance based on various factors such as gender, parental education, and preparation courses. The pipeline includes:

  • Data preprocessing and exploratory data analysis (EDA).
  • Model training and hyperparameter tuning.
  • Deployment of the trained model for inference.

The project provides an interactive web interface for users to input data and receive predictions about student performance.


Technologies Used

  • Programming Language: Python
  • Libraries: pandas, numpy, scikit-learn, Flask, dill
  • Model Evaluation: R2 Score, Hyperparameter Tuning with GridSearchCV
  • Deployment: Elastic Beanstalk configuration for deployment

Key Features

  • End-to-End Pipeline: Covers data collection, preprocessing, model training, evaluation, and deployment.
  • Hyperparameter Tuning: Uses GridSearchCV for optimizing model performance.
  • Custom Exception Handling: Implements a robust error-handling framework for debugging.
  • Interactive Web UI: A user-friendly interface built with Flask for making predictions.
  • Logging and Monitoring: Logs critical events for better traceability and debugging.

Project Structure

Here’s a brief overview of the project structure:

.
├── src
│   ├── utils.py                 # Utility functions (save/load objects, evaluate models)
│   ├── logger.py                # Logging setup
│   ├── exception.py             # Custom exceptions
│   ├── pipeline
│       ├── predict_pipeline.py  # Prediction pipeline for input data
│       ├── train_pipeline.py    # Training pipeline (not shown in file list)
├── notebook
│   ├── student_performace_EDA.ipynb  # Exploratory data analysis notebook
│   ├── data
│       ├── stud.csv             # Raw dataset
├── templates
│   ├── home.html                # Web interface for predictions
│   ├── index.html               # Placeholder page for training status
├── app.py                       # Flask application entry point
├── requirements.txt             # Python dependencies

Installation

Follow these steps to set up the project locally:

  1. Clone the repository:

    git clone https://github.com/pycoder49/first_e2eMLproject.git
    cd first_e2eMLproject
  2. Install dependencies:

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

    python app.py
  4. Access the web application at http://127.0.0.1:5000.


Usage

Once the Flask application is running, follow these steps:

  1. Input student details such as gender, ethnicity, parental education, etc., through the web form.
  2. Click the "Predict" button to generate predictions for student performance in exams.