def run_model(args, X, y, ensembler = False): model = None if args['model'] == 'logistic': logistic = Logistic(X,y, model) model = logistic.train_model() elif args['model'] == 'knn': knn = KNN(X,y, model) model = knn.train_model() elif args['model'] == 'svm': svm = SVM(X,y, model) model = svm.train_model() elif args['model'] == 'rfa': rfa = RandomForest(X, y, model) model = rfa.train_model(ensembler) elif args['model'] == 'xgb': xgb = XGB(X, y, model) model = xgb.train_model(ensembler) elif args['model'] == 'lgbm': lgbm = LightGBM(X, y, model) model = lgbm.train_model(ensembler) elif args['model'] == 'catboost': catboost = CatBoost(X, y, model) model = catboost.train_model(ensembler) elif len(args['models']) > 1: models = [('', None)]* len(args['models']) for i in range(len(args['models'])): model_name = args['models'][i] temp_args = copy.deepcopy(args) temp_args['model'] = model_name models[i] = (model_name, run_model(temp_args, X, y, True)) ensembler = Ensembler(X, y, model, args['ensembler_type']) model = ensembler.train_model(models) return model else: print('\nInvalid model name :-|\n') exit() return model