前面一篇文章,有朋友留言:十亿加节点局部聚类系数能跑出来么?
本期,主要学习和解答这个问题。
1、聚类系数
聚类系数(Clustering coefficient)是表示一个图中节点聚集程度的系数。
定义有两种,全局的和局部的(局部的聚类系数中又包含一个平均聚类系数)。
2、全局聚类系数
全局聚类叙述的算法基于Triplet。
Triplet分为开放的(open triplet)和封闭的(closed triplet)两种。如果三个节点之间有2条无向边,则称为Open triplet;如果存在3条无向边,则为Close triplet。需要特别注意的是:一个三角形,包含3个closed triplet.
可以用下面结构定义一个triplet
struct triplet
{
int key;
set pair;
};
例如下图 {1, (2,3) } 构成的triplet是封闭的,{3, (4,5) } 构成的triplet是开放的图一:Triplet示例
全局的Clustering coefficient的计算方法:
Clustering coefficient(global) = number of closed triplet / number of triplet(closed+open)
以上图为例:
closed triplet ={1, (2,3) },{2, (1,3) },{3, (1,2) }
all triplet =