一种基于中心节点扩展的社区发现方法技术

技术编号:19342404 阅读:33 留言:0更新日期:2018-11-07 13:59
本发明专利技术公开了一种基于中心节点扩展的社区发现方法,通过节点凝聚度的计算和用户的排序,生成候选列表;然后,将候选列表中节点凝聚度最大的用户作为初始中心节点,然后逐步扩展社区,扩展进入社区的用户,从候选列表中删除,扩展社区完毕后重新选择初始中心节点进行扩展社区,直到候选列表中没有用户为止;最后,将相似的社区进行合并。由于扩展社区是依据节点凝聚度的大小先后进行的,稳定性得到了提高。采用公开的数据集Dolphin social network上进行了实验,实验结果表明本发明专利技术的方法能够较好地进行复杂社交网络的社区发现,具有很好的准确性以及有效性。

A community discovery method based on central node extension

The invention discloses a community discovery method based on central node expansion, which generates candidate list by calculating node cohesion degree and ranking of users; then, the user with the greatest node cohesion degree in candidate list is regarded as the initial central node, and then gradually expands the community, expands the user who enters the community, and from the candidate column. Delete from the table, select the initial central node to extend the community after the extended community is completed, until there are no users in the candidate list; finally, merge similar communities. The stability of the extended community is improved according to the size of the node cohesion. Experiments are carried out on the open data set Dolphin social network. The experimental results show that the method of the present invention can perform community discovery of complex social networks with good accuracy and effectiveness.

