CN104318306B - 基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法 - Google Patents
基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法 Download PDFInfo
- Publication number
- CN104318306B CN104318306B CN201410531107.9A CN201410531107A CN104318306B CN 104318306 B CN104318306 B CN 104318306B CN 201410531107 A CN201410531107 A CN 201410531107A CN 104318306 B CN104318306 B CN 104318306B
- Authority
- CN
- China
- Prior art keywords
- community
- matrix
- network
- overlapping
- 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.)
- Expired - Fee Related
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 74
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 42
- 238000001514 detection method Methods 0.000 title claims abstract description 18
- 230000006978 adaptation Effects 0.000 title claims abstract description 11
- 230000002068 genetic effect Effects 0.000 claims abstract description 19
- 238000005457 optimization Methods 0.000 claims abstract description 9
- 108090000623 proteins and genes Proteins 0.000 claims description 9
- 230000035772 mutation Effects 0.000 claims description 6
- 210000000349 chromosome Anatomy 0.000 claims 1
- 238000012360 testing method Methods 0.000 abstract description 3
- 238000005094 computer simulation Methods 0.000 abstract description 2
- 230000000694 effects Effects 0.000 abstract 1
- 238000011156 evaluation Methods 0.000 abstract 1
- 238000000034 method Methods 0.000 description 13
- 235000005156 Brassica carinata Nutrition 0.000 description 3
- 244000257790 Brassica carinata Species 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 241001125840 Coryphaenidae Species 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 241000283293 Tursiops Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
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:
其中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’s Karate Club、Bottlenose Dolphins、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:
其中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:将选择算子作用于种群,把优化的个体直接遗传到下一代;
步骤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:
其中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继续执行。
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 CN104318306A (zh) | 2015-01-28 |
CN104318306B true CN104318306B (zh) | 2017-03-15 |
Family
ID=52373534
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410531107.9A Expired - Fee Related CN104318306B (zh) | 2014-10-10 | 2014-10-10 | 基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104318306B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106709095A (zh) * | 2015-11-12 | 2017-05-24 | 中国石油化工股份有限公司 | 随机函数预处理拟牛顿后处理串行遗传集总动力学方法 |
CN107016261B (zh) * | 2017-04-11 | 2019-10-11 | 曲阜师范大学 | 基于联合约束非负矩阵分解的差异表达基因辨识方法 |
CN108133272A (zh) * | 2018-01-15 | 2018-06-08 | 大连民族大学 | 一种复杂网络社区检测的方法 |
CN111400652B (zh) * | 2020-03-02 | 2023-06-13 | 南通大学 | 一种非负矩阵社区发现方法及电影社区发现方法 |
Citations (4)
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 | 杭州电子科技大学 | 一种基于自适应遗传算法的物化视图选择方法 |
-
2014
- 2014-10-10 CN CN201410531107.9A patent/CN104318306B/zh not_active Expired - Fee Related
Patent Citations (4)
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 | 杭州电子科技大学 | 一种基于自适应遗传算法的物化视图选择方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104318306A (zh) | 2015-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Joseph et al. | Impact of regularization on spectral clustering | |
CN103745258B (zh) | 基于最小生成树聚类的遗传算法的复杂网络社区挖掘方法 | |
CN104318306B (zh) | 基于非负矩阵分解和进化算法优化参数的自适应交叠社区检测方法 | |
Li et al. | On the norm of dominant difference for many-objective particle swarm optimization | |
CN106203507A (zh) | 一种基于分布式计算平台改进的k均值聚类方法 | |
Wen et al. | Learning ensemble of decision trees through multifactorial genetic programming | |
CN101324926B (zh) | 一种面向复杂模式分类的特征选择方法 | |
CN113222165A (zh) | 一种基于遗传算法的量子线路优化方法 | |
CN104268629A (zh) | 一种基于先验信息和网络固有信息的复杂网络社区检测方法 | |
CN102254033A (zh) | 基于熵权重的全局k-均值聚类方法 | |
CN104809476A (zh) | 一种基于分解的多目标进化模糊规则分类方法 | |
CN104376051A (zh) | 随机结构保形哈希信息检索方法 | |
CN103455612A (zh) | 基于两阶段策略的非重叠与重叠网络社区检测方法 | |
Kawamura et al. | A hybrid approach for optimal feature subset selection with evolutionary algorithms | |
Zhang et al. | Common community structure in time-varying networks | |
CN103020864B (zh) | 玉米良种选育方法 | |
Xiao et al. | A locating method for reliability-critical gates with a parallel-structured genetic algorithm | |
CN102799940B (zh) | 基于遗传算法和先验知识的网络社区划分方法 | |
CN111539616A (zh) | 一种基于混合型特征选择的新钻井潜力评价方法 | |
Cancino et al. | A multi-objective evolutionary approach for phylogenetic inference | |
CN113742204B (zh) | 一种基于模糊测试的深度学习算子测试方法 | |
Chaouche et al. | Solving the unsupervised graph partitioning problem with genetic algorithms: Classical and new encoding representations | |
CN103995821A (zh) | 一种基于谱聚类算法的选择性聚类集成方法 | |
Pizzuti et al. | An Effective Resistance based Genetic Algorithm for Community Detection. | |
CN113870950A (zh) | 一种稻瘟菌侵染水稻关键sRNA识别系统及识别方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170315 |