CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Créez un graphe non orienté appelé net à partir de transfers. Réglez directed sur la valeur booléenne appropriée (TRUE ou FALSE).
  • Attribuez une couleur à chaque nœud : définissez V(net)$color à "darkorange" si account_info$isMoneyMule == TRUE, sinon à "slateblue1".
  • Utilisez subgraph() sur net pour créer un sous-graphe appelé subset contenant les sommets "I41", "I47", "I87" et "I20".
  • Utilisez la fonction strength() sur subnet ET sur net pour 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")
Modifier et exécuter le code