【GNN图神经网络】理解图特征之聚类系数(Clustering coefficient)
研究聚类系数的目的和意义描述一个图中的某节点与其相连节点之间聚集成团的程度的一个系数。聚类系数的目标是比较群组的聚合紧密程度与其能够达到的聚合紧密程度。一个节点的局部聚类系数体现的是其邻节点也相互连通的可能性。聚类系数的研究范围是无向图。对于我的研究意义:在地理位置的定位分析过程中,需要考虑不同坐标之间的聚集程度,那么聚类系数就是一个很基础且很重要的图指标。方法基础:三角形计数计算公式CC(u)=
-
研究聚类系数的目的和意义
描述一个图中的某节点与其相连节点之间聚集成团的程度的一个系数。
聚类系数的目标是比较群组的聚合紧密程度与其能够达到的聚合紧密程度。
一个节点的局部聚类系数体现的是其邻节点也相互连通的可能性。
聚类系数的研究范围是无向图。
对于我的研究意义:在地理位置的定位分析过程中,需要考虑不同坐标之间的聚集程度,那么聚类系数就是一个很基础且很重要的图指标。 -
方法基础:三角形计数
-
计算公式
CC(u)=2Ruku(ku−1)CC(u)=\frac{2R_u}{k_u(k_u-1)}CC(u)=ku(ku−1)2Ru
uuu:节点
CC(u)CC(u)CC(u):聚类系数
RuR_uRu:uuu邻节点的关系数(三角形计数)
KuK_uKu:uuu的一阶邻节点数 -
公式背后的含义
聚类系数实际上是相对的评估指标:ku(ku−1)2\frac{k_u(k_u-1)}{2}2ku(ku−1)计算节点uuu与其邻节点如果构成完全图(即图上节点的两两都存在相互连接)的三角形总量,RuR_uRu是该节点uuu实际所在的三角形的总数,他们的比值就是节点的聚类系数(即局部聚类系数)。
实际上就是算节点uuu与邻居构成实际组成的三角形数除上最大可能三角形个数,翻译成简单的话就是我的朋友之间相互认识程度。
简单来说,其相关性描述如下:
CC(u)∝RuCC(u) \propto R_uCC(u)∝Ru
CC(u)∝ku(ku−1)2CC(u) \propto \frac{k_u(k_u-1)}{2}CC(u)∝2ku(ku−1)
分子越大,说明节点与邻节点形成更多的三角形(更大的相关性/聚集程度);
分母越大,说明节点与邻节点构成完全图时能够形成更多的三角形。
这样也就很好理解聚类系数的计算公式以及其中的含义了。 -
Examples

以第三个图为例:
ku=5,Ru=6k_u=5,R_u=6ku=5,Ru=6
CC(u)=2×65×(5−1)=0.6CC(u)=\frac{2\times 6 }{5\times (5-1)}=0.6CC(u)=5×(5−1)2×6=0.6
其他例子均同理可计算,尝试用公式严格计算和直观计算形成🔺数/最大🔺数的比值两种方式验证聚类系数的计算准确性。

-
实际应用的例子
在社交网络中,对众多用户的聊天情况进行图建模,如下图所示:

通过聚类系数0.11能分析出什么有价值的信息?
答案就是:平均在每个人聊天过的朋友中,只有11%的朋友会彼此聊天。
这个解释就很好地印证了聚类参数是我的朋友之间之间的认识程度这个观点。 -
非连通图带来的问题及考虑方案
各类图的评估指标都会收到非连通图的影响,需要去避免这个影响。考虑如下方案:
分别计算每一个连通分量,包含极少节点的连通分量直接人工分析即可;
在计算结果中加入惩罚系数;
直接过滤掉节点较少的连通分量,单独对每一个节点较多的连通分量计算分析,即是将非连通图转换为多个连通子图进行独立分析。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)