关系邻居分类器
关系模型基于一个观点:节点之间的行为是相关的,也就是说,连接的节点往往属于同一类别。尤其是关系邻居分类器,会根据某个节点的相邻节点及相连边来预测该节点的类别。
数据集 transfers 包含来自不同账户的交易记录。数据 account_info 指明哪些账户是"钱骡"。不过,账户 "I41" 是否为钱骡未知。请使用关系邻居分类器,预测账户 "I41" 成为钱骡的倾向概率。
本练习是课程的一部分
R 中的欺诈检测
练习说明
- 基于
transfers创建一个名为net的"无向"图。将directed设置为合适的布尔值(TRUE或FALSE)。 - 为每个节点指定颜色:若
account_info$isMoneyMule == TRUE则将V(net)$color设为"darkorange",否则设为"slateblue1"。 - 在
net上使用subgraph()创建一个名为subset的子图,包含顶点"I41"、"I47"、"I87"和"I20"。 - 在
subnet和net上使用函数strength(),将节点"I41"的钱骡概率计算为其钱骡邻居所占比例。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# 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")