一种基于节点度和相似性的网络社区发现的方法与流程

文档序号:16885269发布日期:2019-02-15 22:35阅读:695来源:国知局
一种基于节点度和相似性的网络社区发现的方法与流程

本发明涉及网络科学领域,特别是一种基于节点和相似性的网络社区发现的方法。



背景技术:

近年来,复杂网络已经引起了社会学,计算机科学,数学,生物学等多学科领域的重视。由于随着网络科学和计算技术的发展,网络数据集的可用性使得复杂网络的研究近年来受到越来越多的关注。对于一个网络而言,社区结构的一个重要的特征是:社区内的节点的连接是密集的,而社区之间节点的连接相对稀疏。

发现网络中的社区结构对于理解网络的结构属性和群组特征至关重要。社区发现在许多应用领域得到了广泛的应用,如社交媒体的性能,并行处理相似社区特征的收集,非线性系统的模拟,合作网络中类似研究兴趣的分组等。社区发现也是团体行为分析的一个重要方法,因为社区结构有助于识别潜在的具有一致性的相似行为模式。例如,在社交网络分析中,个人聚在一起形成基于共同兴趣或主题的社区。

在复杂网络中已经提出了许多的社区发现方法,如层次聚类,标签传播,密度算法,随机游走方法等。这些方法对于某些网络社区的发现可能不够准确,其中可能会忽略一些节点数较小的社区。为了更准确地在网络中发现社区,本发明提出了一种基于节点度和相似性的网络社区发现的方法,利用网络中节点的度中心性、最短路径来找取网络中社区的中心,以及通过节点之间的相似性标准去不断的扩张社区。



技术实现要素:

为了克服目前的网络社区划分算法存在准确度较低的不足,本发明提出了一种准确性较高的一种基于节点度和相似性的网络社区发现的方法。

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

一种基于节点度和相似性的网络社区发现的方法,包括如下步骤:

步骤一:构建具有n个节点网络模型g(v,e),v表示节点,e表示节点之间连边,计算并记录网络中所有节点的度,一个节点的度是指和该节点直接相连接的节点的个数;

步骤二:在网络中任意选取一个节点i,计算节点i的相对距离

其中δi被定义为节点i与任何其他节点度更高的节点之间的最小距离,dij为节点i和j之间的距离,表示节点i和j之间的最短路径长度;如果节点i为网络中节点度最大的节点,则遍历网络,计算所有节点的相对距离;

步骤三:在网络中任取一个节点i,计算该节点的决策积γi=ρi×δi,其中ρi为节点i的度;遍历网络,计算并记录网络中所有节点的决策积后并按降序排列;

步骤四:计算网络中节点的决策积的标准差std,以标准差作为一个阈值,将决策积大于std的节点作为候选社区中心节点,放入候选社区中心节点队列que,并按决策积大小降序排列;

步骤五:为了避免相邻的节点被选为社区中心,将候选社区中心节点队列que中决策积最大的节点作为第一个社区中心节点,该节点放入中心节点队列cl,同时从que中移除该节点,比较候选社区中心节点队列中第二大的决策积的节点与cl中第一个中心点的距离,从que中移除该节点,如果距离大于1,则确定为社区中心节点,该节点放入中心节点队列cl;重复比较候选社区中心节点队列中节点与已确定为社区中心节点的距离,每次比较的同时从que中移除相应节点,大于1的放入中心队列cl中,直至que为空;

步骤六:在网络中任意选取节点i和j,计算i,j节点之间的相似性

其中,p为一个可调参数,p∈[0,1];遍历网络,计算并记录所有节点对之间的相似性;

步骤七:任意选取不在中心节点队列中的节点j,计算节点j与中心节点队列cl中各节点的相似性sim,获取最大的sim值对应的中心节点k,将节点j归属到中心节点k所处的社区;如果此过程中有多个相等的sim值对应cl中心节点队列中的多个节点,将节点j归属到距离最近的中心节点所处的社区;遍历网络,重复这个过程,直到所有不在中心节点队列中的节点都归属到cl中某个节点所处的社区;

步骤八:找出节点数小于θ值的小型社区,θ为一个阈值,节点数小于θ值的社区被认定为小型社区,节点数大于θ值的被认定为大型社区,任取一个小型社区,其中心节点为节点i,计算

