Relational neighbor classifier
Een relationeel model is gebaseerd op het idee dat het gedrag tussen knopen gecorreleerd is: verbonden knopen hebben de neiging tot dezelfde klasse te behoren. De relational neighbor classifier voorspelt specifiek de klasse van een knoop op basis van z’n buurknopen en aangrenzende randen.
De gegevensset transfers bevat transacties van verschillende rekeningen. De data account_info geeft aan welke van deze rekeningen geldezels zijn. Of rekening "I41" een geldezel is, is echter onbekend. Voorspel de kans dat rekening "I41" een geldezel is met behulp van een relational neighbor classifier.
Deze oefening maakt deel uit van de cursus
Fraudedetectie in R
Oefeninstructies
- Maak een ongericht netwerk genaamd
netop basis vantransfers. Zetdirectedop de juiste boolean (TRUEofFALSE). - Specificeer een kleur voor elke knoop: zet
V(net)$colorop"darkorange"alsaccount_info$isMoneyMule == TRUEen anders op"slateblue1". - Gebruik
subgraph()opnetom een subgraafsubsette maken met de vertices"I41","I47","I87"en"I20". - Gebruik de functie
strength()opsubnetén opnetom de kans dat knoop"I41"een geldezel is te berekenen als de fractie muil-buren
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# From data frame to graph
net <- graph_from_data_frame(___, directed = ___)
# Plot the network; color nodes according to isMoneyMule-variable
___(___)$color <- ifelse(___$___ == TRUE, ___, ___)
plot(net, vertex.label.color = "black", vertex.label.font = 2, vertex.size = 18)
# The id's of the money mule accounts:
print(account_info$id[account_info$isMoneyMule == TRUE])
# Create subgraph containing node "I41" and all money mules nodes "I47", "I87", "I20":
subnet <- ___(___, v = c(___))
# Compute the money mule probability of node "I41" based on the neighbors
___(___, v = "I41") / ___(___, v = "I41")