大规模网络中的欺诈风险传播

数据挖掘 Python 图表 网络x
2022-03-02 20:36:58

使用 python 在网络中进行一些图形分析和风险传播的最佳方法是什么,其中多个账户通过关系连接,网络中的少数账户被标记为坏账户,其余账户未知?

我尝试使用networkx,但它似乎永远运行。我有大约 8MM 边缘和 40K 节点

2个回答

您可以尝试应用图卷积网络来进行一些半监督学习。参见 Kipf 和 Welling 的论文“Semi-Supervised Classification with Graph Convolutional Networks”。不过,这可能取决于您的数据集有多不平衡。如果数据集太大,您可以训练其中的一个样本,然后在该子集上训练 GCN。我会尝试找到一些示例数据点并从中创建一个训练集。

正如 Victor 建议的那样,您可能需要图卷积网络。40K 节点对于内存来说太多了,因此您可以考虑类似 GraphSAGE 的方法,它建议围绕目标点对子图进行采样,然后为它们运行某种 GCN 或 GAT(图注意力网络)。您可以为此使用 DGL 或 pytorch 几何等库。

其他值得注意的方法是 Deep Walk,它通过邻域生成一些嵌入。另外,它保留了嵌入中的局部性。减号,根据我的经验,它的比例不太好,但你可以试一试。