Classificador de vizinhos relacionais
Um modelo relacional parte da ideia de que o comportamento entre nós é correlacionado, ou seja, nós conectados tendem a pertencer à mesma classe. O classificador de vizinhos relacionais, em particular, prevê a classe de um nó com base em seus nós vizinhos e arestas adjacentes.
O conjunto transfers reúne transações de diferentes contas. Os dados account_info indicam quais dessas contas são laranjas (money mules). No entanto, não se sabe se a conta "I41" é uma laranja. Preveja a propensão de a conta "I41" ser uma laranja usando um classificador de vizinhos relacionais.
Este exercício faz parte do curso
Detecção de Fraudes em R
Instruções do exercício
- Crie um grafo não direcionado chamado
neta partir detransfers. Definadirectedcom o booleano apropriado (TRUEouFALSE). - Especifique uma cor para cada nó: defina
V(net)$colorcomo"darkorange"seaccount_info$isMoneyMule == TRUEe"slateblue1"caso contrário. - Use
subgraph()emnetpara criar um subgrafo chamadosubsetcontendo os vértices"I41","I47","I87"e"I20". - Use a função
strength()emsubnetE emnetpara calcular a probabilidade de o nó"I41"ser laranja como a fração de vizinhos que são laranjas
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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")