Relational Neighbor Classifier
Ein Relationsmodell basiert auf der Idee, dass das Verhalten zwischen Knoten korreliert ist – verbundene Knoten neigen also dazu, derselben Klasse anzugehören. Der Relational Neighbor Classifier sagt speziell die Klasse eines Knotens auf Basis seiner Nachbarknoten und angrenzenden Kanten voraus.
Der Datensatz transfers besteht aus Transaktionen verschiedener Konten. Die Daten account_info enthalten, welche dieser Konten Geldwäscher (money mules) sind. Ob das Konto "I41" eine Geldwäschekontoverbindung ist, ist jedoch unbekannt. Sage die Neigung von Konto "I41" zur Geldwäsche mithilfe eines Relational Neighbor Classifier vorher.
Diese Übung ist Teil des Kurses
Fraud Detection in R
Anleitung zur Übung
- Erstelle einen ungerichteten Graphen namens
netauf Basis vontransfers. Setzedirectedauf den passenden booleschen Wert (TRUEoderFALSE). - Lege für jeden Knoten eine Farbe fest: Setze
V(net)$colorauf"darkorange", wennaccount_info$isMoneyMule == TRUE, andernfalls auf"slateblue1". - Verwende
subgraph()aufnet, um einen Subgraphen namenssubsetmit den Knoten"I41","I47","I87"und"I20"zu erzeugen. - Verwende die Funktion
strength()aufsubnetund aufnet, um die Money-Mule-Wahrscheinlichkeit des Knotens"I41"als Anteil der Mule-Nachbarn zu berechnen.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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")