Kom igångKom igång gratis

Relationsbaserad grannklassificerare

En relationsmodell bygger på tanken att beteendet mellan noder är korrelerat – det vill säga att sammankopplade noder tenderar att tillhöra samma klass. Den relationsbaserade grannklassificeraren förutsäger i synnerhet en nods klass utifrån dess grannoder och angränsande kanter.

Datamängden transfers består av transaktioner från olika konton. Datan i account_info anger vilka av dessa konton som är penningmulor. Det är dock okänt om kontot "I41" är en penningmula. Förutsäg sannolikheten för att konto "I41" är en penningmula med hjälp av en relationsbaserad grannklassificerare.

Den här övningen är en del av kursen

Bedrägeridetektering i R

Visa kurs

Övningsinstruktioner

  • Skapa en oriktad graf med namnet net baserad på transfers. Sätt directed till lämpligt booleskt värde (TRUE eller FALSE).
  • Ange en färg för varje nod: sätt V(net)$color till "darkorange" om account_info$isMoneyMule == TRUE, annars "slateblue1".
  • Använd subgraph()net för att skapa en delgraf med namnet subset som innehåller hörnen "I41", "I47", "I87" och "I20".
  • Använd funktionen strength()subnet ochnet för att beräkna sannolikheten att nod "I41" är en penningmula, som kvoten av mulagrannarna

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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")
Redigera och kör kod