参考文献:An overlapping community detection algoritm based on density peaks(Neurocomputing2017 c)
1.聚类过程:
邻接矩阵—>距离矩阵—>计算 ρ , δ —>归一化—>选择聚类中心—>将其他点分配到群组中
2.几个定义
在DPC中,输入是距离矩阵;在复杂的网络中,输入通常是邻接矩阵。一个直观的想法是,使用链接权重的倒数表示距离,然而,通常邻接矩阵很稀疏,这样取倒数会出现许多无穷大的值,使得得到的距离值并不具有区分性。节点i通过一个中间节点到达节点j,节点p与通过两个中间节点到达节点q,距离都是无穷大,但是明显节点i和j与p和q的距离应该是不一样的。
为解决这个问题,本文考虑了中间节点(intermediate nodes)。
2.1.绝对链接强度(absolute strength of linkage)
绝对链接强度定义为节点i在经历 2α 跳到达节点j的路由数。
其中, aij 表示i与j的权重(来自于邻接矩阵), 2α 表示跳数
2.2.链接强度(strength of linkage)
仅考虑绝对链接强度是不准确的,在Fig.2中,当 α=1 时,A到C的路由和A到B的路由数相同,但是C的所有边在两步之内都能到达A,但是B的某些边在2不之内不能到达C,所以A距C较B远。
因此,在计算距离的时候,还考虑了基于度(degree)的 相对链接强度(relative strength of linkage),i与j的链接强度使用如下方法计算:
其中,左边表示绝对链接强度,右边表示相对链接强度,t表示加权系数。
2.3.距离
其中, ϵ 是一个较小的正数,保证分母不为0
2.4. ρ 和 δ 的计算
rho和delta的计算方法与DPC一样。当两个群组A、B重叠的时候, δ 比群组不重叠时小。如果一个网络中有很多交叉群组时, δ 可能不会明显大(包括聚类中心的 δ )。
为了更准确的区分出聚类中心,本文在计算出 ρ 和 δ 后将其归一化:
其中, da 是一个阈值,从