一种基于特征向量中心性峰值聚类的重叠社团检测方法与流程

文档序号:14836578发布日期:2018-06-30 12:40阅读:780来源:国知局

本发明涉及网络科学,特别是指一种基于特征向量中心性峰值聚类的重叠社团检测方法。



背景技术:

现实网络不仅具有小世界和无标度等特征,且还具有社区结构特征。社区与社区之间的连接虽然较为稀疏,但是社区内部节点之间的连接却非常稠密。这种社区结构特征能够反映节点之间的局部聚集特性。由于社区内部的节点基本上都具有相似的性质或者相似的功能,因此社区结构的研究是进一步对整个复杂网络及其社区进行功能研究的基础。

目前,学者们已经提出了很多社区结构发现算法,其中比较典型的是图分割方法和层次聚类方法。图分割方法包括基于拉普拉斯图特征值的谱平分法;层次聚类方法根据网络中是否加边可以分为两大类:一类是凝聚算法,另一类是分裂算法。其中,分裂方法在实现社区划分过程中主要是按照某种标准来判断是否移除某边,而这个标准主要分为边介数、边聚类系数以及边信息中心度三类。GN算法是典型的分裂方法,该算法就是按照边介数最大的先移除的办法进行的。随着对社区发现的深入研究,Newman等提出了模块度函数,随后又出现了某些基于模块度极值优化的方法,如CNM算法、BGLL算法。然而,在现实生活中的网络,其节点并不是完全只属于某一个社区,而是可能属于多个社区,也就是说网络中存在着重叠部分。因此,学者们为了能更加真实地刻画网络的结构特征,又提出了许多重叠社区划分方法。如CONGA算法、GCE算法、LFM算法等。



技术实现要素:

为了克服已有的重叠社团检测算法检测结果精确度不高、实时性较差的不足,本发明提出了一种考虑了快速收敛的基于特征向量中心性峰值聚类的重叠社团检测方法。

本发明解决其技术问题所采用的技术方案是:

一种基于特征向量中心性峰值聚类的重叠社团检测方法,包括以下步骤:

步骤一:构建一个网络G(V,E),V代表网络节点,E代表网络中的边,该网络的邻接矩阵为A,其中Aij是邻接矩阵中的元素,当节点vi和节点vj有连边时,Aij=1;当节点vi和节点vj无连边时,Aij=0;λ1是矩阵A的最大的特征根;

步骤二:对于任意节点vi,计算其特征向量中心性遍历网络,求出网络中每个节点的特征向量中心性,作为衡量每个节点在网络中的重要性的指标;

步骤三:对于任意节点vi,比较该节点的特征向量中心性vi与其他网络中节点的特征向量中心性,得到特征向量中心性比自己高的节点的集合θi,计算vi与该集合θi中每个点的距离,其中的最小值被定义为节点vi的最小距离δi,节点vi的决策积定义为遍历网络,求出网络中每个节点的最小距离和决策积,按照决策积的数值对所有的节点从高到低降序排列;

步骤四:把所有的节点标注在以特征向量中心性和最小距离值为横和纵坐标的二维坐标系上,得到决策图,选择决策图右上角决策积的前β个节点作为网络的β个社团中心;

步骤五:定义任意节点vi属于不同类社团的概率向量为Pi={pi1,pi2,…,pij,…,piβ},其中pij表示节点vi属于社团j的概率;因此第α个社团中心的概率向量为Pα={pα1,pα2,…,pαj,…,pαβ},其中1≤α≤β;当j=α时,pαj=1;当j≠α时,pαj=0;

步骤六:对于其他未归属社团的非社团中心节点,从决策积最大的vi节点开始计算其概率向量,获取比节点vi的决策积大的节点个数为Ni个,并按和该节点的距离从小到大排序,对该Ni个节点编号为i1,i2,...,Nb为决策积大于而且与节点vi距离最近的节点个数,n0=min{Nb,Ni},j表示n0中的第j个节点,dij表示节点vi与vj之间的距离,则节点vi的概率向量为

