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

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

【技术实现步骤摘要】
基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法
本专利技术涉及复杂网络以及数据挖掘领域,具体提供一种基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法。
技术介绍
研究复杂网络中的社区结构对于分析复杂网络的拓扑结构、理解网络所具有的功能以及预测网络可能具备的行为具有非常重要的意义,此外还具有广泛的应用前景。随着社交网络数量的激增(例如规模巨大的因特网数据),社区检测尤其是交叠社区检测成为了学者们研究的热门话题。近年来,很多社区检测方法相继被提了出来,但是其中大部分只能处理非交叠网络。比如说基于图分割的方法、基于模块度优化的方法,这两种方法都旨在找出那些能将复杂网络分为非交叠类的那些边;还有Girvan和Newman专利技术的GN算法是属于一种分裂的算法,不但只能检测非重叠社区网络,而且当网络的节点数增大时,处理速度非常缓慢;还有一种用于社区检测的SBMF算法,虽说可以检测出网络中的交叠节点,但在该算法中建立非负矩阵分解的模型后,对参数的优化方法却不能快速搜索到最优解。
技术实现思路
本专利技术的目的在于上述已有技术的缺点,提出了一种使用NMF(非负矩阵分解)模型,并且运用进化思想对优化参数的交叠社区检测方法,利用遗传算法能够快速地搜索出参数的最优解,并且能够检测出异常点以及交叠节点。本专利技术的技术方案是,基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法,包括如下步骤:步骤101:预处理复杂网络的邻接矩阵A,设置邻接矩阵A的对角线元素为1;其中所述复杂网络是规模巨大的因特网;步骤102:预先估计具有邻接矩阵A的该网络的社区数目c的最大值为K,社区数目c从2到k遍历一遍,找出模块度值最大时所对应的社区数目;步骤103:判断社区数目c是否小于最大值K;步骤104:对于不同的社区数目c,会得到不同的初始化矩阵U,然后对矩阵A进行非负矩阵分解:A≈U×UT,Uit表示矩阵U的第i行第t列的元素,Uij表示矩阵U的第i行第j列的元素,Uit=1表示节点i属于社区t,Uit=0表示节点i不属于社区t,时,即产生了异常值;步骤105:为了使异常值减少,加入惩罚项,即使用下面的目标函数来优化矩阵U:其中H为阶跃函数:式(1)需要优化矩阵U的所有元素,可转换为无约束的目标函数:u是一个标量;步骤106:利用遗传算法对参数u进行优化,把最终参数u带入U=H(U-u),即可得到二值矩阵U,从而得到社区检测的结果;步骤107:计算适应于交叠社区的修改后的模块度值,找出交叠模块度值最高时所对应的社区数目best_c;步骤108:对于best_c所对应的二值矩阵U,明确地得出复杂网络的社区划分,Uit=1表示节点i属于社区t,Uit=0表示节点i不属于第t个社区。如果表示该节点i同时属于多个社区;上述步骤104中的非负矩阵分解,包括如下步骤:步骤201:对于邻接矩阵为A,其社区数目为c,随机产生一个n行c列的矩阵U,迭代次数iter设置为100;步骤202:根据公式更新U矩阵的所有元素,重新对矩阵U进行归一化;步骤203:判断是否达到最大迭代次数,产生最终的U矩阵。上述步骤106中利用遗传算法优化参数,包括如下步骤:步骤301:设置遗传算法的参数:进化代数计数器t=0,种群规模popsize为30,染色体长度chromelength为10,交叉概率Pc为0.6,变异概率Pm为0.001,最大迭代次数Gmax为30次,并随机产生初始化种群,种群的矩阵每一行表示一个基因串个体,每一列表示个体的数目;步骤302:计算种群中每个个体的适应度值;步骤303:将选择算子作用于种群,把优化的个体直接遗传到下一代;步骤304:将交叉算子作用于种群,对于任意两个个体,随机产生若干基因串的位置点,交换两个个体在该位置上的值;步骤305:将变异算子作用于群体,对于任意个体,随机产生若干基因串的位置点,然后改动这些位置上的值;步骤306:保留每一代中适应度值最高的个体,进入下一代;步骤307:判断是否达到最大迭代次数,若t=Gmax,则输出具有最大适应度的个体,终止计算;否则,跳到步骤302继续执行。本专利技术的有益效果:本专利技术采用了非负矩阵分解的方法用于社区检测,它能将高维的数据矩阵降维处理,适合处理大规模数据,较传统的算法速度更快、更便捷。遗传算法对于参数u的优化,也能快速地将解空间的所有解都搜索出来,算法可以根据模块度值的大小自动地推断出社区数目,更重要地是可以检测出那些重叠的节点。以下将结合附图对本专利技术做进一步详细说明。附图说明图1是本专利技术实现的总流程图;图2是非负矩阵分解流程图图3是遗传算法优化参数u的流程图;图4是本专利技术在真实世界网络Zachary’sKarateClub、BottlenoseDolphins、AmericanCollegeFootball、PolticalBooks和计算仿真网络GN、LFR上独立运行30次的模块度值以及NMI值,以及与SBMF算法的结果对比。具体实施方式本专利技术是通过非负矩阵分解模型来解决交叠社区检测问题,主要是针对传统的硬划分方法的不能处理交叠网络这一缺点,把NMF(非负矩阵分解)模型用于社区检测,可以根据不同的社区数目产生不同的检测结果,然后找到模块度值最大的,从而自动地推断出社区的数目。如图1所示:主流程图步骤特征是:步骤101:预处理复杂网络的邻接矩阵A,由于有连接的节点之间的相似度较高,设置邻接矩阵A的对角线元素为1;其中所述复杂网络是规模巨大的因特网;步骤102:预先估计具有邻接矩阵A的该网络的社区数目c为K,社区数目c从2到K遍历一遍,就能找到模块度值最大时所对应的那个社区数目;步骤103:判断社区数目c是否小于最大值K;步骤104:对于不同的社区数目c,会得到不同的初始化矩阵U,然后对矩阵A进行非负矩阵分解:A≈U×UT,Uit表示矩阵U的第i行第t列的元素,Uij表示矩阵U的第i行第j列的元素,Uit=1表示节点i属于社区t,Uit=0表示节点i不属于社区t,时,即产生了异常值;所述步骤104中的非负矩阵分解,如图2所示,包括如下步骤:步骤201:对于邻接矩阵为A,其社区数目为c,随机产生一个n行c列的矩阵U,迭代次数iter设置为100;步骤202:根据公式更新U矩阵的所有元素,重新对矩阵U进行归一化;步骤203:判断是否达到最大迭代次数,产生最终的U矩阵;步骤105:为了使异常值减少,加入惩罚项,即使用下面的目标函数来优化矩阵U:其中H为阶跃函数:式(1)需要优化矩阵U的所有元素,可转换为无约束的目标函数:u是一个标量;步骤106:利用遗传算法对参数u进行优化,把最终参数u带入U=H(U-u),即可得到二值矩阵U,从而得到社区检测的结果;所述步骤106中的遗传算法优化参数,如图3所示,包括如下步骤:步骤301:设置遗传算法的参数:进化代数计数器t=0,种群规模popsize为30,染色体长度chromelength为10,交叉概率Pc为0.6,变异概率Pm为0.001,最大迭代次数Gmax为30次,并随机产生初始化种群,种群的矩阵每一行表示一个基因串个体,每一列表示个体的数目;步骤302:计算种群中每个个体的适应度值;步骤303:将选择算子作用于种群,把优化的个体直本文档来自技高网...
基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法

