Zacznij terazZacznij za darmo

Klasyfikator sąsiedztwa relacyjnego

Model relacyjny opiera się na założeniu, że zachowanie węzłów jest ze sobą skorelowane – tzn. połączone węzły mają tendencję do należenia do tej samej klasy. Klasyfikator sąsiedztwa relacyjnego przewiduje klasę węzła na podstawie jego sąsiednich węzłów i przyległych krawędzi.

Zbiór danych transfers zawiera transakcje z różnych kont. Dane account_info wskazują, które z tych kont są tzw. „słupami" (ang. money mules). Nie wiadomo jednak, czy konto "I41" jest słupem. Przewidź prawdopodobieństwo, że konto "I41" jest słupem, korzystając z klasyfikatora sąsiedztwa relacyjnego.

To ćwiczenie jest częścią kursu

Wykrywanie oszustw w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz nieskierowany graf o nazwie net na podstawie transfers. Ustaw directed na odpowiednią wartość logiczną (TRUE lub FALSE).
  • Przypisz kolor każdemu węzłowi: ustaw V(net)$color na "darkorange", jeśli account_info$isMoneyMule == TRUE, i na "slateblue1" w przeciwnym razie.
  • Użyj funkcji subgraph() na net, aby utworzyć podgraf o nazwie subset zawierający wierzchołki "I41", "I47", "I87" i "I20".
  • Użyj funkcji strength() na subnet oraz na net, aby obliczyć prawdopodobieństwo, że węzeł "I41" jest słupem, jako ułamek sąsiadów będących słupami.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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")
Edytuj i uruchom kod