Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Maak een ongericht netwerk genaamd net op basis van transfers. Zet directed op de juiste boolean (TRUE of FALSE).
  • Specificeer een kleur voor elke knoop: zet V(net)$color op "darkorange" als account_info$isMoneyMule == TRUE en anders op "slateblue1".
  • Gebruik subgraph() op net om een subgraaf subset te maken met de vertices "I41", "I47", "I87" en "I20".
  • Gebruik de functie strength() op subnet én op net om 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")
Code bewerken en uitvoeren