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} '
)