概述
局部聚类系数(Local Clustering Coefficient)算法计算节点邻居之间连接的密度。它量化了邻居之间实际连接与可能连接之间的比值。
局部聚类系数体现了节点自我网络(Ego Network)的凝聚性。在社交网络中,局部聚类系数能够帮助理解一个人认识的人之间的相互连接程度。较高的局部聚类系数意味着他认识的人很可能也相互认识,这表明存在一个紧密结合的社交群体,例如家庭。相反,较低的局部聚类系数表示自我网络的连接较松散,他认识的人之间没有紧密的连接。
基本概念
局部聚类系数
在数学上,无向图中节点的局部聚类系数是相连的邻居节点对数量与所有可能的邻居节点对数量的比值:
![](https://img.ultipa.cn/img/2023-07-18-16-59-16-coef.jpg)
其中,n表示节点v的一步邻域(表示为 N(v))节点数,i和j是N(v)中的任意两个不同的节点,如果i和j有边相连,δ(i,j)等于1,否则为0。
![](https://img.ultipa.cn/draw/draw_cadeb0a4ab4648b7b3b7b8f2c05e12c0.jpg?v='1689671244074')
本例中,红色节点的局部聚类系数为1/(5*4/2) = 0.1。
特殊说明
- 局部聚类系数算法忽略边的方向,按照无向边进行计算。
语法
- 命令:
algo(clustering_coefficient)
- 参数:
名称 |
类型 |
规范 |
默认 |
可选 |
描述 |
---|---|---|---|---|---|
ids / uuids | []_id / []_uuid |
/ | / | 是 | 指定要计算局部聚类系数的节点的ID/UUID,忽略则计算全部点 |
limit | int | ≥-1 | -1 |
是 | 返回的结果条数,-1 返回所有结果 |
order | string | asc , desc |
/ | 是 | 按局部聚类系数大小对结果进行排序 |
示例
示例图如下:
![](https://img.ultipa.cn/draw/draw_9c12167c9fb84e5cafab7ebc1c706830.jpg?v='1719193790144')
文件回写
配置项 | 回写内容 |
---|---|
filename | _id ,centrality |
algo(clustering_coefficient).params({
ids: ['Lee', 'Choi']
}).write({
file:{
filename: 'lcc'
}
})
结果:文件lcc
Lee,0.266667
Choi,1
属性回写
配置项 | 回写内容 | 回写至 | 数据类型 |
---|---|---|---|
property | centrality |
点属性 | float |
algo(clustering_coefficient).params().write({
db:{
property: 'lcc'
}
})
结果:每个节点局部聚类系数的值回写至名为lcc的点属性下
直接返回
别名序号 | 类型 | 描述 | 列名 |
---|---|---|---|
0 | []perNode | 点及其局部聚类系数 | _uuid , centrality |
algo(clustering_coefficient).params({
order: 'desc'
}) as lcc
return lcc
结果:lcc
_uuid | centrality |
---|---|
2 | 1 |
6 | 1 |
3 | 0.666667 |
4 | 0.666667 |
7 | 0.666667 |
1 | 0.266667 |
5 | 0 |
流式返回
别名序号 | 类型 | 描述 | 列名 |
---|---|---|---|
0 | []perNode | 点及其局部聚类系数 | _uuid , centrality |
algo(clustering_coefficient).params().stream() as lcc
where lcc.centrality == 1
return count(lcc)
结果:2