基于平均互信息的社区划分质量评价方法及系统与流程

文档序号:15312770发布日期:2018-08-31 22:15阅读:167来源:国知局

本发明涉及社区划分质量评价领域,具体涉及一种基于平均互信息的社区划分质量评价方法及系统。



背景技术:

随着互联网、物联网技术的快速发展,事物之间的联系更加紧密,错综复杂的联系形成了多样、多变、规模庞大的网络,这样的网络被称为复杂网络。所谓社区是指具有关联的个体所组成的集合,复杂网络由若干社区组成。社区划分涉及计算机、物理、生物、社会学以及复杂性系统科学等多学科,近年来成为多个学科的研究热点之一。在社区划分中,社区划分系统通常会构造并评判多种社区结构,并从一种社区结构演变到另一种社区结构。优化社区划分系统的关键是找到一种社区划分质量评价方法,通过该评价方法优化社区划分系统,从而提高社区划分系统的准确性。但是,目前对社区划分质量评价方法的思路主要还是集中在模块度评价方法,而模块度评价方法存在resolutionlimit的问题。虽然也有社区划分质量评价方法是基于信息论的相关知识,但是在使用基于信息论方面的评价方法时,需要知道一些先验条件。



技术实现要素:

本发明的目的是针对现有技术的不足,提供了一种基于平均互信息的社区划分质量评价方法,所述方法针对已有的经典社区划分系统,从社区划分质量评价的角度出发,以平均互信息为基础,可以在无先验条件的情况下,利用该评价方法从多个社区划分候选解中找出最优的社区划分,有效地提高了社区划分结果的准确性。同时本发明还公开了一种基于平均互信息的社区划分质量评价系统。

本发明具体的技术方案为:一种基于平均互信息的社区划分质量评价方法,所述方法包括以下步骤:

s1、服务器接收社区划分请求;

s2、采用边介数算法对社区划分请求进行边介数计算,得到边介数计算结果;

s3、根据边介数计算结果,对边介数最大的边进行删除,得到删除边前后的社区划分结果,服务器查看删除边后的社区是否已经发生分裂,若是则进行步骤s4,若否,则返回步骤s2重新对删除边后的社区根据社区划分请求进行边介数计算;

s4、对步骤s3得到的所有删除边前后的社区划分结果计算平均互信息值,得到互信息结果,服务器查看本次删除边后的互信息结果是否为最大的互信息结果,若是则修改最大互信息结果并且记录最大互信息结果所对应的社区划分前后的社区结构,然后再进行步骤s5,若否,则直接进行步骤s5;

s5、判断当前社区是否还存在边,若是,则返回步骤s2重新对删除边后的社区根据社区划分请求进行边介数计算,若否则进行步骤s6;

s6、判断步骤s4中最大互信息结果对应社区划分前的社区结构的信息熵是否大于最大互信息结果对应社区划分后的社区结构的信息熵,若否,则记录最大互信息结果对应社区划分前的社区结构为社区划分结果,若是,则记录最大互信息结果对应社区划分后的社区结构为社区划分结果;

s7、根据步骤s6中的社区划分结果,利用与多个社区链接数相同的节点进一步优化社区划分结果,得到最终的社区划分结果;

s8、将最终的社区划分结果发送给客户端。

进一步地,步骤s2中所述采用边介数算法对社区划分请求进行边介数计算的具体操作为:对社区划分请求进行最短路径的计算从而得到边介数的计算结果。

进一步地,步骤s3的具体过程为:首先对边介数按从大到小排序,删除边介数最大的边,然后将删除前后的结果存入社区划分结果中。

进一步地,步骤s4中所述删除边前后的社区划分结果的平均互信息值的计算公式为:qi=e[i(xi;yj)]=σiσjp(xi,yj)i(xi;yj),其中xi表示社区划分前的第i个社区,yj表示社区划分后的第j个社区,qi为平均互信息值。

进一步地,步骤s6中所述信息熵值的计算公式为:h(x)=-σx(p(x=1)log2p(x=1)+p(x=0)log2p(x=0)),其中p(x=1)表示节点被划分到社区x的概率,p(x=0)表示节点未被划分到社区x的概率,h(x)为信息熵值。

进一步地,步骤s7的具体过程为:首先找到与多个社区相连的节点,然后分别将该节点放入多个相连的社区,分别计算将该节点放到不同社区时网络中总的信息熵,输出总信息熵最小值所对应的社区结构即为最终的社区划分结果。

同时,本发明公开了一种应用于上述基于平均互信息的社区划分质量评价方法的系统,所述系统包括客户端和服务器,其中服务器包括以下模块:

请求接收模块:用于接收客户端发送的社区划分请求;

计算边介数模块:用于计算边介数,得到边介数计算结果;

删除边介数模块:用于根据边介数计算结果,对边介数最大的边进行删除,得到删除边介数前后的社区划分结果;

计算平均互信息值模块:用于计算平均互信息值,得到互信息结果;

