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
Instrucciones del ejercicio
- Crea un grafo no dirigido llamado
neta partir detransfers. Establecedirectedcon el booleano correspondiente (TRUEoFALSE). - Especifica un color para cada nodo: asigna
V(net)$colora"darkorange"siaccount_info$isMoneyMule == TRUEy a"slateblue1"en caso contrario. - Usa
subgraph()sobrenetpara crear un subgrafo llamadosubsetque contenga los vértices"I41","I47","I87"y"I20". - Usa la función
strength()ensubnety ennetpara 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 completando este código de ejemplo.
# 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")