def wrapper(*args, **kwargs): start = time.time() return_value = func(*args, **kwargs) end = time.time() logger.info( f'\nВремя выполнения {func.__name__} : {(end - start):0.2f} секунды\n' ) return return_value
def load_data(path_to_load: str, **kwargs) -> pd.DataFrame: try: df = pd.read_csv(path_to_load, **kwargs) except Exception as err: err_text = 'Ошибка при загрузке файла:' + path_to_load logger.exception(err_text) raise Exception(err_text, err) logger.info(f'Файл {path_to_load} загружен') return df
def load_model(path_to_load=FILE_MODEL): try: model = joblib.load(path_to_load) except Exception as err: err_text = 'Ошибка при загрузке модели:' + path_to_load logger.exception(err_text) raise Exception(err_text, err) logger.info(f'Модель {path_to_load} загружена') return model
def run_model(): mode = params.get('mode') if not mode: logger.warning( 'Не указан режим работы приложения! ключ --mode [load, prepare, train, predict, all] ' ) logger.info('Пример: python run_model.py --mode train ') logger.info('По умолчанию режим: predict ') mode = 'predict' logger.info(f'Приложение запущено в режиме: { mode } ') if mode == 'predict': predict() elif mode == 'prepare': prepare() elif mode == 'load': load() elif mode == 'train': train() elif mode == 'all': load() prepare() train() predict() else: logger.warning(f'Режим MODE = {mode} не распознан!') logger.info(f'Приложение успешно завершено в режиме: {mode} ')
def load_config(filename=None): if not filename: filename = FILE_CFG try: with open(filename, 'r') as f: cfg = yaml.safe_load(f.read()) except Exception as err: err_text = 'Ошибка при загрузке config file:' + filename logger.exception(err_text) raise Exception(err_text, err) logger.info(f'Config file {filename} загружен') return cfg
def make_result(y_predict, userID): # создаю результат классификатора на осное порога MODEL_THRESHOLD y_result = (~(y_predict[:, 1] < MODEL_THRESHOLD)).astype('int') d = {'user_id': userID, 'is_churned': y_result} df_res = pd.DataFrame(data=d) try: # если нет директории - создадим res_dir = os.path.dirname(FILE_MODEL_PREDICTION) os.makedirs(res_dir, exist_ok=True) df_res.to_csv(FILE_MODEL_PREDICTION, sep=FILE_DATASET_SEP, index=False) except Exception as err: logger.exception(f"Ошибка записи файла {FILE_MODEL_PREDICTION}\n") raise err logger.info( f'Результат работы модели {df_res.shape} записан в: {FILE_MODEL_PREDICTION}' )