在图数据上使用深度学习进行二元分类

数据挖掘 机器学习 神经网络 深度学习 分类 图表
2022-02-18 00:05:39

数据:

我有某些数据,我决定将其表示为图表(我认为它会适合)。
所以我有加权图数据,其中包含每个节点的数字属性。(networkx图)。
每个图表代表一个会话。
每个会话标签要么是好 (1),要么是坏 (0)。

使命:

我需要预测给定一个未标记的图,它是好 (1) 还是坏 (0)。

到目前为止我做了什么:

我已经制作了 ML 方法来计算这些图上的特征(使用 networkx 优秀的算法)。例如,我采用 networkx 算法来计算 betweenesss、degree_centrality、closeness_centrality 等

我收到了比目前可用的结果更好的结果(没有使用图表来表示数据):F1-Score ~ 65%,ROC_AUC ~ 90%。

我的直觉:

也许我不应该随机选择 networkx 功能。如果我可以使用深度学习做一些更聪明的事情会怎样。模型应该了解坏图是什么样子,一个好图是什么样子,并做出分类

问题:

我不确定我的直觉是否正确。也许按原样提供图形不足以让模型学习。我觉得我需要关于这种方法的建议,尤其是以前的类似作品(如果有的话)。

相关前期工作

http://openaccess.thecvf.com/content_cvpr_2017/papers/Monti_Geometric_Deep_Learning_CVPR_2017_paper.pdf
http://proceedings.mlr.press/v48/niepert16.pdf
https://arxiv.org/pdf/1803.03324.pdf
https://arxiv .org/pdf/1709.05584.pdf

问题:

  1. 有没有人熟悉这些以前的工作/其他以前的工作的代码实现?
  2. 是否有人熟悉使用包含节点属性的加权图的方法?
  3. 你同意/不同意我的直觉吗?
  4. 您是否建议处理此问题的替代方法?(DL或不DL)

谢谢 :)

1个回答

将任意图作为任何当前通用 ML 算法的输入,除非您的问题和图非常具体(例如,少数节点上的所有图,或者您的训练集的大小与可能的图的数量相同那个大小,或者有一些非常简单的依赖关系——例如输出是由某些特定边缘的存在决定的,等等)似乎是一种毫无意义的方法。

您可以通过图或有向图和少量其他输入以及 0/1 标签对所有 NP 完全问题或停止问题进行编码。

AlphaGo/AlphaZero 是极少数成功的将神经网络应用于组合问题的 ML 算法之一,但它严重依赖游戏的某些特定属性,通过自我对弈和巨大资源生成无限量训练数据的可能性。

到目前为止,您所做的(尝试根据您的图表和您的特定问题构建特征)在实践中更有意义,我将进一步探索这条道路。还有一些最近的文献试图为图节点分配数字向量或“节点嵌入”,但这对于特定类型的图(稀疏网络,每个节点都有一些额外的数据)可能更有效。