예제 #1
0
    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
예제 #2
0
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
예제 #3
0
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
예제 #4
0
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} ')
예제 #5
0
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
예제 #6
0
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}'
    )