(智能合约实习)SimGNN 数据集格式介绍

123 阅读4分钟

SimGNN 数据集格式介绍

SimGNN 模型读取的图是以 JSON 键值对的形式保存的。以下是对数据集中 testtrain 文件夹中 JSON 文件格式的详细介绍:

数据集示例

test 文件夹中的示例 JSON 文件:

{
  "graph_1": [[0, 8], [0, 9], [0, 2], [0, 3], [0, 11], [1, 2], [1, 3], [1, 5], [1, 6], [1, 7], [2, 3], [2, 5], [2, 6], [2, 7], [2, 8], [2, 10], [2, 11], [3, 5], [3, 7], [3, 8], [3, 10], [3, 11], [4, 9], [4, 10], [4, 5], [4, 6], [4, 7], [5, 7], [5, 8], [5, 11], [6, 7], [6, 8], [6, 11], [7, 8], [7, 10], [7, 11], [8, 9], [10, 11]],
  "ged": 32,
  "graph_2": [[0, 1], [0, 2], [0, 4], [1, 8], [1, 10], [1, 2], [1, 7], [2, 4], [2, 7], [2, 9], [2, 11], [3, 10], [3, 11], [3, 5], [3, 6], [3, 7], [4, 9], [4, 11], [5, 8], [5, 9], [5, 6], [6, 9], [7, 9], [7, 10], [7, 11], [8, 9], [8, 10], [9, 10], [9, 11], [10, 11]],
  "labels_2": ["3", "5", "6", "5", "4", "4", "3", "6", "4", "8", "6", "6"],
  "labels_1": ["5", "5", "9", "8", "5", "7", "6", "9", "7", "3", "5", "7"]
}

train 文件夹中的示例 JSON 文件:

{
  "labels_1": ["9", "10", "10", "8", "8", "11", "8", "8", "7", "10", "13", "10", "10", "9", "9", "10"],
  "labels_2": ["9", "9", "8", "11", "7", "10", "10", "8", "9", "8", "7", "9", "8", "6", "10", "11"],
  "graph_2": [[0, 2], [0, 3], [0, 5], [0, 6], [0, 7], [0, 9], [0, 12], [0, 14], [0, 15], [1, 2], [1, 3], [1, 6], [1, 8], [1, 9], [1, 11], [1, 13], [1, 14], [1, 15], [2, 6], [2, 7], [2, 8], [2, 10], [2, 11], [2, 15], [3, 4], [3, 5], [3, 7], [3, 8], [3, 9], [3, 10], [3, 12], [3, 14], [3, 15], [4, 5], [4, 6], [4, 7], [4, 11], [4, 13], [4, 15], [5, 6], [5, 9], [5, 10], [5, 12], [5, 13], [5, 14], [5, 15], [6, 8], [6, 9], [6, 10], [6, 11], [6, 15], [7, 11], [7, 12], [7, 14], [7, 15], [8, 9], [8, 11], [8, 12], [8, 13], [8, 14], [9, 10], [9, 14], [10, 11], [10, 15], [11, 14], [11, 15], [12, 13], [12, 14], [12, 15], [13, 14]],
  "ged": 9,
  "graph_1": [[0, 3], [0, 4], [0, 5], [0, 6], [0, 10], [0, 11], [0, 12], [0, 14], [0, 15], [1, 2], [1, 3], [1, 4], [1, 5], [1, 7], [1, 9], [1, 10], [1, 11], [1, 12], [1, 13], [2, 3], [2, 5], [2, 6], [2, 7], [2, 9], [2, 10], [2, 11], [2, 13], [2, 14], [3, 9], [3, 10], [3, 12], [3, 13], [3, 15], [4, 5], [4, 7], [4, 8], [4, 9], [4, 10], [4, 15], [5, 6], [5, 7], [5, 9], [5, 10], [5, 11], [5, 14], [5, 15], [6, 7], [6, 8], [6, 9], [6, 10], [6, 15], [7, 11], [7, 12], [7, 14], [8, 11], [8, 12], [8, 13], [8, 14], [8, 15], [9, 10], [9, 11], [9, 13], [9, 15], [10, 11], [10, 12], [10, 13], [10, 14], [10, 15], [11, 12], [11, 14], [12, 13], [12, 14], [12, 15], [13, 14], [13, 15]]
}

具体格式说明

graph_1graph_2

  • graph_1graph_2 是两个图的边列表。每个元素 [x, y] 表示图中从节点 x 到节点 y 的一条边。
  • 这些边定义了图的连接结构,描述了图的拓扑。

labels_1labels_2

  • labels_1labels_2 是两个图中节点的标签列表。
  • 节点标签是图中用于标识或描述每个节点的附加信息。例如:
    • 在化学分子图中,节点标签表示原子类型(例如,C、H、O)。
    • 在社交网络中,节点标签可以表示用户的某种特性(如兴趣、性别)。
    • 在一般图相似性问题中,节点标签可以是用于区分节点的任意数值或类别。
  • 列表中的每个元素对应一个节点的标签,索引表示节点的ID。例如,["5", "5", "9", "8", "5"] 表示第0号节点的标签为5,第1号节点的标签为5,依此类推。

ged

  • ged 表示图编辑距离(Graph Edit Distance),即将 graph_1 转换为 graph_2 所需的编辑操作数量(如插入、删除、替换节点或边)。
  • 值越小,表示两个图越相似。例如,"ged": 32 表示图之间的编辑距离为32。

这个数据格式用于训练和测试图相似性计算模型,如 SimGNN。