Suy luận dựa trên mạng xã hội

Phát hiện gian lận với R

Tim Verdonck

Professor Data Science at KU Leuven

Suy luận dựa trên mạng xã hội

Mục tiêu

Dự đoán hành vi của một nút dựa trên hành vi của các nút khác

các nút thiếu trong mạng

Phát hiện gian lận với R

Suy luận dựa trên mạng xã hội

Thách thức

  • Dữ liệu không độc lập
    • Hành vi của một nút có thể ảnh hưởng nút khác
    • Hành vi giữa các nút có tương quan
  • Suy luận tập thể: suy luận về các nút có thể ảnh hưởng lẫn nhau

các nút thiếu trong mạng

Phát hiện gian lận với R

Phi quan hệ vs quan hệ

Mô hình phi quan hệ

  • Chỉ dùng thông tin cục bộ
  • Hồi quy logistic, cây quyết định, ...

hồi quy logistic

Mô hình quan hệ

  • Tận dụng các liên kết trong mạng
  • Bộ phân loại láng giềng quan hệ

mạng đơn giản

Phát hiện gian lận với R

Bộ phân loại láng giềng quan hệ

Giả định

  • Đồng thanh tương ứng (homophily): nút nối với nhau có xu hướng cùng lớp ("guilt by association")
  • Một số nhãn lớp đã biết

nút thiếu

Phát hiện gian lận với R

Bộ phân loại láng giềng quan hệ

Xác suất gian lận

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

nút thiếu

Phát hiện gian lận với R

Bộ phân loại láng giềng có trọng số

Xác suất gian lận

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

nút thiếu có trọng số

Phát hiện gian lận với R

Bộ phân loại láng giềng quan hệ

vertex_attr(network) ## Nodes are labeled as 1 (fraud), 0 (not fraud), or NA (unknown)
$name
"?" "B" "C" "D" "E" "A"
$isFraud
NA  1  0  1  0  0
edge_attr(network) ## The edges have a weight

$weight
2 3 1 1 1
Phát hiện gian lận với R

Bộ phân loại láng giềng quan hệ

## subgraph(): create subgraph containing nodes "?" and all fraudulent nodes
subnetwork <- subgraph(network, v = c("?", "B", "D"))

## strength(): sum up the edge weights of the adjacent edges for node "?" prob_fraud <- strength(subnetwork, v = "?") / strength(network, v = "?")
prob_fraud
0.375
Phát hiện gian lận với R

Ayo berlatih!

Phát hiện gian lận với R

Preparing Video For Download...