【技术实现步骤摘要】
一种基于中心节点扩展的社区发现方法
本专利技术属数据挖掘
,更为具体地讲,涉及一种基于中心节点扩展的社区发现方法。
技术介绍
通常将网络抽象成一个图,用户用图中的节点表示,用户之间的关系用边表示,这种网络中所表现出的这种结构被称之为社区。社区内部节点间连接密度较高,而不同社区间的节点连接密度较低。社区发现是分析社交网络的一种有效方法,社区发现作为社交网络数据挖掘领域的研究热点,已经得到越来越多的学者的重视。在社区发现领域,许多学者提出或总结出一些经典的社区发现算法:文献[KernighnBW,LinS.Aefficientheuristicprocedureforpartitioninggraphs[J].BellSystemTechn-IcalJournal,1970,49(2):292~307.]提出了K-L算法。K-L算法是一种试探优化法,算法中引入一个增益函数Q,然后采用贪婪算法原理交换节点对来使Q值达到最大,最后划分出两个大小已知的社区。该算法的缺点在于只能划分出两个社区且必须知道两个社区成员的数量。文献[GirvanM,NewmanMEJ.Communitystructureinsocialandbiologicalnetworks[J].ProceedingsoftheNationalAcademyofScience,2002,99(12):7821-7826.]提出了GN算法。GN算法的思想在于社区间的边的介数大于社区内部边的介数,通过不断的移除介数最大的边,直到整个网络退化成一个社区为止。该算法的优点在于不需要预先知道社区的数目,但其计算时间复杂度较高。文献[PallaG,DerényiI,FarkasI,etal.Uncoveringtheoverlappingcommunitystructureofcomplexnetworksinnatureandsociety.[J].Nature,2005,435(7043):814~818.]提出了CPM算法。CPM算法因K值的选取不同,而最终的划分结果不同。文献[LancichinettiA,FortunatoS,KertészJ.Detectingtheoverlappingandhierarchicalcommunitystructureofcomplexnetworks[J].NewJournalofPhysics,2008,11(3):19-44.]提出了LFM算法来进行社区发现。LFM算法实质上是一个贪婪算法,通过节点搜索不断地将具有最优适应度函数的节点合并。但该算法缺点在于刚开始的节点是随机选取的,所以算法不够稳定,时间复杂度较高。同时,社区发现的有效性和准确性也有待提高。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提出一种基于中心节点扩展的社区发现方法,以克服LFM算法在随机选取节点上的不稳定性,提高复杂社交网络中社区发现的准确性和有效性。为实现上述专利技术目的,本专利技术基于中心节点扩展的社区发现方法,其特征在于,包括以下步骤:(1)、将社交网络抽象成一个图:用户用图中的节点表示,用户之间的关系用边表示,然后计算节点(用户)凝聚度,并根据节点凝聚度从大到小,对用户进行排序,生成候选列表;(2)、选择候选列表中节点凝聚度最大的用户作为初始中心节点,依据局部适应度函数,对初始中心节点逐步扩展社区,扩展进入社区的用户,从候选列表中删除,扩展社区完毕后,得到一个社区;然后,进行下一个社区发现:重新在选择候选列表中节点凝聚度最大的用户作为初始中心节点,重复进行扩展社区,得到下一个社区,直到候选列表中没有用户为止;(3)、计算得到社区的相似度并将相似的社区进行合并。本专利技术的专利技术目的是这样实现的:本专利技术基于中心节点扩展的社区发现方法,通过节点凝聚度的计算和用户的排序,生成候选列表;然后,将候选列表中节点凝聚度最大的用户作为初始中心节点,然后逐步扩展社区,扩展进入社区的用户,从候选列表中删除,扩展社区完毕后重新选择初始中心节点进行扩展社区,直到候选列表中没有用户为止;最后,将相似的社区进行合并。由于扩展社区是依据节点凝聚度的大小先后进行的,稳定性得到了提高。采用公开的数据集Dolphinsocialnetwork上进行了实验,实验结果表明本专利技术的方法能够较好地进行复杂社交网络的社区发现,具有很好的准确性以及有效性。附图说明图1是本专利技术基于中心节点扩展的社区发现方法一种具体实施方式的流程图;图2是作为社区发现检验网络的海豚社会网络(Dolphinsocialnetwork)的可视化图;图3是图2所示的海豚社会网络的节点凝聚度分布图;图4是图2所示的海豚社会网络社区发现的实验仿真图;图5是各社区发现的规范化互信息(NMI)变化曲线图。具体实施方式下面结合附图对本专利技术的具体实施方式进行描述,以便本领域的技术人员更好地理解本专利技术。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本专利技术的主要内容时,这些描述在这里将被忽略。图1是本专利技术基于中心节点扩展的社区发现方法一种具体实施方式的流程图。在本实施例中,如图1所示,本专利技术基于中心节点扩展的社区发现方法包括以下步骤:步骤S1:计算节点凝聚度并生成候选列表将社交网络抽象成一个图:用户用图中的节点表示,用户之间的关系用边表示,然后计算节点(用户)凝聚度,并根据节点凝聚度从大到小,对用户进行排序,生成候选列表。其中,节点凝聚度计算为:步骤S1.1:节点度权值计算在一个社区中,中心节点的度一般来说相对较大,度大的节点它的邻接节点也就较多,因而度大的节点体现了该节点在网络中的重要性。在本实施例中,首先,要为每个节点(用户)赋予度权值,度权值由节点的度值和网络中最大节点的度值之比,用μi表示:式中ki表示节点i的度值,kmax为社交网络中节点的最大度值,kmin为网络中节点的最小度值。步骤S1.2:节点边聚集系数之和计算边聚集系数是由Radicchi等人为了解决GN算法中计算边介数时间复杂度较高的问题而提出的。边聚集系数表征着某条边的两个端点的邻接节点之间连接的紧密程度,边聚集系数的数学式定义式如下:其中,eij表示节点i与节点j之间的边,zij表示实际包含边eij的三角形数目即同时连接节点i与节点j的节点数量,ki与kj分别表示节点i与节点j的度值,C(eij)是计算两个节点i和j间的边聚集系数,若固定节点i不动,把节点j当做节点i的邻接节点看待,计算节点i和其邻接节点间的边聚集系数,直到全部计算完节点i和其邻接节点间的边聚集系数为止,然后再将这些边聚集系数相加,具体自定义的数学表达式如下:其中,aij是节点i与邻接节点j当有边相连时值为1,无边相连时值为0,A为节点i的邻接节点集合,CS(i)很好的刻画了节点i与其周围节点间联系的紧密程度,具备了一定的社区结构中节点的属性特征。步骤S1.3:节点凝聚度计算综合考虑节点的度权值与节点的边聚集系数之和两个因素,得到节点凝聚度CDS(i):在本实施例中,凝聚度CDS(i)集中考虑了节点度权值的重要性以及节点与周围节点的聚集程度,因而,作为初始中心节点的选取依据即依据节点凝聚度的大小先后扩展社区,稳定性得到了提高,同时,也具有很本文档来自技高网
...

