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

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

Info

Publication number
CN104318306A
CN104318306A CN201410531107.9A CN201410531107A CN104318306A CN 104318306 A CN104318306 A CN 104318306A CN 201410531107 A CN201410531107 A CN 201410531107A CN 104318306 A CN104318306 A CN 104318306A
Authority
CN
China
Prior art keywords
community
matrix
overlapping
network
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201410531107.9A
Other languages
English (en)
Other versions
CN104318306B (zh
Inventor
李阳阳
焦李成
张小林
马文萍
马晶晶
尚荣华
杨淑媛
侯彪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xidian University
Original Assignee
Xidian University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xidian University filed Critical Xidian University
Priority to CN201410531107.9A priority Critical patent/CN104318306B/zh
Publication of CN104318306A publication Critical patent/CN104318306A/zh
Application granted granted Critical
Publication of CN104318306B publication Critical patent/CN104318306B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

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

Description

基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法
技术领域
本发明涉及复杂网络以及数据挖掘领域,具体提供一种基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法。
背景技术
研究复杂网络中的社区结构对于分析复杂网络的拓扑结构、理解网络所具有的功能以及预测网络可能具备的行为具有非常重要的意义,此外还具有广泛的应用前景。随着社交网络数量的激增(例如规模巨大的因特网数据),社区检测尤其是交叠社区检测成为了学者们研究的热门话题。近年来,很多社区检测方法相继被提了出来,但是其中大部分只能处理非交叠网络。比如说基于图分割的方法、基于模块度优化的方法,这两种方法都旨在找出那些能将复杂网络分为非交叠类的那些边;还有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:
s.t.Uij 2-Uij=0,i=1,2,...n,j=1,2,...,c(1),H为阶跃函数: H ( t ) = 1 , ift > 0 0 , ift ≤ 0 , 式(1)需要优化矩阵U的所有元素,因此将带约束目标函数变为无约束的目标函数:
min u | | A - H ( U - u ) H ( U - u ) T | | 1 + Σ i ( 1 - Σ j H ( U - u ) ij ) , 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’s Karate Club、BottlenoseDolphins、American College Football、Poltical Books和计算仿真网络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:
s.t.Uij 2-Uij=0,i=1,2,...n,j=1,2,...,c(1),H为阶跃函数: H ( t ) = 1 , ift > 0 0 , ift ≤ 0 , 式(1)需要优化U的所有元素,因此将带约束目标函数变为无约束的目标函数:
min u | | A - H ( U - u ) H ( U - u ) T | | 1 + Σ i ( 1 - Σ j H ( U - u ) ij ) , 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:将选择算子作用于种群,把优化的个体直接遗传到下一代;
步骤304:将交叉算子作用于种群,对于任意两个个体,随机产生若干基因串的位置点,交换两个个体在该位置上的值;
步骤305:将变异算子作用于群体,对于任意个体,随机产生若干基因串的位置点,然后改动这些位置上的值;
步骤306:保留每一代中适应度值最高的个体,进入下一代;
步骤307:判断是否达到最大迭代次数,若t=Gmax,则输出具有最大适应度的个体,终止计算;否则,跳到步骤302继续执行。
步骤107:将传统模块度扩展后得到的交叠模块度,定义为:
Aij表示复杂网络的邻接矩阵的第i行第j列的元素,交叠划分C包含c个交叠社区,m是该复杂网络中边的数目,ki是节点i的度,Oi和Oj分别表示节点i和节点j所属于的社区数目,对于非交叠社区划分,Oi和Oj的值均为1,计算该交叠模块度值,找出交叠模块度值最高时所对应的社区数目best_c;
步骤108:对于best_c所对应的二值矩阵U,可以明确地得出社区的划分,Uit=1表示节点属于相关的社区,Uit=0表示不属于。如果表示该节点同时属于多个社区;
本发明将遗传算法(GA)与非负矩阵分解方法(NMF)融合,遗传算法能够更好的搜索出最优解,从而找出最优参数。最终得到更好的社区划分结果。在真实世界网络和计算机生成的基准网络——GN网络和LFR网络上均取得了很好的结果。图4(a)、(b)、(c)、(d)表示本发明在四个真实世界网络karate、dolphins、polbooks、football上,独立运行三十次,求得的模块度Q和NMI的平均值(用统计盒图表示)。
图4(e)和图4(f)表示本发明与SBMF算法在Karate网络上运行三十次的平均Q值和NMI值的比较,明显本发明的Q值和NMI值更高。图4(g)和图4(h)表示本发明与SBMF算法在Dolphins网络运行三十次的平均的Q值和NMI值的比较。本发明的Q值和NMI值明显好于SBMF算法。图4(i)和图4(j)表示本发明与SBMF算法在Polbooks网络上运行三十次的平均Q值和NMI值的比较。图4(k)和图4(l)表示本发明与SBMF算法在Football网络上运行三十次的平均Q值和NMI值的比较。图4(m)和图4(n)表示LFR网络混合参数为0.1的网络的运行三十次的平均算法结果比较,本发明的模块度和NMI的平均值虽然小一点,但是方差比SBMF方法小,因此稳定性更好图4(o)和图4(p)表示GN网络混合参数为0.2的网络的运行三十次的平均算法结果比较,本发明的模块度值比SBMF算法的高,NMI值和SBMF算法一样的。
因此,本发明采用了非负矩阵分解的方法用于交叠社区检测,它能将高维的数据矩阵降维处理,适合处理大规模数据,较传统的算法速度更快、更便捷。遗传算法对于参数u的优化,也能快速地将解空间的所有解都搜索出来,算法可以根据模块度值的大小自动地推断出社区数目,更重要地是可以检测出那些重叠的节点,这在实际应用中具有重要的意义。
本实施例没有详细叙述的部分属本行业的公知的常用手段,这里不一一叙述。以上例举仅仅是对本发明的举例说明,并不构成对本发明的保护范围的限制,凡是与本发明相同或相似的设计均属于本发明的保护范围之内。

Claims (3)

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: 
s.t.Uij 2-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同时属于多个社区。 
2.根据权利要求书1所述的基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法,其特征是:所述步骤104中的非负矩阵分解,包括如下步骤: 
步骤201:对于邻接矩阵为A,其社区数目为c,随机产生一个n行c列的矩阵U,迭代次数iter设置为100; 
步骤202:根据公式更新U矩阵的所有元素,重新对矩阵U进行归一化; 
步骤203:判断是否达到最大迭代次数,产生最终的U矩阵。 
3.根据权利要求书1所述的基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法,其特征是:所述步骤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继续执行。 
CN201410531107.9A 2014-10-10 2014-10-10 基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法 Active CN104318306B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410531107.9A CN104318306B (zh) 2014-10-10 2014-10-10 基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410531107.9A CN104318306B (zh) 2014-10-10 2014-10-10 基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法

Publications (2)

Publication Number Publication Date
CN104318306A true CN104318306A (zh) 2015-01-28
CN104318306B CN104318306B (zh) 2017-03-15

Family

ID=52373534

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410531107.9A Active CN104318306B (zh) 2014-10-10 2014-10-10 基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法

Country Status (1)

Country Link
CN (1) CN104318306B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106709095A (zh) * 2015-11-12 2017-05-24 中国石油化工股份有限公司 随机函数预处理拟牛顿后处理串行遗传集总动力学方法
CN107016261A (zh) * 2017-04-11 2017-08-04 曲阜师范大学 基于联合约束非负矩阵分解的差异表达基因辨识方法
WO2019136892A1 (zh) * 2018-01-15 2019-07-18 大连民族大学 一种复杂网络社区检测的方法
CN111400652A (zh) * 2020-03-02 2020-07-10 南通大学 一种非负矩阵社区发现方法及电影社区发现方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7996344B1 (en) * 2010-03-08 2011-08-09 Livermore Software Technology Corporation Multi-objective evolutionary algorithm based engineering design optimization
CN103488637A (zh) * 2012-06-11 2014-01-01 北京大学 一种基于动态社区挖掘进行专家检索的方法
CN103605793A (zh) * 2013-12-04 2014-02-26 西安电子科技大学 基于遗传算法的异构社会网络社区检测方法
CN103761308A (zh) * 2014-01-23 2014-04-30 杭州电子科技大学 一种基于自适应遗传算法的物化视图选择方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7996344B1 (en) * 2010-03-08 2011-08-09 Livermore Software Technology Corporation Multi-objective evolutionary algorithm based engineering design optimization
CN103488637A (zh) * 2012-06-11 2014-01-01 北京大学 一种基于动态社区挖掘进行专家检索的方法
CN103605793A (zh) * 2013-12-04 2014-02-26 西安电子科技大学 基于遗传算法的异构社会网络社区检测方法
CN103761308A (zh) * 2014-01-23 2014-04-30 杭州电子科技大学 一种基于自适应遗传算法的物化视图选择方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106709095A (zh) * 2015-11-12 2017-05-24 中国石油化工股份有限公司 随机函数预处理拟牛顿后处理串行遗传集总动力学方法
CN107016261A (zh) * 2017-04-11 2017-08-04 曲阜师范大学 基于联合约束非负矩阵分解的差异表达基因辨识方法
CN107016261B (zh) * 2017-04-11 2019-10-11 曲阜师范大学 基于联合约束非负矩阵分解的差异表达基因辨识方法
WO2019136892A1 (zh) * 2018-01-15 2019-07-18 大连民族大学 一种复杂网络社区检测的方法
CN111400652A (zh) * 2020-03-02 2020-07-10 南通大学 一种非负矩阵社区发现方法及电影社区发现方法

Also Published As

Publication number Publication date
CN104318306B (zh) 2017-03-15

Similar Documents

Publication Publication Date Title
CN103745258B (zh) 基于最小生成树聚类的遗传算法的复杂网络社区挖掘方法
CN107292350A (zh) 大规模数据的异常检测方法
CN107291847A (zh) 一种基于MapReduce的大规模数据分布式聚类处理方法
CN112232413A (zh) 基于图神经网络与谱聚类的高维数据特征选择方法
CN103488662A (zh) 基于图形处理单元的自组织映射神经网络聚类方法及系统
CN105303450A (zh) 基于谱聚类改进交叉的复杂网络社区发现方法
Wen et al. Learning ensemble of decision trees through multifactorial genetic programming
CN104318306A (zh) 基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法
Ma et al. Decomposition-based multiobjective evolutionary algorithm for community detection in dynamic social networks
CN104462196A (zh) 多特征联合哈希信息检索方法
CN104268629A (zh) 一种基于先验信息和网络固有信息的复杂网络社区检测方法
Ding et al. Intelligent optimization methods for high-dimensional data classification for support vector machines
CN110909125A (zh) 推文级社会媒体谣言检测方法
CN113222165A (zh) 一种基于遗传算法的量子线路优化方法
Tiezzi et al. Graph neural networks for graph drawing
Liu et al. DPSO based octagonal steiner tree algorithm for VLSI routing
Jabbour et al. Triangle-driven community detection in large graphs using propositional satisfiability
CN111352650B (zh) 一种基于insga-ii的软件模块化多目标优化方法及系统
Wang et al. An improved clustering method for detection system of public security events based on genetic algorithm and semisupervised learning
CN104573331A (zh) 一种基于MapReduce的K近邻数据预测方法
CN102799940B (zh) 基于遗传算法和先验知识的网络社区划分方法
Abdullah Determining a Cluster Centroid of Kmeans Clustering Using Genetic Algorithm
CN103020864B (zh) 玉米良种选育方法
CN103995821A (zh) 一种基于谱聚类算法的选择性聚类集成方法
Kumara et al. A survey on K-means algorithm centroid initialization

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant