基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法

文档序号:6629734阅读:618来源:国知局
基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法
【专利摘要】本发明公开了一种基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法,能够处理传统社区检测方法所不能处理的交叠社区网络,无需预先知道社区网络的真实分类个数,可以自动推断出模块度最大所对应的社区数目。其主要步骤包括:1)对网络的邻接矩阵A,设置不同的社区数目c,进行NMF(非负矩阵分解);2)计算不同的社区数目c所对应的模块度,并选择最好的那一个;3)计算出相关的二进制矩阵U,根据矩阵U即可看出每个节点的类标以及交叠的节点。本发明将非负矩阵分解算法用于社区检测问题,并加入了基于遗传算法的参数优化,选取了适应于交叠网络的交叠模块度作为评价指标,对于真实世界网络和计算机仿真网络的检测都取得了很好的效果。
【专利说明】基于非负矩阵分解和进化算法优化参数的自适应交叠社区 检测方法

【技术领域】
[0001] 本发明涉及复杂网络以及数据挖掘领域,具体提供一种基于非负矩阵分解和进化 算法优化参数的自适应交叠社区检测方法。

【背景技术】
[0002] 研究复杂网络中的社区结构对于分析复杂网络的拓扑结构、理解网络所具有的功 能以及预测网络可能具备的行为具有非常重要的意义,此外还具有广泛的应用前景。随着 社交网络数量的激增(例如规模巨大的因特网数据),社区检测尤其是交叠社区检测成为 了学者们研究的热门话题。近年来,很多社区检测方法相继被提了出来,但是其中大部分只 能处理非交叠网络。比如说基于图分割的方法、基于模块度优化的方法,这两种方法都旨在 找出那些能将复杂网络分为非交叠类的那些边;还有Girvan和Newman发明的GN算法是属 于一种分裂的算法,不但只能检测非重叠社区网络,而且当网络的节点数增大时,处理速度 非常缓慢;还有一种用于社区检测的SBMF算法,虽说可以检测出网络中的交叠节点,但在 该算法中建立非负矩阵分解的模型后,对参数的优化方法却不能快速搜索到最优解。


【发明内容】

[0003] 本发明的目的在于上述已有技术的缺点,提出了一种使用NMF(非负矩阵分解)模 型,并且运用进化思想对优化参数的交叠社区检测方法,利用遗传算法能够快速地搜索出 参数的最优解,并且能够检测出异常点以及交叠节点。
[0004] 本发明的技术方案是,基于非负矩阵分解和进化算法优化参数的自适应交叠社区 检测方法,包括如下步骤:
[0005] 步骤101 :预处理复杂网络的邻接矩阵A,设置邻接矩阵A的对角线元素为1 ;
[0006] 步骤102 :预先估计该网络A的社区数目C的最大值为K,社区数目C从2到k遍 历一遍,找出模块度值最大时所对应的社区数目;
[0007] 步骤103 :判断社区数目c是否小于最大值K;
[0008] 步骤104 :对于不同的社区数目c,会得到不同的初始化矩阵U,然后对矩阵A进行 非负矩阵分解=A?UXUT,Uit表示矩阵U的第i行第t列的元素,Uu表示矩阵U的第i行 第j列的元素,Uit = 1表示节点i属于社区t,Uit = 0表示节点i不属于社区t,

【权利要求】
1. 基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法,其特征是:包 括如下步骤: 步骤101 :预处理复杂网络的邻接矩阵A,设置邻接矩阵A的对角线元素为1 ; 步骤102 :预先估计该网络A的社区数目c的最大值为K,社区数目c从2到k遍历一 遍,找出模块度值最大时所对应的社区数目; 步骤103 :判断社区数目c是否小于最大值K; 步骤104 :对于不同的社区数目c,会得到不同的初始化矩阵U,然后对矩阵A进行非负 矩阵分解:A?UXUT,Uit表示矩阵U的第i行第t列的元素,Uu表示矩阵U的第i行第j 列的元素,Uit = 1表示节点i属于社区t,Uit = 0表示节点i不属于社区t,Σ&# -〇时, } 即产生了异常值; 步骤105 :为了使异常值减少,加入惩罚项,即使用下面的目标函数来优化矩阵U:min\\A-UUtH1S.t.UiZ-Uij = 0,i= 1,2,...n,j= i j 1,2,. ..,C(I),H为阶跃函数:丑(0 = {;;, ,式(1)需要优化矩阵U的所有元素,因此将带 约束目标函数变为无约束的目标函数: n^nllJ-"(L;-μ.)/·/(【;-H1 +^(丨-μ)"),u 是一个标量; iJ ' 步骤106 :利用遗传算法对参数u进行优化,把最终参数u带入U=H(U-u),即可得到 二值矩阵U,从而得到社区检测的结果; 步骤107 :计算适应于交叠社区的修改后的模块度值,找出交叠模块度值最高时所对 应的社区数目best_c; 步骤108 :对于best_c所对应的二值矩阵U,明确地得出复杂网络的社区划分,Uit =1表示节点i属于社区t,uit =0表示节点i不属于第t个社区,如果Σ% >1表示该节点 j i同时属于多个社区。
2. 根据权利要求书1所述的基于非负矩阵分解和进化算法优化参数的自适应交叠社 区检测方法,其特征是:所述步骤104中的非负矩阵分解,包括如下步骤: 步骤201 :对于邻接矩阵为A,其社区数目为c,随机产生一个η行c列的矩阵U,迭代 次数iter设置为100 ; 步骤202 :根据公式U= 更新U矩阵的所有元素,重新对矩阵U进行归一化; 步骤203 :判断是否达到最大迭代次数,产生最终的U矩阵。
3. 根据权利要求书1所述的基于非负矩阵分解和进化算法优化参数的自适应交叠社 区检测方法,其特征是:所述步骤106中利用遗传算法优化参数,包括如下步骤: 步骤301 :设置遗传算法的参数:进化代数计数器t= 0,种群规模popsize为30,染色 体长度chromelength为10,交叉概率P。为0. 6,变异概率Pm为0. 001,最大迭代次数Gmax为 30次,并随机产生初始化种群,种群的矩阵每一行表示一个基因串个体,每一列表示个体的 数目; 步骤302 :计算种群中每个个体的适应度值; 步骤303 :将选择算子作用于种群,把优化的个体直接遗传到下一代; 步骤304:将交叉算子作用于种群,对于任意两个个体,随机产生若干基因串的位置 点,交换两个个体在该位置上的值; 步骤305:将变异算子作用于群体,对于任意个体,随机产生若干基因串的位置点,然 后改动这些位置上的值; 步骤306 :保留每一代中适应度值最高的个体,进入下一代; 步骤307 :判断是否达到最大迭代次数,若t=Gmax,则输出具有最大适应度的个体,终 止计算;否则,跳到步骤302继续执行。
【文档编号】G06F17/30GK104318306SQ201410531107
【公开日】2015年1月28日 申请日期:2014年10月10日 优先权日:2014年10月10日
【发明者】李阳阳, 焦李成, 张小林, 马文萍, 马晶晶, 尚荣华, 杨淑媛, 侯彪 申请人:西安电子科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1