-
Notifications
You must be signed in to change notification settings - Fork 81
Transaction Model: Create a New Model (Tutorial)
hkanezashi edited this page Mar 6, 2020
·
4 revisions
How to create a new AML typology (alert transaction model)
First, you need to add a function to transaction_graph_generator.py
to register a new AML typology.
Add process codes to add_alert_pattern
function.
For example, the fan_in
pattern is defined as follows:
if typology_name == "fan_in": # fan_in pattern (multiple accounts --> single (main) account)
main_acct, main_bank_id = add_main_acct()
num_neighbors = num_accounts - 1
if is_external:
sub_bank_candidates = [b for b, nbs in self.bank_to_accts.items()
if b != main_bank_id and len(nbs) >= num_neighbors]
if not sub_bank_candidates:
logger.warning("No banks with appropriate number of neighboring accounts found.")
return
sub_bank_id = random.choice(sub_bank_candidates)
else:
sub_bank_id = main_bank_id
sub_accts = random.sample(self.bank_to_accts[sub_bank_id], num_neighbors)
for n in sub_accts:
self.remove_typology_candidate(n)
add_node(n, sub_bank_id)
for orig in sub_accts:
amount = init_amount
date = random.randrange(start_date, end_date)
add_edge(orig, main_acct, amount, date)
Next, create a Java class extends amlsim.model.aml.AMLTypology
.