Relational neighbor classifier
โมเดลเชิงสัมพันธ์ตั้งอยู่บนแนวคิดที่ว่าพฤติกรรมระหว่างโหนดมีความสัมพันธ์กัน กล่าวคือ โหนดที่เชื่อมต่อกันมีแนวโน้มที่จะอยู่ในกลุ่มเดียวกัน โดยเฉพาะ relational neighbor classifier จะทำนายกลุ่มของโหนดจากโหนดเพื่อนบ้านและเส้นเชื่อมที่อยู่ติดกัน
ชุดข้อมูล transfers ประกอบด้วยธุรกรรมจากบัญชีต่าง ๆ ส่วนข้อมูล account_info ระบุว่าบัญชีใดเป็น money mule อย่างไรก็ตาม ยังไม่ทราบว่าบัญชี "I41" เป็น money mule หรือไม่ ให้ทำนายความน่าจะเป็นที่บัญชี "I41" จะเป็น money mule โดยใช้ relational neighbor classifier
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การตรวจจับการฉ้อโกงใน R
คำแนะนำการฝึกหัด
- สร้างกราฟแบบ ไม่มีทิศทาง ชื่อ
netจากข้อมูลtransfersโดยตั้งค่าdirectedให้เป็นค่าบูลีนที่เหมาะสม (TRUEหรือFALSE) - กำหนดสีให้แต่ละโหนด: ตั้งค่า
V(net)$colorเป็น"darkorange"ถ้าaccount_info$isMoneyMule == TRUEและ"slateblue1"ในกรณีอื่น - ใช้
subgraph()กับnetเพื่อสร้าง subgraph ชื่อsubsetที่ประกอบด้วย vertices"I41","I47","I87"และ"I20" - ใช้ฟังก์ชัน
strength()กับsubnetและ กับnetเพื่อคำนวณความน่าจะเป็นที่โหนด"I41"จะเป็น money mule ในรูปของสัดส่วนเพื่อนบ้านที่เป็น mule
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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")