IniziaInizia gratis

Classificatore del vicino relazionale

Un modello relazionale si basa sull’idea che il comportamento tra nodi sia correlato, cioè che i nodi collegati tendano ad appartenere alla stessa classe. In particolare, il classificatore del vicino relazionale predice la classe di un nodo in base ai suoi nodi vicini e agli archi adiacenti.

Il dataset transfers contiene transazioni tra diversi conti. I dati account_info indicano quali di questi conti sono money mule. Tuttavia, non è noto se il conto "I41" sia una money mule. Predici la propensione a essere money mule del conto "I41" usando un classificatore del vicino relazionale.

Questo esercizio fa parte del corso

Rilevamento delle frodi in R

Visualizza il corso

Istruzioni dell'esercizio

  • Crea un grafo non orientato chiamato net basato su transfers. Imposta directed al booleano appropriato (TRUE o FALSE).
  • Specifica un colore per ogni nodo: imposta V(net)$color a "darkorange" se account_info$isMoneyMule == TRUE e "slateblue1" altrimenti.
  • Usa subgraph() su net per creare un sottografo chiamato subset contenente i vertici "I41","I47", "I87" e "I20".
  • Usa la funzione strength() su subnet e su net per calcolare la probabilità che il nodo "I41" sia una money mule come frazione dei vicini mule

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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")
Modifica ed esegui il codice