Inferência baseada em rede social

Detecção de Fraudes em R

Tim Verdonck

Professor Data Science at KU Leuven

Inferência baseada em rede social

Objetivo

Prever o comportamento de um nó com base no comportamento de outros nós

Nós ausentes na rede

Detecção de Fraudes em R

Inferência baseada em rede social

Desafios

  • Os dados não são independentes
    • O comportamento de um nó pode influenciar o de outros
    • Comportamentos correlacionados entre nós
  • Inferência coletiva: inferências sobre nós podem se afetar

Nós ausentes na rede

Detecção de Fraudes em R

Não relacional vs. relacional

Modelo não relacional

  • Usa apenas informação local
  • Regressão logística, árvores de decisão, ...

regressão_logística.png

Modelo relacional

  • Usa os vínculos da rede
  • Classificador por vizinhos relacionais

rede_simples.png

Detecção de Fraudes em R

Classificador por vizinhos relacionais

Premissas

  • Homofilia: nós conectados tendem a pertencer à mesma classe ("culpa por associação")
  • Alguns rótulos de classe são conhecidos

nó_ausente.png

Detecção de Fraudes em R

Classificador por vizinhos relacionais

Probabilidade de fraude

$$P(F | ?) = \frac{1 + 1}{1 + 1 + 1 + 1 + 1}=\frac{2}{5}= 40\%$$

nó_ausente.png

Detecção de Fraudes em R

Classificador por vizinhos relacionais com pesos

Probabilidade de fraude

$$P(F | ?) = \frac{1 + 2}{3 + 1 + 1 + 2 + 1}=\frac{3}{8}=37,5\%$$

nó_ausente_ponderado.png

Detecção de Fraudes em R

Classificador por vizinhos relacionais

vertex_attr(network) ## Os nós são rotulados como 1 (fraude), 0 (não é fraude) ou NA (desconhecido)
$name
"?" "B" "C" "D" "E" "A"
$isFraud
NA  1  0  1  0  0
edge_attr(network) ## As arestas têm peso

$weight
2 3 1 1 1
Detecção de Fraudes em R

Classificador por vizinhos relacionais

## subgraph(): cria subgrafo contendo o nó "?" e todos os nós fraudulentos
subnetwork <- subgraph(network, v = c("?", "B", "D"))

## strength(): soma os pesos das arestas adjacentes ao nó "?" prob_fraud <- strength(subnetwork, v = "?") / strength(network, v = "?")
prob_fraud
0.375
Detecção de Fraudes em R

Vamos praticar!

Detecção de Fraudes em R

Preparing Video For Download...