【技术保护点】
基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法,其特征是:包括如下步骤: 步骤101:预处理复杂网络的邻接矩阵A,设置邻接矩阵A的对角线元素为1; 步骤102:预先估计该网络A的社区数目c的最大值为K,社区数目c从2到k遍历一遍,找出模块度值最大时所对应的社区数目; 步骤103:判断社区数目c是否小于最大值K; 步骤104:对于不同的社区数目c,会得到不同的初始化矩阵U,然后对矩阵A进行非负矩阵分解:A≈U×UT,Uit表示矩阵U的第i行第t列的元素,Uij表示矩阵U的第i行第j列的元素,Uit=1表示节点i属于社区t,Uit=0表示节点i不属于社区t,时,即产生了异常值;步骤105:为了使异常值减少,加入惩罚项,即使用下面的目标函数来优化矩阵U: s.t.Uij2‑Uij=0,i=1,2,...n,j=1,2,...,c(1),H为阶跃函数:式(1)需要优化矩阵U的所有元素,因此将带约束目标函数变为无约束的目标函数:u是一个标量;步骤106:利用遗传算法对参数u进行优化,把最终参数u带入U=H(U‑u),即可得到二值矩阵U,从而得到社区检测的结果; 步骤107:计算适应于交叠社区的修改后的模块度值,找出交叠模块度值最高时所对应的社区数目best_c; 步骤108:对于best_c所对应的二值矩阵U,明确地得出复杂网络的 社区划分,Uit=1表示节点i属于社区t,Uit=0表示节点i不属于第t个社区,如果表示该节点i同时属于多个社区。...

【技术特征摘要】
1.基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法,其特征是:包括如下步骤:步骤101:预处理复杂网络的邻接矩阵A,设置邻接矩阵A的对角线元素为1;其中所述复杂网络是规模巨大的因特网;步骤102:预先估计具有邻接矩阵A的该网络的社区数目c的最大值为K,社区数目c从2到k遍历一遍,找出模块度值最大时所对应的社区数目;步骤103:判断社区数目c是否小于最大值K;步骤104:对于不同的社区数目c,会得到不同的初始化矩阵U,然后对矩阵A进行非负矩阵分解:A≈U×UT,Uit表示矩阵U的第i行第t列的元素,Uij表示矩阵U的第i行第j列的元素,Uit=1表示节点i属于社区t,Uit=0表示节点i不属于社区t,时,即产生了异常值;步骤105:为了使异常值减少,加入惩罚项,即使用下面的目标函数来优化矩阵U:其中H为阶跃函数:式(1)需要优化矩阵U的所有元素,可转换为无约束的目标函数:u是待优化的标量;步骤106:利用遗传算法对参数u进行优化,把最终参数u带入U=H(U-u),即可得到二值矩阵U,从而得到社区检测的结果;步骤107:计算适应于交叠社区的修改后的模块度值,找出交叠模块度值最高时所对应的社区数目best_c;步骤108:对于best_c所对应的二值矩阵U,明确地得出复杂网络的社区划分,Uit=1表示节点i属于社区t,Uit=0表示节...

【专利技术属性】
技术研发人员:李阳阳焦李成张小林马文萍马晶晶尚荣华杨淑媛侯彪
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西;61

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

1