Skip to content

Repository files navigation

Student_Performance_Predictor

This repository is a comprehensive machine learning project designed to demonstrate a complete ML pipeline, from data processing and model training to deployment via a web application. The project structure and scripts enable modular development and easy extension.

Features

  • End-to-End Machine Learning Pipeline:
    Modular code for data ingestion, cleaning, feature engineering, model training, evaluation, and prediction.

  • Web Application Deployment:
    A Flask-based web app (application.py) allows users to interact with the trained model and make predictions via a browser interface.

  • Exception Handling and Logging:
    Custom modules for robust error handling (src/exception.py) and detailed logging (src/logger.py) to ensure maintainability and traceability.

  • Reusable Utilities:
    Utility functions in src/utils.py for common tasks such as data transformation, file I/O, and model persistence.

  • Component-based Design:
    The src/components directory is intended for modular pipeline components (e.g., data loader, transformer, trainer).

  • Pipeline Management:
    The src/pipeline directory contains scripts for orchestrating the ML workflow stages.

  • Artifacts and Model Outputs:
    Trained models, preprocessing objects, and other outputs are stored in the artifacts directory for reproducibility and easy deployment.

  • Experiment Tracking:
    The catboost_info directory is used to log CatBoost model training details.

  • Interactive Notebooks:
    The notebook directory contains Jupyter notebooks for data analysis, prototyping, and exploratory data analysis (EDA).

  • Custom Templates:
    The templates directory contains HTML files for the web application's frontend.

Project Structure

├── .ebextensions/         # Deployment configuration for AWS Elastic Beanstalk
├── artifacts/             # Model artifacts, checkpoints, and outputs
├── catboost_info/         # CatBoost training logs and info
├── notebook/              # Jupyter notebooks for EDA and prototyping
├── src/
│   ├── __init__.py
│   ├── components/        # Modular pipeline components
│   ├── exception.py       # Custom exception handling
│   ├── logger.py          # Logging setup and utilities
│   ├── pipeline/          # Pipeline orchestration scripts
│   └── utils.py           # Utility functions
├── templates/             # HTML templates for the web interface
├── application.py         # Flask app entry point
├── requirements.txt       # Python dependencies
├── setup.py               # Package installation script
├── .gitignore             # Git ignore rules
└── README.md              # Project documentation

Getting Started

  1. Clone the repository

    git clone https://github.com/imswatisinha/ML_Project.git
    cd ML_Project
  2. Install dependencies

    pip install -r requirements.txt
  3. Run the web application

    python application.py

    Then, open your browser and go to http://localhost:5000.

  4. Explore Notebooks

    • Navigate to the notebook directory and open .ipynb files using Jupyter Notebook or JupyterLab.

Customization

  • To extend or modify pipeline components, add or edit scripts under src/components or src/pipeline.
  • Update HTML templates in the templates directory to customize the web UI.
  • Enhance utilities and logging as needed for your workflow.

Contributing

Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.

License

This project is licensed under the MIT License.


For any questions, open an issue in the repository or contact the maintainer.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages