基于谱聚类改进交叉的复杂网络社区发现方法

文档序号:9547826阅读:555来源:国知局
基于谱聚类改进交叉的复杂网络社区发现方法
【技术领域】
[0001] 本发明属于复杂网络社区发现方法的技术领域,具体是引入谱聚类改进交叉后的 遗传算法用在复杂网络社区发现上的一种新方法,是一种利用计算机技术,遗传算法,谱聚 类等方法实现的关于复杂网络研究中社区结构发现的方法。
【背景技术】
[0002] 自然界及人类社会中存在大量的复杂系统都可以用不同网络来描述。在用网络描 述复杂系统时用网络中结点表示复杂系统中的个体,结点之间的边来表示系统中个体间的 联系。现实世界中不同领域的网络系统,如社会网络,生物网络,信息网络,技术网络,交通 运输网络等都可以从复杂网络的角度和方法来描述,从而可以很好的理解复杂系统的性质 和功能。
[0003] 社区结构作为复杂网络的重要特性之一,已经成为复杂网络研究的一个热点,复 杂网络社区挖掘是一种多学科交叉的前沿研究热点,近年来,很多有关复杂网络社区挖掘 的方法被提出,并且也取得了一定的效果。这些方法大致可以分为:基于划分的社区挖掘 方法,如经典的GN算法;基于模块性优化的社区挖掘方法,如经典的FN算法,SA算法,FUA 算法等;基于标签传播的社区挖掘方法,如著名的标签算法LPA ;基于动力学的社区挖掘方 法,如MCL算法,FEC算法等;基于仿生计算的社区挖掘方法,主要侧重于蚁群算法和遗传算 法。
[0004] 虽然有大量的社区挖掘算法被提出,但很多算法本身还存在需要具备一定的先验 知识,效率低,收敛速度慢,易陷入局部最优等缺点,如经典的GN算法存在效率太低,时间 复杂度高的问题,模拟退火算法SA存在收敛速度慢的问题等。因此如何快速,精确高效地 发掘复杂网络中的社区结构是研究复杂网络的一个热点问题。

【发明内容】

[0005] 为了解决复杂网络社区挖掘方法中存在收敛速度慢,易于陷入局部最优等问 题,本发明提出了一种基于谱聚类改进交叉的遗传算法用于复杂网络社区挖掘的新方法 (Genetic Algorithm with an improved Crossover based on Spectral Clustering for Community Mining, GACSCM)〇
[0006] 本发明采用的技术方案如下:
[0007] 根据生物进化中避免近亲繁殖的思想,及遗传算法中种群本身是不断进化且是朝 着越来越相似的方向进化的事实,采用了思想简单,易于实现,且可以在任意形状的样本空 间上聚类等优点的谱聚类对种群中的个体进行了划分,在交叉操作时选取不同划分中的个 体进行遗传操作,从而增加种群多样性,避免陷入局部最优;相似个体虽不能有效地增加种 群多样性,但可有效地维持个体的优良性状,保持种群的进化方向,因此在进行不同划分个 体间遗传操作的同时同一划分中的个体也进行遗传操作,选取两种方式产生的个体中最优 的两个个体为子代个体。两种方式的交叉操作同时进行避免算法陷入局部最优和收敛速度 过慢,调节收敛速度和寻找最优解之间的平衡。
[0008] 基于谱聚类改进交叉的遗传算法的复杂网络社区挖掘方法,其特征包括以下步 骤:
[0009] 步骤1,对网络社区挖掘问题进行编码,方法如下:
[0010] 对网络中的结点进行编号,采用基于基因座邻接的编码表示种群中的个体,也被 称为染色体,该编码是一种基于图的表示方法,以网络中的结点数目表示染色体的编码长 度,染色中的每个基因对应于网络中的一个结点,基于结点和其大多数相邻结点在同一社 区,令每个基因 i取其在网络中的任意相邻结点j作为等位基因。
[0011] 步骤2,种群初始化,方法如下:
[0012] 按照步骤1的编码规则进行初始种群个体的产生,具体步骤如下
[0013] 1)初始化一个编码长度为n,每个基因的等位基因都为0的染色体
[0014] 2)顺序遍历每个基因位,查找其在网络中的相邻结点的集合
[0015] 3)在相邻结点集合中随机选择一个结点作为该基因位的等位基因
[0016] 4)重复步骤1)、2)、3)完成规定数目的个体的初始化工作
[0017] 步骤3,适应度函数的选取
[0018] 2004年Newman网络模块度函数的提出,将复杂网络挖掘问题转化为一种优化问 题,优化的目标就是模块度函数,模块度函数能够刻画社区划分结果的好坏程度,是评价网 络中社区结构好坏的性能指标,而基于遗传算法的复杂网络社区挖掘中,每个个体都代表 了对网络中社区的一种划分,因此本方法采用模块度函数Q为遗传算法中的适应度函数。
[0019] 模块度函数Q的表达式如下:
[0021] 其中,A = (Auv)nXn表不网络G中结点的邻接矩阵,如果结点u与V之间存在边连 接,则A uv= 1,否则Auv= 0 ; δ (r (u), r (V))为社区认同度函数,其中,r (u)表示u所在 的社区,r(v)表示V所在的社区,如果r(u) =r(v),其取值为1,表示结点u和V在同一社 区中;否则取值为〇,表示结点u和V不在同一社区中;ku表示结点u的度,1表示结点V的 度;E表示网络G中总的边数,被定义为
[0022] 步骤4,谱聚类划分种群个体
[0023] 谱聚类算法的基本思想来源于谱图理论,把聚类问题看成是一个图分割问题,其 本质是利用拉普拉斯矩阵的特征向量进行聚类,是一种配对聚类算法。
[0024] 谱聚类的具体实现如下:
[0025] 1)计算相似度矩阵S
[0026] 首先构造一个无向加权图,将种群中的个体看作网络中的结点,个体之间的相似 度看作网络中的边权,设种群规模为m
[0027] 种群中的个体之间的相似度采用归一化的互信息表示,设A,B为种群中的两个个 体,则A,B之间的相似度S (A,B)计算如下:
[0029] 其中C为置乱矩阵,其元素 Cu表示个体A中社区i与个体B中社区j中的拥有的 共同结点的数目。CjPCB分别为个体A与个体B所代表划分中是社区的数目。C 1.是矩阵 C中第i行元素之和,C j是矩阵C中第j列元素之和,N为复杂网络中结点的总数。如A与 B完全相同则S (A,B) = 1,若完全不同则S (A,B) = 0, S (A,B)越大说明两个体A与B之间 越相似。则S为一个m行m列的元素值为个体间相似度的邻接矩阵。
[0030] 2)计算度矩阵D
[0031] 取矩阵S中的每一列元素之和为矩阵D对角线上的元素,其他位置元素为0得到 D
[0032] 3)计算拉普拉斯矩阵L = D-W
[0033] 4)按特征值从小到大进行排序求出前k个特征值及对应的特征向量,将这些特征 向量排列起来组成一个矩阵m行k列的矩阵M
[0034] 5)将矩阵M的每一行看作k维空间的一个向量,使用k-means方法进行聚类。聚 类结果中每一行所属的类别即为种群中相应个体所属的类别。
[0035] 步骤5,交叉操作
[0036] 1)采用轮盘赌选择一个个体P1,记下该个体所属的类别标号i,从类别i中选择一 个最好的个体P 2。
[0037] 2)选择与类别i距离最远的类别j,选择类别j中的最好个体p3
[0038] 3)个体P1与个体p 2进行交叉操作产生的个体的集合为X
[0039] 4)选择个体?1与p 2中,与个体p 3距离较远的个体,假设为p 2,个体p2与个体p 3进 行交叉操作产生的个体集合为Y
[0040] 5)通过贪婪算法选择集合X和集合Y中最好的两个个体作为子代个体。
[0041] 步骤6,变异操作
[0042] 变异时选择变异基因位
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1