1+ import logging
12import os
23import json
34from termcolor import colored
910from ..transformation .transform import Transform
1011
1112
13+ logger = logging .getLogger (__name__ )
14+
15+
1216class TrainGridClassifier :
13- def __init__ (self , config , classifier , class_name , X , y , tr_processes , exports_path , logger ):
17+ def __init__ (self , config , classifier , class_name , X , y , tr_processes , exports_path ):
1418 self .config = config
1519 self .classifier = classifier
1620 self .class_name = class_name
@@ -19,7 +23,6 @@ def __init__(self, config, classifier, class_name, X, y, tr_processes, exports_p
1923 self .tr_processes = tr_processes
2024 self .exports_path = exports_path
2125
22- self .logger = logger
2326 self .best_models_list = []
2427 # self.train_grid_search_clf()
2528
@@ -28,7 +31,7 @@ def train_grid_search_clf(self):
2831 process_counter = 1
2932 for tr_process in self .tr_processes :
3033 print (colored ("Train process {} - {}" .format (process_counter , tr_process ), "green" ))
31- self . logger .info ("(Grid) - Train process {} - {}" .format (process_counter , tr_process ))
34+ logger .info ("(Grid) - Train process {} - {}" .format (process_counter , tr_process ))
3235 # initiate SVM classifier object
3336 if self .classifier == "svm" :
3437 grid_clf = SVC (gamma = "auto" , probability = True )
@@ -42,16 +45,14 @@ def train_grid_search_clf(self):
4245 df_feats = self .X ,
4346 process = tr_process ["preprocess" ],
4447 train_class = self .class_name ,
45- exports_path = self .exports_path ,
46- logger = self .logger ).post_processing ()
48+ exports_path = self .exports_path ).post_processing ()
4749
4850 # train the grid classifier and return the trained model
4951 gsvc = train_grid (tr_process = tr_process ,
5052 grid_clf = grid_clf ,
5153 features_prepared = features_prepared ,
5254 y = self .y ,
53- config = self .config ,
54- logger = self .logger )
55+ config = self .config )
5556
5657 # save best results for each train process
5758 # paths declaration for saving the grid training results
@@ -65,8 +66,7 @@ def train_grid_search_clf(self):
6566 class_name = self .class_name ,
6667 tr_process = tr_process ,
6768 results_path = results_path ,
68- best_process_model_path = best_process_model_path ,
69- logger = self .logger )
69+ best_process_model_path = best_process_model_path )
7070
7171 # return a list that includes the best models exported from each processing
7272 self .best_models_list .append (results_dict )
@@ -81,21 +81,21 @@ def train_grid_search_clf(self):
8181 def export_best_classifier (self ):
8282 # Gather the best scores from the exported grid clf models
8383 scores = [x ["score" ] for x in self .best_models_list ]
84- self . logger .info ("This is the max score of all the training processes: {}" .format (max (scores )))
84+ logger .info ("This is the max score of all the training processes: {}" .format (max (scores )))
8585 for model in self .best_models_list :
8686 if model ["score" ] == max (scores ):
87- self . logger .info ("Best {} model parameters:" .format (self .class_name ))
87+ logger .info ("Best {} model parameters:" .format (self .class_name ))
8888 # log2 --> convert values to initial parameters' values
8989 # model["params"]["C"] = math.log2(model["params"]["C"])
9090 # model["params"]["gamma"] = math.log2(model["params"]["gamma"])
91- self . logger .info ("{}" .format (model ))
91+ logger .info ("{}" .format (model ))
9292 best_model_name = "best_model_{}.json" .format (self .class_name )
9393 with open (os .path .join (self .exports_path , best_model_name ), "w" ) as best_model :
9494 json .dump (model , best_model , indent = 4 )
95- self . logger .info ("Best {} model parameters saved successfully to disk." .format (self .class_name ))
95+ logger .info ("Best {} model parameters saved successfully to disk." .format (self .class_name ))
9696
9797
98- def train_grid (tr_process , grid_clf , features_prepared , y , config , logger ):
98+ def train_grid (tr_process , grid_clf , features_prepared , y , config ):
9999 # define the length of parameters
100100 parameters_grid = {'kernel' : tr_process ["kernel" ],
101101 'C' : tr_process ["C" ],
@@ -136,7 +136,7 @@ def train_grid(tr_process, grid_clf, features_prepared, y, config, logger):
136136 return gsvc
137137
138138
139- def save_grid_results (gsvc , class_name , tr_process , results_path , best_process_model_path , logger ):
139+ def save_grid_results (gsvc , class_name , tr_process , results_path , best_process_model_path ):
140140 results_best_dict_name = "result_{}_{}_best_{}.json" \
141141 .format (class_name , tr_process ["preprocess" ], gsvc .best_score_ )
142142
0 commit comments