nivakaran commited on
Commit
0e1d924
·
verified ·
1 Parent(s): a50f664

Create config_entity.py

Browse files
Files changed (1) hide show
  1. src/entity/config_entity.py +75 -0
src/entity/config_entity.py ADDED
@@ -0,0 +1,75 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ from datetime import datetime
3
+ import os
4
+ from src.constants import training_pipeline
5
+
6
+ print(training_pipeline.PIPELINE_NAME)
7
+ print(training_pipeline.ARTIFACT_DIR)
8
+
9
+
10
+ class TrainingPipelineConfig:
11
+ def __init__(self, timestamp=datetime.now()):
12
+ timestamp=timestamp.strftime("%m_%d_%Y_%H_%M_%S")
13
+ self.pipeline_name = training_pipeline.PIPELINE_NAME
14
+ self.artifact_name = training_pipeline.ARTIFACT_DIR
15
+ self.artifact_dir = os.path.join(self.artifact_name, timestamp)
16
+ self.model_dir = os.path.join("final_model")
17
+ self.timestamp:str=timestamp
18
+
19
+
20
+ class DataIngestionConfig:
21
+ def __init__(self, training_pipeline_config:TrainingPipelineConfig):
22
+ self.data_ingestion_dir:str = os.path.join(
23
+ training_pipeline_config.artifact_dir, training_pipeline.DATA_INGESTION_DIR_NAME
24
+ )
25
+ self.feature_store_file_path:str = os.path.join(
26
+ self.data_ingestion_dir, training_pipeline.DATA_INGESTION_FEATURE_STORE_DIR, training_pipeline.FILE_NAME
27
+ )
28
+ self.training_file_path:str = os.path.join(
29
+ self.data_ingestion_dir, training_pipeline.DATA_INGESTION_INGESTED_DIR, training_pipeline.TRAIN_FILE_NAME
30
+ )
31
+ self.testing_file_path:str = os.path.join(
32
+ self.data_ingestion_dir, training_pipeline.DATA_INGESTION_INGESTED_DIR, training_pipeline.TEST_FILE_NAME
33
+ )
34
+ self.train_test_split_ratio:float = training_pipeline.DATA_INGESTION_TRAIN_TEST_SPLIT_RATION
35
+ self.collection_name:str = training_pipeline.DATA_INGESTION_COLLECTION_NAME
36
+ self.database_name:str = training_pipeline.DATA_INGESTION_DATABASE_NAME
37
+
38
+
39
+ class DataValidationConfig:
40
+ def __init__(self, training_pipeline_config:TrainingPipelineConfig):
41
+ self.data_validation_dir:str = os.path.join(training_pipeline_config.artifact_dir, training_pipeline.DATA_VALIDATION_DIR_NAME)
42
+ self.valid_data_dir:str = os.path.join(self.data_validation_dir, training_pipeline.DATA_VALIDATION_VALID_DIR)
43
+ self.invalid_data_dir:str = os.path.join(self.data_validation_dir, training_pipeline.DATA_VALIDATION_INVALID_DIR)
44
+ self.valid_train_file_path:str = os.path.join(self.valid_data_dir, training_pipeline.TRAIN_FILE_NAME)
45
+ self.valid_test_file_path:str = os.path.join(self.valid_data_dir, training_pipeline.TEST_FILE_NAME)
46
+ self.invalid_train_file_path:str = os.path.join(self.invalid_data_dir, training_pipeline.TRAIN_FILE_NAME)
47
+ self.invalid_test_file_path:str = os.path.join(self.invalid_data_dir, training_pipeline.TEST_FILE_NAME)
48
+ self.drift_report_file_path:str = os.path.join(
49
+ self.data_validation_dir,
50
+ training_pipeline.DATA_VALIDATION_DRIFT_REPORT_DIR,
51
+ training_pipeline.DATA_VALIDATION_DRIFT_REPORT_FILE_NAME
52
+ )
53
+
54
+ class DataTransformationConfig:
55
+ def __init__(self, training_pipeline_config:TrainingPipelineConfig):
56
+ self.data_transformation_dir:str = os.path.join(training_pipeline_config.artifact_dir, training_pipeline.DATA_TRANSFORMATION_DIR_NAME)
57
+ self.transformed_train_file_path: str=os.path.join(self.data_transformation_dir, training_pipeline.DATA_TRANSFORMATION_TRANSFORMED_DATA_DIR,
58
+ training_pipeline.TRAIN_FILE_NAME.replace("csv", "npy"))
59
+ self.transformed_test_file_path: str = os.path.join(self.data_transformation_dir, training_pipeline.DATA_TRANSFORMATION_TRANSFORMED_DATA_DIR,
60
+ training_pipeline.TEST_FILE_NAME.replace("csv", "npy"))
61
+ self.transformed_object_file_path:str=os.path.join(self.data_transformation_dir, training_pipeline.DATA_TRANSFORMATION_TRANSFORMED_OBJECT_DIR,
62
+ training_pipeline.PREPROCESSING_OBJECT_FILE_NAME)
63
+
64
+
65
+ class ModelTrainerConfig:
66
+ def __init__(self, training_pipeline_config:TrainingPipelineConfig):
67
+ self.model_trainer_dir:str = os.path.join(
68
+ training_pipeline_config.artifact_dir, training_pipeline.MODEL_TRAINER_DIR_NAME
69
+ )
70
+ self.trained_model_file_path:str = os.path.join(
71
+ self.model_trainer_dir, training_pipeline.MODEL_TRAINER_TRAINED_MODEL_DIR,
72
+ training_pipeline.MODEL_FILE_NAME
73
+ )
74
+ self.expected_accuracy:float = training_pipeline.MODEL_TRAINER_EXPECTED_SCORE
75
+ self.overfitting_underfitting_threshold=training_pipeline.MODEL_TRAINER_OVER_FIITING_UNDER_FITTING_THRESHOLD