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
Övningsinstruktioner
- Skapa en oriktad graf med namnet
netbaserad påtransfers. Sättdirectedtill lämpligt booleskt värde (TRUEellerFALSE). - Ange en färg för varje nod: sätt
V(net)$colortill"darkorange"omaccount_info$isMoneyMule == TRUE, annars"slateblue1". - Använd
subgraph()pånetför att skapa en delgraf med namnetsubsetsom innehåller hörnen"I41","I47","I87"och"I20". - Använd funktionen
strength()påsubnetoch pånetfö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")