计算信息熵值模块:用于计算划分前后的信息熵值,得到信息熵值最小的社区划分结果;

优化模块:用于根据社区划分结果,利用与多个社区链接数相同的节点进一步优化社区划分结果,得到最终的社区划分结果;

输出模块:用于将最终的社区划分结果发送至客户端。

本发明与现有技术相比,具有如下优点和有益效果:

1、本发明通过在社区划分系统中引入基于平均互信息的社区划分质量评价方法,该评价方法在每次社区划分过程中计算社区划分的平均互信息值,找出平均互信息最大值所对应的社区划分,进一步对平均互信息最大值所对应社区划分前后的社区结构进行信息熵的比较,得到信息熵最小的社区划分结构,最后利用与多个社区链接数相同的节点进一步优化社区划分结果,得到最终的社区划分结果,从而达到了提高社区划分结果准确性的目的。

2、本发明采用基于平均互信息的社区划分质量评价方法,该评价方法相对于其它基于信息论的评价方法来说,可以在不需要先验条件的前提下使用。

附图说明

图1为本发明实施例基于平均互信息的社区划分质量评价方法的流程图。

图2(a)为本发明实施例中社区没有发生分裂的示意图,图2(b)为本发明实施例中社区分裂成其他两个社区的示意图。

图3为本发明实施例中与多个社区的链接数相同的节点的示例图。

具体实施方式

下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。

实施例:

本发明实施例在经典gn社区划分系统的基础上,加入了基于平均互信息的社区划分质量评价方法。基于平均互信息的社区划分质量评价方法是本发明的核心内容。加入基于平均互信息的社区划分质量评价方法后的社区划分系统首先通过计算每次社区划分的平均互信息值从而选出平均互信息最大值所对应的最优社区划分,然后分别计算最优社区划分前后社区结构的信息熵从而确定优化的社区结构,紧接着对优化后的社区结构中的所有节点进行遍历,找到与多个社区的链接数相同的节点,最后分别计算将该节点放到不同社区时网络中总的信息熵,输出总信息熵最小值所对应的社区结构即为最优的社区结构。

本发明实施例另外提供了一种基于平均互信息的社区划分质量评价系统,所述系统包括客户端和服务器,其中服务器包括以下模块:请求接收模块:用于接收客户端发送的社区划分请求;计算边介数模块:用于计算边介数,得到边介数计算结果;删除边介数模块:用于根据边介数计算结果,对边介数最大的边进行删除,得到删除边介数前后的社区划分结果;计算平均互信息值模块:用于计算平均互信息值,得到互信息结果;计算信息熵值模块:用于计算划分前后的信息熵值,得到信息熵值最小的社区划分结果;优化模块:用于根据社区划分结果,利用与多个社区链接数相同的节点进一步优化社区划分结果,得到最终的社区划分结果;输出模块:用于将最终的社区划分结果发送至客户端。

下面对本发明实施例提供的基于平均互信息的社区划分质量评价方法及系统做详细说明。

首先,对本发明实施例提供的方法及系统中所涉及到的相关术语,我们给出如下定义,并结合定义说明该发明的基本原理:

定义1:社区结构x表示社区划分前的社区结构,xi表示社区结构x中的第i个社区。社区结构y表示经过社区划分后的社区结构,yj表示社区结构y中的第j个社区。nxi表示社区xi中的节点总数,nyj表示社区yj中的节点总数,n表示网络中的节点总数。

定义2:(平均互信息)平均互信息是一个随机变量包含另一个随机变量信息量的度量。对于两个随机变量x和y,它们的联合概率密度函数为p(x,y),其边际概率密度函数分别是p(x)和p(y)。平均互信息i(x;y)为联合分布p(x,y)和乘积分布p(x)p(y)之间的相对熵,其计算公式如下:

i(x;y)=σxσyp(x,y)log2[p(x,y)/(p(x)*p(y))](1)

定义3:(信息熵)信息熵是信息论中用于度量信息量的一个概念。h(x)表示信息熵,p(x)表示一个概率密度函数,信息熵的计算公式如下:

h(x)=-σxp(x)log2p(x)(2)

定义4:(边介数)边介数定义为网络中所有最短路径中经过该边的路径数目占最短路径总数的比例。边介数越大,则这条边作为社区间连接边的概率就越大,所以通过不断删除边介数最大的边可以达到分离社区的目的。

定义5:(社区划分的平均互信息)对于每次社区划分,平均互信息表示本次社区划分后的社区结构y包含本次社区划分前的社区结构x信息量的度量。根据平均互信息具有相加性,我们进一步将2个社区结构的平均互信息值近似为2个社区结构中社区之间平均互信息值的权重和,具体计算公式如下:

qi=e[i(xi;yj)]=σiσjp(xi,yj)i(xi;yj)(3)

其中,i(xi;yj)表示社区xi与社区yj的平均互信息值,p(xi,yj)=p(yj|xi)×p(xi),p(yj|xi)表示在社区xi的点被划分到社区yj的概率,p(xi)表示网络中的点被划分到社区xi的概率。

