以社交網路推論

R 的詐欺偵測

Tim Verdonck

Professor Data Science at KU Leuven

以社交網路推論

目標

根據其他節點的行為來預測某節點的行為

缺少的網路節點

R 的詐欺偵測

以社交網路推論

挑戰

  • 資料彼此相關,非獨立
    • 一個節點的行為會影響其他節點
    • 節點之間存在相關行為
  • 集體推論:節點的推論結果會互相影響

缺少的網路節點

R 的詐欺偵測

非關聯式 vs 關聯式

非關聯式模型

  • 只用在地資訊
  • 邏輯斯回歸、決策樹⋯⋯

logistic_regression.png

關聯式模型

  • 利用網路中的連結
  • 關聯鄰居分類器

simple_network.png

R 的詐欺偵測

關聯鄰居分類器

假設

  • 同質性:有連結的節點傾向屬於同一類(「由關聯推定」)
  • 部分類別標籤已知

遺漏節點

R 的詐欺偵測

關聯鄰居分類器

詐欺機率

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

遺漏節點

R 的詐欺偵測

帶權重的關聯鄰居分類器

詐欺機率

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

加權的遺漏節點

R 的詐欺偵測

關聯鄰居分類器

vertex_attr(network) ## 節點標記為 1(詐欺)、0(非詐欺),或 NA(未知)
$name
"?" "B" "C" "D" "E" "A"
$isFraud
NA  1  0  1  0  0
edge_attr(network) ## 邊具有權重

$weight
2 3 1 1 1
R 的詐欺偵測

關聯鄰居分類器

## subgraph():建立只含節點 "?" 與所有詐欺節點的子圖
subnetwork <- subgraph(network, v = c("?", "B", "D"))

## strength():計算節點 "?" 鄰接邊的權重總和 prob_fraud <- strength(subnetwork, v = "?") / strength(network, v = "?")
prob_fraud
0.375
R 的詐欺偵測

一起來練習吧!

R 的詐欺偵測

Preparing Video For Download...