Inference na základě sociální sítě

Detekce podvodů v R

Tim Verdonck

Professor Data Science at KU Leuven

Inference na základě sociální sítě

Cíl

Předpovědět chování uzlu na základě chování ostatních uzlů

Chybějící uzly v síti

Detekce podvodů v R

Inference na základě sociální sítě

Výzvy

  • Data nejsou nezávislá
    • Chování jednoho uzlu může ovlivnit chování jiných uzlů
    • Korelované chování mezi uzly
  • Kolektivní inference: závěry o uzlech se mohou navzájem ovlivňovat

Chybějící uzly v síti

Detekce podvodů v R

Nerelační vs. relační

Nerelační model

  • Využívá pouze lokální informace
  • Logistická regrese, rozhodovací stromy, ...

logistic_regression.png

Relační model

  • Využívá vazby v síti
  • Klasifikátor relačních sousedů

simple_network.png

Detekce podvodů v R

Klasifikátor relačních sousedů

Předpoklady

  • Homofilie: propojené uzly mají tendenci patřit do stejné třídy ("vina ze spojení")
  • Některé třídní popisky jsou známé

Chybějící uzel

Detekce podvodů v R

Klasifikátor relačních sousedů

Pravděpodobnost podvodu

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

Chybějící uzel

Detekce podvodů v R

Klasifikátor relačních sousedů s váhami

Pravděpodobnost podvodu

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

Chybějící uzel s váhami

Detekce podvodů v R

Klasifikátor relačních sousedů

vertex_attr(network) ## Uzly jsou označeny jako 1 (podvod), 0 (bez podvodu) nebo NA (neznámé)
$name
"?" "B" "C" "D" "E" "A"
$isFraud
NA  1  0  1  0  0
edge_attr(network) ## Hrany mají váhu

$weight
2 3 1 1 1
Detekce podvodů v R

Klasifikátor relačních sousedů

## subgraph(): vytvoří podgraf obsahující uzly "?" a všechny podvodné uzly
subnetwork <- subgraph(network, v = c("?", "B", "D"))

## strength(): součet vah hran sousedních hran uzlu "?" prob_fraud <- strength(subnetwork, v = "?") / strength(network, v = "?")
prob_fraud
0.375
Detekce podvodů v R

Pojďme si procvičit!

Detekce podvodů v R

Preparing Video For Download...