Skip to content

TmnGitHub/ML_CI_CD

Repository files navigation

Project Title

Machine Learning Project for Continuous Development and Continuous Deployment (CI/CD)

Table of Contents

Description

This project is focused on developing a machine learning model for continuous development and continuous deployment (CI/CD). The objective is to build and deploy a pipeline that incorporates various algorithms such as LinearRegression, Ridge, Lasso, KNeighborsRegressor, DecisionTreeRegressor, and XGBRegressor. The scikit-learn package has been utilized for the development, providing a robust framework for implementing these algorithms.

Features

  • Multiple Regression Algorithms: The project incorporates the following regression algorithms:

    • LinearRegression
    • Ridge
    • Lasso
    • KNeighborsRegressor
    • DecisionTreeRegressor
    • XGBRegressor
  • Fine-Tuning Options: The model allows for fine-tuning of hyperparameters to optimize the performance of the algorithms.

  • Jupyter Notebook: The initial programming and experimentation were performed using Jupyter Notebook. This allowed for an interactive and exploratory approach to model development.

  • Modular Programming: The project has transitioned from Jupyter Notebook to a modular programming approach. The codebase has been organized into modular components, making it easier to maintain, test, and integrate into a CI/CD pipeline.

Deployment

The deployment of the machine learning model has been performed in multiple phases using different technologies.

Phase 1: AWS Elastic Beanstalk and Azure

In the initial phase, the model was deployed on the cloud using AWS Elastic Beanstalk and Azure. These platforms provide a scalable and managed environment for hosting web applications. The model was integrated into a web application, allowing users to interact with the predictions generated by the machine learning algorithms.

Phase 2: Docker

In the later phase, the deployment strategy shifted to using Docker. Docker provides containerization technology that allows for consistent and reliable deployments across different environments. By containerizing the machine learning model, it becomes easier to package, ship, and run the application on various platforms and infrastructure setups.

Getting Started

To get started with this project, follow the steps below:

  1. Clone the repository to your local machine.
  2. Install the required dependencies listed in the requirements.txt file.
  3. Explore the Jupyter Notebook file for the initial programming and experimentation phase.
  4. Set up the necessary environment variables and configuration for the CI/CD pipeline.
  5. Run the modularized code to train and evaluate the machine learning models.
  6. Use the fine-tuning options to optimize the model's performance.
  7. Deploy the model using the preferred deployment method, such as AWS Elastic Beanstalk, Azure, or Docker.

Contribution

Contributions to this project are welcome! If you find any issues or have suggestions for improvement, please feel free to open an issue or submit a pull request.

License

This project is licensed under the MIT License.

Acknowledgments

Special thanks to the scikit-learn community for providing an excellent machine learning library that formed the foundation for this project.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published