步骤七:对于节点vi,r=argmax{pi1,pi2,…,pir,…,piβ},则节点vi属于r社团,其中argmax表示取出概率向量中数值最大的分量的第二个下标;

步骤八:对于节点vi,其概率向量为Pi={pi1,…,pik,…,pij,…,piβ},如果vi已经被划分到社区k中,则pik为概率向量中数值最大的分量,如果pij为概率向量中第二大的分量,而且pik-pij<ε,ε为一个数值很小的正数,那么vi为社团k和社团j的重叠节点,即vi既属于社区k也属于社区j;

步骤九:重复步骤六~步骤八,直到得到网络中所有节点找到其归属的社团。

本发明的有益效果为:将复杂网络中的特征向量中心性与聚类算法中的密度峰值聚类算法相结合,有效地提高了重叠社团的检测效果。

附图说明

图1为一个网络模型的示意图。

具体实施方式

下面结合附图对本发明做进一步说明。

参照图1,一种基于特征向量中心性峰值聚类的重叠社团检测方法,包括以下步骤:

步骤一:构建一个网络G(V,E),V代表网络节点,E代表网络中的边,如图1所示,该网络的邻接矩阵为A,其中Aij是邻接矩阵中的元素,当节点vi和节点vj有连边时,Aij=1;当节点vi和节点vj无连边时,Aij=0;λ1是矩阵A的最大的特征根;

步骤二:对于任意节点vi,计算其特征向量中心性如图1中的节点①,运用公式计算图1的特征向量中心性;

步骤三:对于任意节点vi,如图1中的节点①,比较该节点的特征向量中心性x1与其他网络中节点的特征向量中心性,得到特征向量中心性比自己高的节点的集合θ1,计算v1与该集合θ1中每个点的距离,其中的最小值被定义为节点v1的最小距离δi,节点vi的决策积定义为则可以求出节点v1的遍历网络,求出网络中每个节点的最小距离和决策积,按照决策积的数值对所有的节点从高到低降序排列;

步骤四:把所有的节点标注在以特征向量中心性和最小距离值为横和纵坐标的二维坐标系上,得到决策图,选择决策图右上角决策积的前β个节点作为网络的β个社团中心,如图1所示,β=2,节点1和2为社团中心;

步骤五:定义任意节点vi属于不同社团的概率向量为Pi={pi1,pi2,…,pij,…,piβ},其中pij表示节点vi属于社团的概率;因此第α个社团中心的概率向量为Pα={pα1,pα2,…,pαj,…,pαβ},其中1≤α≤β;当j=α时,pαj=1;当j≠α时,pαj=0,如图1中节点①为社团中心,则P1={1,0};

步骤六:对于其他未归属社团的非社团中心节点,从决策积最大的vi节点开始计算其概率向量,获取比节点vi的决策积大的节点个数为Ni个,并按和该节点的距离从小到大排序,对该Ni个节点编号为i1,i2,...,Nb为决策积大于而且与节点vi距离最近的节点个数,n0=min{Nb,Ni},j表示n0中的第j个节点,dij表示节点vi与vj之间的距离,则节点vi的概率向量为

步骤七:对于节点vi,r=argmax{pi1,pi2,…,pir,…,piβ},则节点vi属于r社团,其中argmax表示取出概率向量中数值最大的分量的第二个下标;

步骤八:对于节点vi,其概率向量为Pi={pi1,…,pik,…,pij,…,piβ},如果vi已经被划分到社区k中,则pik为概率向量中数值最大的分量,如果pij为概率向量中第二大的分量,而且pik-pij<ε,ε为一个数值很小的正数,那么vi为社团k和社团j的重叠节点,即vi既属于社区k也属于社区j,如图中的节点3,p31-p312<0.01,则节点3为重叠节点;

步骤九:重复步骤六~步骤八,直到得到网络中所有节点找到其归属的社团。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1