本发明涉及数据处理,具体涉及一种基于改进lpa算法的复杂网络社区发现方法和系统。
背景技术:
1、社区发现是复杂网络分析领域的一个重要研究方向,在信息安全、商业广告投放、网络舆情监控等领域都有着广泛应用。标签传播算法是社区发现领域的一类经典算法,其具有复杂度低,逻辑简单等一系列优点。
2、标签传播算法(lpa)是一种基于标签传播的局部社区发现算法。其基本思想是节点的标签依赖其邻居节点的标签信息,影响程度由节点之间的相似度和节点之间链接的密集程度决定,并通过传播迭代更新达到稳定。由于该算法简单易实现,复杂度较低且应用场景广,引起了国内外学者的关注,并将其广泛地应用到社交网络分析、推荐系统构建等领域中。
3、然而,传统标签传播算法因在初始阶段按照随机顺序挑选节点进行标签更新,以及在标签传播过程中当出现多个频率最高的标签时随机挑选一个标签作为目标节点更新后的标签,导致社区划分的随机性过大,造成挖掘出的社区质量较差。
技术实现思路
1、(一)解决的技术问题
2、针对现有技术的不足,本发明提供了一种基于改进lpa算法的复杂网络社区发现方法和系统,解决了现有的社区发现方法挖掘出的社区质量较差的技术问题。
3、(二)技术方案
4、为实现以上目的,本发明通过以下技术方案予以实现:
5、第一方面,本发明提供一种基于改进lpa算法的复杂网络社区发现方法,包括:
6、s1、获取网络数据集并进行预处理,形成网络图;
7、s2、通过改进lpa算法对网络图进行处理,得到复杂网络社区划分结果,所述改进lpa算法中标签更新的顺序按照网络图中的节点的紧密中心性值的升序排列顺序进行,且在标签传播过程中当出现多个频率最高的标签时选择标签边介数中心性值和最低的一个标签作为更新后的标签。
8、优选的,所述通过改进lpa算法对网络图进行处理,得到复杂网络社区划分结果,包括:
9、s201、计算网络图中的每个节点的紧密中心性值;
10、s202、将节点按照紧密中心性值进行升序排列,形成一个列表x,将列表x作为每次标签迭代过程中节点更新的顺序;
11、s203、计算网络图中每条边的边介数中心性值;
12、s204、对节点的标签进行迭代更新,输出每个节点x的标签cx(t),根据每个节点x的标签cx(t)对网络图进行划分,得到复杂网络社区划分结果;包括:
13、a、将网络中每个节点初始化为唯一且不同的社区标签,对于给定的节点x,标签cx(0)=x;
14、b、令t=1,此处t代表更新轮次;
15、c、将s202中列表x作为节点的更新顺序列表;
16、d、对于按步骤c中特定顺序选择的每一个节点x∈x,采取异步更新方式,设这里函数f分为两个阶段:
17、阶段1:返回节点x邻居中出现频率最高的标签组成的集合l,如果返回的标签为唯一一个,则直接返回标签集合l,函数终止;如果返回的标签个数大于等于两个,则转入阶段2;
18、阶段2:对于标签集合l中的每一个标签l1,l2…,lm,找到每个标签分别对应的邻居节点集合ne1,ne2…,nem,计算每个标签的标签边介数中心性值和:
19、
20、其中,lebcs(ln)为标签ln对应的标签边介数中心性值和,nen为标签ln对应的邻居节点集合,nenq为集合nen中的节点,计算完成后进行比较,设rl=f(lebcs(l1),lebcs(l2),…,lebcs(ln)),其中,f返回有最低lebcs值的标签值;
21、e、对于给定的节点x,将其标签更新为cx(t)
22、f、如果对于每个节点都有一个标签,且这个标签为其邻居节点中出现频率最高的标签,那么停止算法,输出每个节点x的标签cx(t),根据每个节点x的标签cx(t)对网络图进行划分,得到复杂网络社区划分结果;否则,令t=t+1,转到中的步骤d。
23、优选的,所述计算网络图中的每个节点的紧密中心性值,包括:
24、对于网络图中任意节点u,其紧密中心性值c(u)计算公式为:
25、
26、其中,d(v,u)是节点u到节点v的最短路径距离,而n-1是从u出发可到达的节点数。
27、优选的,所述计算网络图中每条边的边介数中心性值,包括:
28、
29、其中,v为网络图所有节点组成的集合,k(s,t)即为节点s与节点t之间最短路径的条数,k(s,t|e)即为节点s与节点t之间经过边e的最短路径的条数。
30、第二方面,本发明提供一种基于改进lpa算法的复杂网络社区发现系统,其特征在于,包括:
31、数据获取模块,用于获取网络数据集并进行预处理,形成网络图;
32、复杂网络社区划分模块,用于通过改进lpa算法对网络图进行处理,得到复杂网络社区划分结果,所述改进lpa算法中标签更新的顺序按照网络图中的节点的紧密中心性值的升序排列顺序进行,且在标签传播过程中当出现多个频率最高的标签时选择标签边介数中心性值和最低的一个标签作为更新后的标签。
33、优选的,所述通过改进lpa算法对网络图进行处理,得到复杂网络社区划分结果,包括:
34、s201、计算网络图中的每个节点的紧密中心性值;
35、s202、将节点按照紧密中心性值进行升序排列,形成一个列表x,将列表x作为每次标签迭代过程中节点更新的顺序;
36、s203、计算网络图中每条边的边介数中心性值;
37、s204、对节点的标签进行迭代更新,输出每个节点x的标签cx(t),根据每个节点x的标签cx(t)对网络图进行划分,得到复杂网络社区划分结果;包括:
38、a、将网络中每个节点初始化为唯一且不同的社区标签,对于给定的节点x,标签cx(0)=x;
39、b、令t=1,此处t代表更新轮次;
40、c、将s202中列表x作为节点的更新顺序列表;
41、d、对于按步骤c中特定顺序选择的每一个节点x∈x,采取异步更新方式,设这里函数f分为两个阶段:
42、阶段1:返回节点x邻居中出现频率最高的标签组成的集合l,如果返回的标签为唯一一个,则直接返回标签集合l,函数终止;如果返回的标签个数大于等于两个,则转入阶段2;
43、阶段2:对于标签集合l中的每一个标签l1,l2…,lm,找到每个标签分别对应的邻居节点集合ne1,ne2…,nem,计算每个标签的标签边介数中心性值和:
44、
45、其中,lebcs(ln)为标签ln对应的标签边介数中心性值和,nen为标签ln对应的邻居节点集合,nenq为集合nen中的节点,计算完成后进行比较,设rl=f(lebcs(l1),lebcs(l2),…,lebcs(ln)),其中,f返回有最低lebcs值的标签值;
46、e、对于给定的节点x,将其标签更新为cx(t)
47、f、如果对于每个节点都有一个标签,且这个标签为其邻居节点中出现频率最高的标签,那么停止算法,输出每个节点x的标签cx(t),根据每个节点x的标签cx(t)对网络图进行划分,得到复杂网络社区划分结果;否则,令t=t+1,转到中的步骤d。
48、优选的,所述计算网络图中的每个节点的紧密中心性值,包括:
49、对于网络图中任意节点u,其紧密中心性值c(u)计算公式为:
50、
51、其中,d(v,u)是节点u到节点v的最短路径距离,而n-1是从u出发可到达的节点数。
52、优选的,所述计算网络图中每条边的边介数中心性值,包括:
53、
54、其中,v为网络图所有节点组成的集合,k(s,t)即为节点s与节点t之间最短路径的条数,k(s,t|e)即为节点s与节点t之间经过边e的最短路径的条数。
55、第三方面,本发明提供一种计算机可读存储介质,其存储用于基于改进lpa算法的复杂网络社区发现的计算机程序,其中,所述计算机程序使得计算机执行如上述所述的基于改进lpa算法的复杂网络社区发现方法。
56、第四方面,本发明提供一种电子设备,包括:
57、一个或多个处理器,存储器,以及一个或多个程序,其中所述一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上述所述的基于改进lpa算法的复杂网络社区发现方法。
58、(三)有益效果
59、本发明提供了一种基于改进lpa算法的复杂网络社区发现方法和系统。与现有技术相比,具备以下有益效果:
60、本发明获取网络数据集并进行预处理,形成网络图;通过改进lpa算法对网络图进行处理,得到复杂网络社区划分结果,所述改进lpa算法中标签更新的顺序按照网络图中的节点的紧密中心性值的升序排列顺序进行,且在标签传播过程中当出现多个频率最高的标签时选择标签边介数中心性值和最低的一个标签作为更新后的标签。本发明创新性地使用紧密中心性值与标签边介数中心性值和这两个关键概念优化了原lpa算法中的两个随机过程,以减少原lpa算法社区划分的随机性,提升社区发现的稳定性,提高社区发现的质量。