定义6:(社区划分的两种情况)因为经典gn社区划分系统是基于分裂的社区划分系统。所以,针对经典gn社区划分系统只需考虑如下两种情况:

1.在社区划分中,某社区没有发生分裂;

2.在社区划分中,某社区分裂成其它两个社区。

图2(a)和图2(b)是社区划分中出现的两种情况示例。

于是,针对上述两种情况,分别计算p(yj|xi)。

对于第一种情况:

对于第二种情况:

其中,nxi表示社区xi中的节点总数,nyj表示社区yj中的节点总数。

定义7:p(xi)表示网络中的点被划分到社区xi的概率,所以p(xi)的计算公式如下:

p(xi)=nxi/n(6)

定义8:p(xi=0)表示节点不属于社区xi的概率,p(xi=1)表示节点属于社区xi的概率,其计算公式如下:

p(xi=0)=(n-nxi)/n(7)

p(xi=1)=nxi/n(8)

定义9:p(yj=1|xi=1)表示在节点属于社区xi的条件下,该节点也属于社区yj的概率,则p(yj=1|xi=1)的计算公式如下:

p(yj=1|xi=1)=nyj/nxi(9)

本实施例提供的基于平均互信息的社区划分质量评价方法的流程图如图1所示,具体包括以下步骤:

步骤101:用户以点和边的形式输入待社区划分的网络数据。

输入的网络数据格式为每一行输入两个数字,中间用空格分隔开,两个数字分别表示两个节点,比如“12”表示节点1和节点2中间有一条链接。

步骤102:计算网络中所有边的介数。边介数定义见定义4。

计算边介数的算法如下:

计算网络中最短路径的算法如下:

步骤103:删除网络中边介数最大的边。

本步骤在删除网络中某一条边后,网络中总的最短路径数也会发生变化,所以接下来要重新计算剩余边的介数。

步骤104:网络中是否有社区发生了分裂。在经典gn的社区划分系统中,如果有社区发生了分裂才开始进行步骤105,或者会跳回步骤102。

步骤105:计算本次社区划分的平均互信息值i(x;y)。平均互信息的定义见定义2,i(x;y)的计算公式为:i(x;y)=σiσjp(xi,yj)i(xi;yj),其中i(xi;yj)=σaσbp(xi=a,yj=b)[log2p(xi=a,yj=b)-(log2p(xi=a)+log2p(yj=b))]。如图2(a)和图2(b)所示,在计算平均互信息时,需要对每次社区划分考虑两种情况:1)在社区划分中,某社区没有发生分裂。2)在社区划分中,某社区分裂成其它两个社区。计算i(x;y)的算法如下:

步骤106:判断i(x;y)是否大于i(x;y)的最大值。如果是大于i(x;y)的最大值才开始进行步骤107,否则则直接进行步骤108。

步骤107:i(x;y)的最大值等于i(x;y)并记录本次社区划分前后的社区结构。并进行步骤108。

本步骤max_i(x;y)表示的就是i(x;y)的最大值。

步骤108:判断网络数据中是否还存在边。如果存在边则继续进行社区划分,即返回执行步骤102,如果已经没有边可以分裂了,则说明整体社区划分已经结束了,则开始进行步骤109。

步骤109:计算并记录max_i(x;y)所对应的社区划分前后社区结构的信息熵。信息熵的定义见定义3。计算信息熵h(x)的算法如下:

步骤110:判断划分前社区结构的信息熵是否大于划分后社区结构的信息熵。如果划分前社区结构的信息熵是大于划分后社区结构的信息熵才开始进行步骤111,否则进行步骤112。

步骤111:记录社区划分后的社区结构。

本步骤是记录最小信息熵所对应的社区结构。因为信息熵越小,社区结构中的不确定性就越小,即社区结构更稳定。

步骤112:记录社区划分前的社区结构。

本步骤是记录最小信息熵所对应的社区结构。因为信息熵越小,社区结构中的不确定性就越小,即社区结构更稳定。

步骤113:在最终的社区划分结果中,遍历所有节点,然后找出与多个社区链接数相同的节点。

本步骤中,与多个社区的链接数相同的节点示例见图3中的节点a,找出与多个社区链接数相同节点的算法如下:

步骤114:分别计算将链接数相同的点放到不同社区时网络中总的信息熵,输出信息熵最小值所对应的社区结构。

本步骤中计算信息熵的算法可参照步骤109中的calinformationentropyalgorithm。

综上所述,本发明实施例是为基于平均互信息的社区划分质量评价方法及系统提供的一种改进社区划分系统,该优化社区划分系统通过计算每次社区划分的平均互信息值从而选出平均互信息最大值所对应的最优社区划分,然后分别计算最优社区划分前后社区结构的信息熵从而确定最优的社区结构。从而大幅度提高社区划分系统的准确性,使得改进社区划分系统成为一种新的社区划分系统。

以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明专利构思加以等同替换或改变,都属于本发明专利的保护范围。

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