Team Ai
Apppublic

AlainDeLong/End-To-End-Machine-Learning-Project

sourceHugging Facemitupdated 2y agoView on Hugging Face
0likes
data_ingestion.py68 linesDownload Raw Back to components
1import os2import sys3from src.exception import CustomException4from src.logger import logging5import pandas as pd6from sklearn.model_selection import train_test_split7from dataclasses import dataclass8from src.components.data_transformation import DataTransformation9from src.components.data_transformation import DataTransformationConfig10from src.components.model_trainer import ModelTrainer11from src.components.model_trainer import ModelTrainerConfig12 13 14@dataclass15class DataIngestionConfig:16    raw_data_path: str = os.path.join("artifacts", "data.csv")17    train_data_path: str = os.path.join("artifacts", "train.csv")18    test_data_path: str = os.path.join("artifacts", "test.csv")19 20 21class DataIngestion:22    def __init__(self) -> None:23        self.ingestion_config = DataIngestionConfig()24 25    def initiate_data_ingestion(self):26        logging.info("Entered data ingestion medthod or component")27        try:28            df = pd.read_csv("notebook/data/stud.csv")29            logging.info("Read the dataset as dataframe")30 31            os.makedirs(32                os.path.dirname(self.ingestion_config.train_data_path), exist_ok=True33            )34 35            df.to_csv(self.ingestion_config.raw_data_path, index=False, header=True)36 37            logging.info("Train test split initiated")38            train_set, test_set = train_test_split(df, test_size=0.2, random_state=42)39 40            train_set.to_csv(41                self.ingestion_config.train_data_path, index=False, header=True42            )43            test_set.to_csv(44                self.ingestion_config.test_data_path, index=False, header=True45            )46 47            logging.info("Ingestion of the data is completed")48 49            return (50                self.ingestion_config.train_data_path,51                self.ingestion_config.test_data_path,52            )53        except Exception as e:54            raise CustomException(e, sys)55 56 57if __name__ == "__main__":58    obj = DataIngestion()59    train_data, test_data = obj.initiate_data_ingestion()60 61    data_transformation = DataTransformation()62    train_arr, test_arr, _ = data_transformation.initiate_data_transformation(63        train_data, test_data64    )65 66    model_trainer = ModelTrainer()67    print(model_trainer.initiate_model_trainer(train_arr, test_arr))68