Classificateur des voisins relationnels
Un modèle relationnel repose sur l'idée que le comportement entre nœuds est corrélé, c'est-à-dire que des nœuds connectés ont tendance à appartenir à la même classe. Le classificateur des voisins relationnels, en particulier, prédit la classe d'un nœud à partir de ses nœuds voisins et des arêtes adjacentes.
Le jeu de données transfers contient des transactions entre différents comptes. Les données account_info indiquent lesquels de ces comptes sont des « money mules ». Toutefois, on ne sait pas si le compte "I41" en est un. Prédisez la propension du compte "I41" à être une money mule à l'aide d'un classificateur des voisins relationnels.
Cette activité fait partie du cours
Détection de la fraude en R
Instructions de l’exercice
- Créez un graphe non orienté appelé
netà partir detransfers. Réglezdirectedsur la valeur booléenne appropriée (TRUEouFALSE). - Attribuez une couleur à chaque nœud : définissez
V(net)$colorà"darkorange"siaccount_info$isMoneyMule == TRUE, sinon à"slateblue1". - Utilisez
subgraph()surnetpour créer un sous-graphe appelésubsetcontenant les sommets"I41","I47","I87"et"I20". - Utilisez la fonction
strength()sursubnetET surnetpour calculer la probabilité que le nœud"I41"soit une money mule comme la fraction de voisins mules.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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")