This repository contains a script that automatically generates all essential files and folders required to kickstart a machine learning project. The setup follows best practices, providing a structured environment for project development, experimentation, and deployment.
Table of Contents:
- Overview
- Generated Project Structure
- Installation
- Usage
- Files and Folders Description
- Contributing
- License
Overview This script provides an organized project structure to streamline machine learning development, from data processing to model training and evaluation. It automates the creation of key files and directories, including placeholders and template code, to ensure a consistent workflow.
Generated Project Structure The script creates the following file structure:
project_name/ │ ├── .github/ │ └── workflows/ │ └── .gitkeep # Placeholder for GitHub workflows │ ├── src/ │ ├── __init__.py # Initialize src module │ ├── components/ # Components for data and model handling │ │ ├── __init__.py │ │ ├── data_ingestion.py # Data ingestion component │ │ ├── data_transformation.py # Data transformation component │ │ ├── model_trainer.py # Model training component │ │ └── model_evaluation.py # Model evaluation component │ │ │ ├── pipeline/ # Pipelines for training and prediction │ │ ├── __init__.py │ │ ├── training_pipeline.py # Training pipeline script │ │ └── prediction_pipeline.py # Prediction pipeline script │ │ │ ├── utils/ # Utility functions │ │ ├── __init__.py │ │ └── utils.py # Utility functions script │ │ │ ├── logger/ │ │ └── logging.py # Custom logging configuration │ │ │ └── exception/ │ └── exception.py # Custom exception handling │ ├── tests/ # Testing suite │ ├── unit/ │ │ ├── __init__.py │ │ └── unit.py # Unit test script │ │ │ └── integration/ │ ├── __init__.py │ └── integration.py # Integration test script │ ├── experiment/ │ └── experiments.ipynb # Notebook for experiments and EDA │ ├── init_setup.sh # Script for environment setup ├── requirements.txt # Production dependencies ├── requirements_dev.txt # Development dependencies ├── setup.py # Project setup script ├── setup.cfg # Configuration for setup ├── pyproject.toml # Project metadata and configuration └── tox.ini # Tox configuration for testing
Each file serves a specific purpose in the project:
- src/components: Contains modules for handling different stages of data and model processing.
- src/pipeline: Scripts to define the flow for training and predicting.
- src/utils: Helper functions for common tasks.
- src/logger and src/exception: Custom logging and error handling modules.
- tests: Unit and integration tests to validate components.
- experiment: Jupyter notebook for conducting experiments and exploratory analysis.
- setup and configuration files (setup.py, pyproject.toml, tox.ini): Essential for project setup, * * configuration, and dependency management.
License This project is licensed under the MIT License.