许多场景中的图数据是由多个图组成,而不是单个的大图数据。例如不同类型的人群社区。 通过用图刻画同一社区里人与人间的友谊,可以得到多张用于分类的图。 在这个场景里,整图分类模型可以识别社区的类型,即根据结构和整体信息对图进行分类。
概述¶
整图分类与节点分类或链接预测的主要区别是:预测结果刻画了整个输入图的属性。 与之前的任务类似,用户还是在节点或边上进行消息传递。但不同的是,整图分类任务还需要得到整个图的表示。
整图分类的处理流程如下图所示:
整图分类流程¶
从左至右,一般流程是:
准备一个批次的图;
在这个批次的图上进行消息传递以更新节点或边的特征;
将一张图里的节点或边特征聚合成整张图的图表示;
根据任务设计分类层。
批次的图¶
整图分类任务通常需要在很多图上进行训练。如果用户在训练模型时一次仅使用一张图,训练效率会很低。 借用深度学习实践中常用的小批次训练方法,用户可将多张图组成一个批次,在整个图批次上进行一次训练迭代。
使用DGL,用户可将一系列的图建立成一个图批次。一个图批次可以被看作是一张大图,图中的每个连通子图对应一张原始小图。
批次化的图¶
需要注意,DGL里对 ...
在DGL中,可以使用dgl.degree、dgl.in_degree和dgl.out_degree函数来计算图的度、入度和出度。此外,DGL还提供了一些其他库和函数来计算不同类型的中心性度量。以下是几种常见的中心性度量及其计算方法:
度中心性(Degree Centrality):度中心性衡量一个节点与图中其他节点之间的连接数量。可以使用dgl.degree函数计算节点的度。
123456import dgl# 创建图g = dgl.graph(([0, 1, 2], [1, 2, 3]))# 计算节点的度中心性degree_centrality = dgl.degree(g).float() / (g.number_of_nodes() - 1)print("Degree Centrality:", degree_centrality)
介数中心性(Betweenness Centrality):介数中心性衡量一个节点在图中的最短路径中充当桥梁的频率。可以使用dgl.contrib.sampling.sampler.BetweennessCentrality ...