print(c_matrix)
    print(
        classification_report(results_data["actual"],
                              results_data["predicted"]))
    logger.log_message(results_data.head(20))
    logger.log_message(c_matrix)
    logger.log_message(
        classification_report(results_data["actual"],
                              results_data["predicted"]))


if __name__ == '__main__':
    # training
    logger.log_message("start training")
    utils.update_files_list(os.path.join(data_path, "train"))
    train_data = prepare_dataset(utils.get_files())
    logger.log_message("Train data procession complete")
    modeller = prepare_model(train_data)

    # save model
    logger.log_message("Training model saved at model_" + session_id)
    modeller.get_model().save(
        os.path.join(save_model_path, "model_" + session_id))

    # testing
    logger.log_message("start testing")
    utils.update_files_list(os.path.join(data_path, "test"))
    test_data = prepare_dataset(utils.get_files(), False)
    logger.log_message("Test data procession complete")
    predicted_results = modeller.predict_output(test_data)