发明内容
针对上述缺陷或不足,本发明的目的在于提供一种复杂网络的广义社区发现方法。
为达到以上目的,本发明的技术方案为:
一种复杂网络的广义社区发现方法,包括:
1)、获取复杂网络的所有节点,将所有节点依次定义为示例节点,除所定义示例节点之外的所有节点定义为该示例节点的标记节点,且每个示例节点与标记节点之间具有唯一对应的描述度;
2)、对示例节点进行依次进行比较判断,选取每个示例节点中描述度最大的标记节点,并将所有选取的标记节点定义为放置节点;
3)、根据节点及边的信息,对每个放置节点进行节点筛选,筛选出独立节点和非独立节点;对独立节点依次进行节点到社区的判断,获取每个独立节点到各个社区的描述度,并将每个独立节点划分到描述度最大的社区;
4)、根据所设定的网络社区划分数量,将所划分的社区进行社区合并,得到最终的所需社区。
所述步骤1)具体包括:
标记所有节点序号,并且标记示例节点i,对标记节点j分配一个实数
数值
表示标记节点j描述示例节点i的描述度,定义为:
其中,
其中i∈N,Mi为示例节点的总关联度;R
ij表示节点i与节点j之间的关联度,
其中0<i,j≤n,i,j∈N,关联度的值等于标记节点j在示例节点i上的重要程度乘以标记节点i在示例节点j上的重要程度;
节点的重要程度定义为如下:
其中,d(i)表示节点i的度,
表示标记节点j在示例节点i中的重要程度,定义为:
其中,aij表示节点i与节点j之间是否存在连边;若节点i与节点j之间存在连边,则aij=1,i,j∈N,N为整数,若节点i与节点j之间不存在连边,则aij=0,i,j∈N。
所述步骤3)具体包括:
3.1、定义复杂网络邻接矩阵A=(aij)n×n,i,j∈N,设当前已划分好的社区为C={C1,C2,…Cx},x为划分的社区号,表示已划分好的第一个社区、第二个社区等等。复杂网络的节点邻接矩阵A表示为:
节点i与节点j之间存在连边,则aij=1,i,j∈N,如果节点i与节点j之间不存在连边,则aij=0,i,j∈N;
3.2、将每个放置节点根据节点序号的大小依次进行判断,若节点i与社区Cx中任一节点都没有连边,则称该节点i为复杂网络中的独立节点;
3.3、将独立节点进行集合,根据节点序号的大小,首先处理序号小的节点i,并将所处理的该节点i作为示例节点,其余节点为标记节点,然后计算示例节点到各个社区的描述度;所述示例节点与社区的描述度等于示例节点与社区中该示例节点的标记节点描述度的总和;
3.4、根据示例节点到各个社区的描述度大小,将示例节点归到与该示例节点描述度最大的社区中。
所述步骤3)还包括:
若独立节点描述度最大值的社区为多个,则对该非独立节点进行节点度的判断,判断该非独立节点的度值,如果度值大于等于2时,则将与此非独立节点描述度最大值相等的社区们归为一个社区,并且该社区包括此非独立节点。
所述步骤4)具体包括:
根据网络社区划分数量,作为先验知识,每轮选取节点度数最大的节点作为示例节点,计算除集合内部节点社区之外的社区到集合节点社区的描述度,将使描述度最大的两个社区进行归并。
与现有技术比较,本发明的有益效果为:
本发明提供了一种复杂网络的广义社区发现方法,将节点描述度表示示例节点与其它节点的重要关联程度,利用节点的重要程度、节点与节点之间的关联程度以及标记分布中示例的特性得出节点的描述度,一个示例节点对应多个描述度,将标记分布学习的思想融合到社区发现中,既缩减了标记成本,同时又提高了运行效率,并且通过实验数据证明划分社区的效果及效率很好,在实际应用中,能够更深入地了解网络内部之间存在的联系,也有助于进一步研究更多的方向。
具体实施方式
下面将结合附图对本发明做详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。
如图1所示,本发明提供了一种复杂网络的广义社区发现方法,由网络初划分、网络节点调整、社区合并三个部分组分,其中网络节点调整由独立节点的调整、节点到社区的判断、节点度的判断三个步骤组成。
具体包括:
网络初划分:
1)、获取复杂网络的所有节点,将所有节点依次定义为示例节点,除所定义示例节点之外的所有节点定义为该示例节点的标记节点,且每个示例节点与标记节点之间具有唯一对应的描述度;
标记所有节点序号,并且标记示例节点i,对标记节点j分配一个实数
数值
表示标记节点j描述示例节点i的描述度,定义为:
其中,
其中i∈N,M
i为示例节点的总关联度;R
ij表示节点i与节点j之间的关联度,
其中0<i,j≤n,i,j∈N,关联度的值等于标记节点j在示例节点i上的重要程度乘以标记节点i在示例节点j上的重要程度;
节点的重要程度定义为如下:
其中,d(i)表示节点i的度,
表示标记节点j在示例节点i中的重要程度,定义为:
其中,aij表示节点i与节点j之间是否存在连边;若节点i与节点j之间存在连边,则aij=1,i,j∈N,N为整数,若节点i与节点j之间不存在连边,则aij=0,i,j∈N。
2)、对示例节点进行依次进行比较判断,选取每个示例节点中描述度最大的标记节点,并将所有选取的标记节点定义为放置节点;
网络节点调整:
网络节点调整包括单个节点划分到社区、节点归并到社区、独立节点的处理三个步骤。通过网络初划分后,示例节点与标记节点中描述度的最大值不止一个个时,将这类节点筛选下来,进行独立节点的处理、节点到社区的判断、节点度的判断三轮处理,每轮都是对上一轮筛选下来的节点进行的处理。
3)、根据节点及边的信息,对每个放置节点进行节点筛选,筛选出独立节点和非独立节点;对独立节点依次进行节点到社区的判断,获取每个独立节点到各个社区的描述度,并将每个独立节点划分到描述度最大的社区里;
所述步骤3)具体包括:
3.1、定义复杂网络邻接矩阵A=(aij)n×n,i,j∈N,设当前已划分好的社区为C={C1,C2,…Cx},x为划分的社区号,表示已划分好的第一个社区、第二个社区等等。复杂网络的节点邻接矩阵A表示为:
节点i与节点j之间存在连边,则aij=1,i,j∈N,如果节点i与节点j之间不存在连边,则aij=0,i,j∈N;n为节点邻接矩阵A的行列数;
3.2、将每个放置节点根据节点序号的大小依次进行判断,若节点i与社区Cx中任一节点都没有连边,则称该节点i为复杂网络中的独立节点;
3.3、将独立节点进行集合,根据节点序号的大小,首先处理序号小的节点i,并将所处理的该节点i作为示例节点,其余节点为标记节点,然后计算示例节点到各个社区的描述度d;所述示例节点与社区的描述度等于示例节点与社区中该示例节点的标记节点描述度的总和;
3.4、根据示例节点到各个社区的描述度大小,将示例节点归到与该示例节点描述度最大的社区中。
3.5、若独立节点描述度最大值的社区为多个,则对该非独立节点进行节点度的判断,判断该非独立节点的度值,如果度值大于等于2时,则将与此非独立节点描述度最大值相等的社区们归为一个社区,并且该社区包括此非独立节点。
社区合并:
4)、根据所设定的网络社区划分数量,将所划分的社区进行社区合并,得到最终的所需社区。
根据网络社区划分数量,作为先验知识,每轮选取节点度数最大的节点作为示例节点,计算除集合内部节点社区之外的社区到集合节点社区的描述度,将使描述度最大的两个社区进行归并。
实验过程:
实验数据集通过真实网络来验证本文算法的有效性和可行性,采用了空手道俱乐部网络、海豚网络、美国足球队网络、美国政治书网络以及形容词和名词邻接网络五个真实网络作为测试数据集,利用标记分布学习来刻画不同标记的重要程度,把这一重要程度命名为标记分布中节点的描述度,把它作为衡量节点是否成为一个社区的唯一标准,由网络初划分、网络节点调整、社区合并三个部分组分,其中网络节点调整由独立节点的调整、节点到社区的判断、节点度的判断三个步骤组成。实验数据集信息如表1所示:
表1实验数据集信息
实施例1
空手道俱乐部网络:空手道俱乐部网络是进行社区发现时常用的小型网络之一,是由大学空手道俱乐部成员之间的关系组合而成,由于主管和教练的争吵,于是俱乐部分成了两个小俱乐部。网络中包含34个节点,每个节点表示俱乐部成员,节点间的连接表示两个成员。
运用空手道俱乐部网络对CDNL算法形成的社区进行比较,利用网络初划分及调整后的社区图2(a)与网络社区归并后效果图2(b)进行了比较,对归并后的社区结果与空手道俱乐部网络自然划分(图3)进行了比较。在社区归并后得到了合理的社区划分,划分数量为2个社区,如图2(b)所示。从模块度Q值的角度来看,CDNL算法模块度值在GN算法和网络自然划分模块度值之间,因此,CDNL算法在空手道俱乐部网络中社区划分效果良好。
实施例2
海豚网络:海豚网络是由观察宽嘴海豚的生活习性而得出的网络,海豚之间如频繁活动,则两海豚之间就会存在一条边。网络中包含62个节点,节点表示海豚,边表示海豚之间的接触度较于频繁。
运用海豚网络比较了CDNL算法在归并前与归并后的社区效果。从图4(a)可知网络初划分及节点调整后,社区划分为17个,社区中存在节点数量较少的形成了一个社区,经小社区向大社区进行归并后,社区归并为2个,如图4(b)所示,得到了合理的社区划分结果。
表1 CDNL算法与其他算法在真实网络上的NMI
表2 LPA算法在真实网络上的NMI
空手道俱乐部网络以及海豚网络在各个算法中的准确度结果如上表所示。数据显示利用CDNL算法进行社区划分更稳定、更准确。
实施例3
美国足球队网络:美国足球队网络是由美国大学生足球联赛而创建的。网络中包含115个节点,节点表示参赛的足球队,节点之间的连边表示两球队之间进行过一场比赛。
实施例4
美国政治书网络:美国政治书网络是由美国在线书店上销售的政治书籍而建立的网络。网络共有105个节点,节点表示销售的政治相关书籍,边表示有读者同时购买了相连两节点表示的书籍。
运用美国政治书网络比较了CDNL算法在归并前与归并后的社区效果。从图5(a)可知,网络初划分及节点调整后,社区划分为22个,社区中存在节点数量较少的形成了一个社区,经小社区向大社区进行归并后,社区归并为3个,如图5(b)所示,社区划分效果明显。
实施例5
形容词和名词邻接网络:此网络是利用小说中常用的形容词和名词而邻接成的网络。网络共有112个节点,节点代表本书中常见的形容词和名词,节点值对于形容词是0,对于名词是1,边是对书中相邻位置出现的单词对进行的连接。
表4 CDNL算法与其他算法在各真实网络上的模块度Q
在karate、dolphins、polbooks以及adjnoun网络下,CDNL算法模块度数值都处于各算法数值之间。CDNL算法在节点数量较少的情况下,模块度能取得较好的数值,因此,节点数量较少时,运用此算法能增加网络社区结构强度,使得社区划分效果更明显。
表5 CDNL算法与其他算法在各真实网络上的社区数量
表6 LPA算法在真实网络上执行n次后的社区数量
在执行次数不同的情况下,LPA算法出现了多个数值,会划分成不同数量的社区,表明利用LPA算法进行社区划分时不稳定,而CDNL算法、GN算法以及fast Newman算法都能得到划分后的社区数量,并且CDNL算法相较于其他两个算法来说,社区划分数量较小,说明利用CDNL算法进行社区划分时,社区划分更为明显、更稳定。
表7 CDNL算法与其他算法在各真实网络上的运行时间
在karate、dolphins网络这种节点数量较少的情况下,三个算法的运行时间相差不多;像football、polbooks、adjnoun网络这种节点数量较多的情况下,fast Newman算法的运行时间比CDNL算法、LPA算法的运行时间相差较多,但CDNL算法与LPA算法的运行时间相差很少,说明CDNL算法进行社区划分时,划分速度较快,尤其在网络节点数量较少时,算法运行更有效率。因此,除LPA算法外,CDNL算法划分社区用时少、运行更加快速。
综上所述:本发明提供的基于标记分布节点描述度的社区发现算法通过实验数据证明划分社区的效果及效率很好。在实际应用中,能够让人们更深入地了解网络内部之间存在的联系,也有助于进一步研究更多的方向。
对于本领域技术人员而言,显然能了解到上述具体事实例只是本发明的优选方案,因此本领域的技术人员对本发明中的某些部分所可能作出的改进、变动,体现的仍是本发明的原理,实现的仍是本发明的目的,均属于本发明所保护的范围。