【技术保护点】
1.一种基于中心节点扩展的社区发现方法,其特征在于,包括以下步骤:(1)、将社交网络抽象成一个图:用户用图中的节点表示,用户之间的关系用边表示,然后计算节点(用户)凝聚度,并根据节点凝聚度从大到小,对用户进行排序,生成候选列表;(2)、选择候选列表中节点凝聚度最大的用户作为初始中心节点,依据局部适应度函数,对初始中心节点逐步扩展社区,扩展进入社区的用户,从候选列表中删除,扩展社区完毕后,得到一个社区;然后,进行下一个社区发现:重新在选择候选列表中节点凝聚度最大的用户作为初始中心节点,重复进行扩展社区,得到下一个社区,直到候选列表中没有用户为止;(3)、计算得到社区的相似度并将相似的社区进行合并。

【技术特征摘要】
1.一种基于中心节点扩展的社区发现方法,其特征在于,包括以下步骤:(1)、将社交网络抽象成一个图:用户用图中的节点表示,用户之间的关系用边表示,然后计算节点(用户)凝聚度,并根据节点凝聚度从大到小,对用户进行排序,生成候选列表;(2)、选择候选列表中节点凝聚度最大的用户作为初始中心节点,依据局部适应度函数,对初始中心节点逐步扩展社区,扩展进入社区的用户,从候选列表中删除,扩展社区完毕后,得到一个社区;然后,进行下一个社区发现:重新在选择候选列表中节点凝聚度最大的用户作为初始中心节点,重复进行扩展社区,得到下一个社区,直到候选列表中没有用户为止;(3)、计算得到社区的相似度并将相似的社区进行合并。2.根据权利要求1所述的基于中心节点扩展的社区发现方法,其特征在于,所述节点凝聚度CDs(i)依据以下公式进行计算:其中,ki表示节点i的度值,kmax为社交网络中节点的最大度值,kmin为网络中节点的最小度值,A为节点i的邻接节点集合,kj为节点j的度值,aij是当节点i与邻接节点j有边相连时值为1,无边相连时值为0,zij表示同时连接节点i与节点j的节点数量。3.根据权利要求1所述的基于中心节点扩展的社区发现方法,其特征在于,所述的局部适应度函数用fG表示为:是社区G中节点连向社区内节点的度总和,是社区G中的节点连向社区外节点的度总和。4.根据权利要求1所述的基于中心节点扩展的社区发现方法,其特征在于,所述的扩展社区的过程为:2.1)、查看候选列表中,是否有节点(用户),如果没有则进入步骤(3),如果有,则进行步骤2.2);2.2)、选取候选列表中节点凝聚度最大的用户作为初始中心节点并初始化为社区G;2.3)、判断社区G邻接节点中是否所有节点引起社区G的适应度变化值都为负,如果是,则社区G扩展完毕,则返回步骤2.1)如果不是,则进行步...

【专利技术属性】
技术研发人员:邢玲吴红海马强高建平谢萍朱家磊
申请(专利权)人:河南科技大学
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1