def dump_stats()

in src/lambda/InvokeFraudEndpointLambda/lambda_function.py [0:0]


def dump_stats(probability, credit_card_number, transaction_amount, aggregate_dict, cutoff_condition):
    # extract features from aggregate dict
    avg_amt_last_10m = aggregate_dict['avg_amt_last_10m'] if 'avg_amt_last_10m' in aggregate_dict.keys() else 0.0
    num_trans_last_10m = aggregate_dict['num_trans_last_10m'] if 'num_trans_last_10m' in aggregate_dict.keys() else 0
    agg_evt_time = aggregate_dict['trans_time'] if 'trans_time' in aggregate_dict.keys() else 0.0

    # extract features from batch agg dict
    num_trans_last_1w = aggregate_dict['num_trans_last_1w'] if 'num_trans_last_1w' in aggregate_dict.keys() else 0
    avg_amt_last_1w = aggregate_dict['avg_amt_last_1w'] if 'avg_amt_last_1w' in aggregate_dict.keys() else 0.0

    amt_ratio1 = aggregate_dict['amt_ratio1']
    amt_ratio2 = aggregate_dict['amt_ratio2']
    count_ratio = aggregate_dict['count_ratio']

    if probability > float(FRAUD_THRESHOLD):
        fraud_text = 'FRAUD'
    else:
        fraud_text = 'NOT FRAUD'
    
    if cutoff_condition:
        print(
            f'Prediction: {fraud_text} ({probability:.6f}), ' +
            f'card num: {credit_card_number}, ' +
            f'amount: {transaction_amount:.2f} '
        )
    else:
        print(
            f'Prediction: {fraud_text} ({probability:.6f}), ' +
            f'num last 10m: {num_trans_last_10m}, ' +
            f'avg amt last 10m: {avg_amt_last_10m}, ' +
            f'card num: {credit_card_number}, ' +
            f'amount: {transaction_amount:.2f} '
        )