其中,γi为节点i的邻居集合,cj为社区j,|γi∩cj|表示中心节点i的邻居集合与社区j中的节点的公共节点数,|cj|表示社区j的节点数;

计算以i为中心节点的小型社区和所有大型社区的f值,将以i为中心节点的小型社区与对应最大f值的大型社区合并;遍历网络中所有的小型社区,将所有小型社区和对应最大f值的相应的大型社区合并,直到所有小型社区合并完成,得到网络的最终社区划分。

本发明的技术构思为:基于节点度和相似性的网络社区发现的方法,本发明通过计算网络中节点的度以及节点之间的相对距离,并通过两者的乘积来确定网络的社区中心,通过节点的相似性与距离的影响划分社区,提高了网络社区发现的准确性。

本发明的有益效果为:考虑了相似性对社区划分的影响,并通过距离与节点相似性的权衡去划分社区,提高了网络社区发现的准确性。

附图说明

图1为社区中心节点选取的示意图,图中实线圆点i、j分别为两个社区的中心,其中圆点i为第一社区中心节点;实线圆点i、j,虚线圆点s都为候补中心队列中心节点;圆点间的连线距离为1。

具体实施方式

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

参照图1,一种基于节点度和相似性对网络社区发现的方法,包括如下步骤:

步骤一:构建具有n个节点网络模型g(v,e),v表示节点,e表示节点之间连边,计算并记录网络中所有节点的度,一个节点的度是指和该节点直接相连接的节点的个数;

步骤二:在网络中任意选取一个节点i,计算节点i的相对距离

其中δi被定义为节点i与任何其他节点度更高的节点之间的最小距离,dij为节点i和j之间的距离,表示节点i和j之间的最短路径长度;如果节点i为网络中节点度最大的节点,则遍历网络,计算所有节点的相对距离;

步骤三:在网络中任取一个节点i,计算该节点的决策积γi=ρi×δi,其中ρi为节点i的度;遍历网络,计算并记录网络中所有节点的决策积后并按降序排列;

步骤四:计算网络中节点的决策积的标准差std,以标准差作为一个阈值,将决策积大于std的节点作为候选社区中心节点,放入候选社区中心节点队列que,并按决策积大小降序排列;

步骤五:为了避免相邻的节点被选为社区中心,将候选社区中心节点队列que中决策积最大的节点作为第一个社区中心节点,即图1中的实线圆点i,该节点放入中心节点队列cl,同时从que中移除该节点,比较候选社区中心节点队列中第二大的决策积的节点,即图中的实线圆点j,与cl中第一个中心点的距离,从que中移除该节点,如果距离大于1,则确定为社区中心节点,该节点放入中心节点队列cl;重复比较候选社区中心节点队列中节点与已确定为社区中心节点的距离,每次比较的同时从que中移除相应节点,大于1的放入中心队列cl中,直至que为空;如图1所示,最终的社区的中心节点为i、j,因节点s与节点i,j的距离等于1,故不选取为社区的中心节点;

步骤六:在网络中任意选取节点i和j,计算i,j节点之间的相似性

其中,p为一个可调参数,p∈[0,1];遍历网络,计算并记录所有节点对之间的相似性;

步骤七:任意选取不在中心节点队列中的节点j,计算节点j与中心节点队列cl中各节点的相似性sim,获取最大的sim值对应的中心节点k,将节点j归属到中心节点k所处的社区;如果此过程中有多个相等的sim值对应cl中心节点队列中的多个节点,将节点j归属到距离最近的中心节点所处的社区;遍历网络,重复这个过程,直到所有不在中心节点队列中的节点都归属到cl中某个中心节点所处的社区;

步骤八:找出节点数小于θ值的小型社区,θ为一个阈值,节点数小于θ值的社区被认定为小型社区,节点数大于θ值的被认定为大型社区,任取一个小型社区,其中心节点为节点i,计算

其中,γi为节点i的邻居集合,cj为社区j,|γi∩cj|表示中心节点i的邻居集合与社区j中的节点的公共节点数,|cj|表示社区j的节点数;

计算以i为中心节点的小型社区和所有大型社区的f值,将以i为中心节点的小型社区与对应最大f值的大型社区合并;遍历网络中所有的小型社区,将所有小型社区和对应最大f值的相应的大型社区合并,直到所有小型社区合并完成,得到网络的最终社区划分。

如上所述,本专利实施的具体实现步骤使本发明更加清晰。在本发明的精神和权利要求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。

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