ComenzarEmpieza gratis

Clasificador de vecinos relacionales

Un modelo relacional parte de la idea de que el comportamiento entre nodos está correlacionado; es decir, los nodos conectados tienden a pertenecer a la misma clase. En concreto, el clasificador de vecinos relacionales predice la clase de un nodo a partir de sus nodos vecinos y los arcos adyacentes.

El conjunto de datos transfers contiene transacciones de distintas cuentas. Los datos account_info indican cuáles de estas cuentas son mulas de dinero. Sin embargo, se desconoce si la cuenta "I41" es una mula de dinero. Predice la propensión a ser mula de dinero de la cuenta "I41" usando un clasificador de vecinos relacionales.

Este ejercicio forma parte del curso

Detección de fraude en R

Ver curso

Instrucciones del ejercicio

  • Crea un grafo no dirigido llamado net a partir de transfers. Establece directed con el booleano correspondiente (TRUE o FALSE).
  • Especifica un color para cada nodo: asigna V(net)$color a "darkorange" si account_info$isMoneyMule == TRUE y a "slateblue1" en caso contrario.
  • Usa subgraph() sobre net para crear un subgrafo llamado subset que contenga los vértices "I41","I47", "I87" y "I20".
  • Usa la función strength() en subnet y en net para calcular la probabilidad de que el nodo "I41" sea mula de dinero como la fracción de vecinos mula

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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")
Editar y ejecutar código