CN102810113B - 一种针对复杂网络的混合型聚类方法 - Google Patents
一种针对复杂网络的混合型聚类方法 Download PDFInfo
- Publication number
- CN102810113B CN102810113B CN201210185427.4A CN201210185427A CN102810113B CN 102810113 B CN102810113 B CN 102810113B CN 201210185427 A CN201210185427 A CN 201210185427A CN 102810113 B CN102810113 B CN 102810113B
- Authority
- CN
- China
- Prior art keywords
- community
- node
- network
- curq
- bestq
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出一种针对复杂网络的混合型聚类方法,属于社区网络的数据挖掘领域。本发明方法首先利用基于启发式的聚类方法分割复杂网络,在其中设置了优化终止函数和迭代终止阈值,以得到一个比较良好的网络社区划分结果,然后再利用基于优化的聚类方法合并网络,通过计算终止优化终止函数,保存最优的网络社区划分结果,最后输出该社区结构。本发明方法对大规模复杂网络进行社区划分或者聚类,社区划分结果良好,并且在提高基于连接聚类系数的GN算法精度的同时没有时间损失,可保证良好的用户体验。
Description
技术领域
本发明属于社区网络的数据挖掘领域,涉及一种针对复杂网络的混合型聚类方法。
背景技术
自20世纪90年代开始,以Internet为代表的信息技术的迅猛发展使人类社会进入了网络时代。从Internet到WWW,从生态环境中的食物链网到生物体内的新陈代谢网络,从科研合作网络到各种政治、经济、社会网络,从大型电力网络到全球交通网络,人们生活在一个充满着各种各样的复杂网络的世界中。随着真实世界网络中小世界效应及无标度特性的发现,带来了对复杂网络的研究热潮。复杂网络具有较强的跨学科特征,对复杂网络的研究涉及到图论、统计物理学、计算机网络、经济学、社会学等领域。
随着对复杂网络性质的物理意义和数学特性的深入研究,人们发现许多真实网络都具有一个共同的性质,即簇结构,也就是说整个网络是由若干个簇构成的。网络簇结构(networkcluster structure)是复杂网络最普遍和最重要的拓扑结构属性之一,具有簇内节点相互连接密集、簇间节点相互连接稀疏的特点。
发现网络中的社团结构对分析复杂网络的拓扑结构、理解复杂网络的功能、发现复杂网络中的隐藏规律以及预测复杂网络的行为不仅具有十分重要的理论意义,而且具有广泛的应用前景。目前已被应用于恐怖组织识别、蛋白质交互网络分析、基因调控网络分析及Web社区挖掘和搜索引擎等众多领域。
由于复杂网络中社团的重要性,来自多个学科的学者对聚类算法进行了深入的研究,取得了丰富的研究成果。复杂网络聚类方法按照分析策略划分主要分为基于优化的方法和启发式方法两类。
基于优化的方法主要有谱方法、KL(Kernighan-Lin)算法、FN(Fast-Newman)算法和GA(Guimera-Amaral)算法。
谱方法早期用于解决图分割(graph partition)问题,近年来被应用到复杂网络聚类领域。谱方法采用二次型优化最小化预定义的“截函数”。具有最小“截”(即网间连接密度)的划分被认为是最优的网络划分。谱方法具有严密的数学理论,被广泛应用于图分割和空间点聚类等领域。但由于其对先验知识的依赖度过高及其采用的递归二分策略问题,在实际应用中效果一般。
KL算法同样基于图分割思想,优化目标是极小化簇间连接与簇内连接数目之差,通过不断调整节点所属簇结构,选择并接受可以使目标函数极小化的候选解。KL算法对初始解非常敏感,在应用中同样对先验知识的依赖程度较高,在寻找最优解的过程中,往往只能得到局部最优的结果。
2004年,M.E.J.Newman提出了基于局部搜索的快速复杂网络聚类算法FN算法。FN算法属于基于优化的算法,其优化目标是极大化M.Girvan和M.E.J.Newman于同年提出的网络模块性评价函数(Q函数)。Q函数定义为簇内的实际连接数目与随机连接下簇内的期望连接数目之差,用来展现网络簇结构的优劣。Q值越大则网络簇结构越好。
2005年,R.Guimera和L.A.N.Amaral采用与FN算法相同的优化目标函数,提出了基于模拟退火算法(SA)的复杂网络聚类算法GA算法。该算法通过计算候选解对应的Q函数值来评价其优劣,GA算法具有找到全局最优解的能力,因此具有很好的聚类性能。
代表性的启发式方法有GN(Girvan-Newman)算法和MFC(Maximum Flow Community)算法。
2002年,M.Girvan和M.E.J.Newman提出了GN算法。GN算法采用反复识别和删除簇间连接的策略聚类复杂网络。GN算法初始所有的节点为一个社区,每一步删除边介数最大的边(时间复杂度为O(mn)),重复下去一直到所有的边被删除,此时每个节点为一个社区。这样就通过切割边的方法生成了一个树状的图,通过Q函数的检测,可以找到一个最好的分割。GN算法拥有较高的精度,经常作为聚类算法的评价参考指标。但因其时间复杂性过高(O(m2n))而无法在大规模复杂网络中使用。为了解决GN算法效率低下的问题,研究者提出了多种改进算法。
2003年,Tyler等人将统计方法引入基本的GN算法,提出一种近似GN算法。他们的策略是:采用蒙特卡洛方法估算出部分连接的近似边介数,而不是计算出全部连接的精确边介数。显然,这种方法计算速度的提高是以牺牲聚类精度为代价的。
考虑到GN算法效率低是因为边介数计算开销过大,2004年,Radicchi等人提出了连接聚类系数(link clustering coefficient)取代GN算法的边介数。他们认为:簇间连接应该很少出现在短回路(如三角形或四边形)中,否则,短回路中的其他多数连接也会成为簇间连接,从而显著增加簇间的连接密度。基于该出发点,他们把连接聚类系数定义为包含该连接的短回路数目,并采用如下启发式规则:簇间连接的连接聚类系数应小于簇内连接的连接聚类系数。在算法的每次迭代中,具有最小连接聚类系数的边被删除。连接聚类系数的平均计算时间是O(m3/n2),这一算法的时间复杂性为O(m4/n2)。对于稀疏网络,他们的算法(O(n2))要快于GN算法(O(n3))。该算法的最大局限性是:不适合处理短回路很少甚至没有的复杂网络。
同年,Flake等人基于最大流-最小截定理提出了启发式聚类算法MFC算法。MFC算法通过计算最小截集,识别造成网络“瓶颈”的簇间连接,通过删除簇间连接,逐渐将网络分割成为以簇为单位的单元化结构。但该算法基于连接进行聚类,不适用于节点异构的网络。
但是,在应用到复杂网络聚类时,虽然改进了的GN算法,提高了运行的速度,缩短了计算时间,可是复杂网络的聚类精度也比未改进的GN算法降低了。那么怎么样才能得到一个既能提高复杂网络聚类的运行时间,又能不降低网络聚类精度的方法成为一个待研究的问题。
发明内容
本发明方法针对在对复杂网络的聚类时,采用改进的GN算法在提高速度的同时降低了聚类结果精度的问题,提出了一种针对复杂网络的混合型聚类方法,尤其适用于在线社会关系网络、通讯系统中的电话网络等。
本发明提出的一种针对复杂网络的混合型聚类方法,具体包括如下步骤:
步骤1:构建整个网络的无向图,统计整个网络中的所有节点和边,为每个节点顺序编号,设节点总数为N,i为节点的编号,1≤i≤N;标记节点i和节点j之间的边为eij,1≤i≤N,1≤j≤N,i≠j。
步骤2:初始将网络中的所有节点划分到一个社区中。
步骤3:根据下式确定网络中每条边eij的连接聚类系数EdgeClusteringCoefficient。
Traid表示是节点i和节点j共同的邻居节点的个数,srcdeg表示节点i的度,destdeg表示节点j的度,min()表示取较小值。
步骤4:找到当前连接聚类系数值最大的边,标记为eAB,连接边eAB的节点为A和B,删除连接聚类系数值最大的边eAB,判断节点A和节点B之间是否存在连通的路径,若不存在,更新网络中的社区,然后执行下一步骤,若存在,转步骤3执行。更新网络中的社区的过程是:标记节点A和节点B在未更新社区前都属于社区s,将社区s中能连通节点A的节点划分到一个社区sA,将社区s中能连通节点B的节点划分到一个社区sB,然后更新社区的总数k=k+1,将社区sA记为第s个社区,社区sB记为第k个社区。
步骤5:获取当前网络中的社区,并确定当前网络所划分的社区的模块性评价指标值CurQ:
其中,AVE为平均数,s代表网络中第s个社区,k代表社区的总数,cs代表在步骤1的网络中社区s与其他社区之间连接的边的数量,ms代表社区s内的边的数量,m代表整个网络的边数。设置变量BestQ表示到目前为止最好的社区划分所对应的模块性评价指标值,初始赋值为0;设置变量steps用于标记当前迭代次数与BestQ所对应的迭代次数的差值,初始值为0。
判断CurQ与BestQ的大小:如果BestQ<=CurQ,令BestQ=CurQ,steps=0,保存当前的社区划分结果;如果BestQ>CurQ,那么steps=steps+1,判断steps是否小于用户设定的阈值threshold,如果否,执行步骤6,否则转步骤3执行。
步骤6:列举网络中当前存在的所有社区的两两组合,每个组合中不是相同的社区,针对每个组合,确定合并该组合中的两个社区i和j后,确定网络所划分的社区的模块性评价指标值Qij:
其中,ds表示社区s中节点度之和。找到计算得到最大的Qij:max(Qij),将最大Qij对应的两个社区合并,然后执行步骤7。
步骤7:令变量CurQ=max(Qij);判断CurQ与BestQ的大小,如果BestQ<=CurQ,更新变量BestQ=CurQ,保存当前网络中的社区结构,然后执行步骤8;如果BestQ>CurQ,直接执行步骤8。
步骤8:判断当前网络是否已经组合为一个社区,若是,执行步骤9,若否,转步骤6执行。
步骤9:将最终保存的社区结构输出。
本发明方法的优点和积极效果在于:采用本发明方法,对大规模复杂网络进行社区划分或者聚类,社区划分结果良好,优于采用GN算法和FN算法的社区划分结果,聚类精度比采用FN算法和GN算法的聚类精度高,并且解决了采用改进的GN算法在提高速度的同时降低了聚类结果精度的问题,在提高基于连接聚类系数的GN算法精度的同时没有时间损失。总之,采用本发明方法进行复杂网络社区划分,既可以比较快地得到划分结果,且社区划分结果优良,可保证良好的用户体验。
附图说明
图1为本发明复杂网络的混合型聚类方法的整体流程示意图;
图2为本发明方法、GN算法与FN算法在“Neural Network”数据集上的聚类效果对比图:(a)为依据Conductance指标进行比较;(b)为依据Expansion指标进行比较;
图3为本发明方法、GN算法与FN算法在“Political Blogs”数据集上的聚类效果对比图:(a)为依据Conductance指标进行比较;(b)为依据Expansion指标进行比较;
图4为本发明方法、GN算法与FN算法在“Email”数据集上的聚类效果对比图:(a)为依据Conductance指标进行比较;(b)为依据Expansion指标进行比较。
具体实施方式
下面将详细说明本发明方法的技术方案,并结合附图及实施例阐述本发明方法的效果。
本发明所采用的混合聚类方法的基本思想是:同时使用基于启发式的复杂网络聚类方法和基于优化的聚类方法。
(1)采用基于启发式的聚类方法分割复杂网络。
本发明使用基于连接聚类系数的GN算法对全网进行切割,以下说到的GN算法都指基于连接聚类系数的GN算法。该算法的优点在于聚类的速度较快,但是聚类精度并不高。从所有节点为一个社区,到最后每一个节点是一个社区,该算法可以给出一个树状的结构图。同时,为了提高聚类的速度,为后面的优化提供一个良好的初始解,设计了终止函数,使得在聚类达到一个比较好的聚类结果的时候,停止该GN算法的执行,切换到优化方法。
终止函数的定义如下:
其中,CurQ表示模块性评价指标,为终止函数的计算结果;s代表网络中的簇,k代表全网簇的总数,cs代表簇s被切割的边的数量(即s簇的簇间连接数),ms代表簇s内的连边数,m代表全网的连边数。AVE为平均数。
对于理想的网络分簇,簇间连接应该稀疏,而簇内连接应该紧密,因此终止函数越小越好。在本发明方法进行聚类过程中始终记录当前为止的最大的终止函数值,以评定是否需要再进行社区划分,并统计当前迭代次数与取得最大终止函数值时的迭代次数的差值,如果该差值大于设定的阈值threshold时,则表明找到了一个较好的初始解,即得到了一个较好的社区划分结果,进而切换到优化方法。
(2)采用基于优化的聚类方法合并网络。
使用FN算法对聚类结果进行优化,FN算法的优点是聚类精度高,但同时带来收敛速度慢的问题,并且过多依赖先验知识。通过启发式聚类方法进行初步的分簇正好解决了这两个问题,较快地收敛并给出了一个初始解。为了高效地将这两个聚类方法对接,本发明方法改进了FN算法,使其能够接受上一步中启发式聚类方法给出的聚类结果,并从这个分割状态开始聚合,当优化的聚类方法也找不到任何一种迭代操作可以使中止函数变小时,整个聚类方法结束,对复杂网络的聚类结束。
本发明方法尤其适用于在线社会关系网络、通讯系统中的电话网络等复杂网络,以复杂网络中的个体作为出发点,描述个体之间依赖关系的应用场景,通过统计人际关系网络或电话网络中个体之间的聚集关系,以较高的划分精度为目标,真实地反映整个网络的社区结构,以期为用户提供最佳的用户体验。以在线社会关系网络为例,参与者是社会中的个人或者团体代表,节点就是参与者;同样,电话网络中的节点就是电话使用者或者电话号码,应用场景中的统计数据所依赖的人际关系网络或电话网络,可用以节点及节点间的连边关系为参数的目标函数表示出来,然后将实际应用场景进行统计,并划分网络拓扑结构,目的是为了挖掘该应用场景网络中的关系,为用户提供最佳的用户体验,例如,好友推荐等。而如何能更加准确地得到当前应用场景网络的结构的问题,转换为如何根据节点及节点间的连边关系作为参数,最优化目标函数,使目标函数更加趋近于无偏目标函数,将网络中各节点进行准确分簇,以得到近似最优解的过程,从而为用户提供最佳的用户体验。
本发明实施例中的混合型聚类方法所使用的数据结构如表一所示。
表一混合型复杂网络聚类方法的数据结构
如表一所示,该数据结构包括社区和网络两个属性。网络包括如下属性:整个网络的名称、各节点与其所属社区的映射关系、每两个社区之间的连接边数、以及网络中的总度数。社区包括一下参数:成员节点member、网络中所存在的社区cmtys、各社区中的边数、各社区的度数、各社区的Conductance值、各社区的Expansion值以及各社区的average ODF值。
社区的Conductance值fc(s)是通过式(2)所示的Conductance评价函数计算得到:
社区的Expansion值fe(s)是根据式(3)所示的Expansion评价函数计算得到:
社区的Average ODF值fa(s)是通过式(4)所示的average ODF评价函数计算得到:
其中,cs表示簇s内节点与簇s外节点连边的总数;ms表示簇s内的连边总数;ns表示簇s内的节点总数。式(4)中,u、v表示节点,u为簇s内的节点,d(u)表示节点u的度。两个评价函数的函数值越低,说明聚类精度越高、效果越好。网络中的簇也就是所述的社区。
如图1所示,本发明提供的复杂网络的混合型聚类方法,流程如下:
步骤1:构建整个网络的无向图,统计整个网络中的所有节点和边,为每个节点顺序编号,设节点总数为N,i为节点的编号,1≤i≤N;标记节点i和节点j之间的边为eij,1≤i≤N,1≤j≤N,i≠j。
步骤2:初始将网络中所有节点作为一个社区。
步骤3:确定网络中的每条边eij的连接聚类系数EdgeClusteringCoefficient。
其中Traid表示是两个节点i和j共同的邻居节点的个数,srcdeg和destdeg分别表示节点i和节点j的度,min(srcdeg-1,destdeg-1)表示取两个值(srcdeg-1)和(destdeg-1)中的较小值。本发明方法中,若两个节点之间有连接的边存在,则这两个节点互为邻居节点。
步骤4:找到当前连接聚类系数值最大的边,标记为eAB,连接边eAB的节点为A和B,判断删除当前连接聚类系数值最大的那条边eAB后,节点A和节点B之间是否还存在连通的路径,若存在,转步骤3执行,否则执行下一步骤。
确定节点A和节点B之间是否还存在连通的路径,具体使用广度优先的方法,计算节点A和节点B之间的路径长度,如果长度不为-1,表示节点A和节B之间存在连通的路径,若删除边eAB后没有划分出新的社区,那么跳转到步骤3执行。如果长度为-1,表示节点A和节点B之间不存在连通的路径,若删除边eAB后出现了新的社区,那么进行步骤5。
具体本步骤使用广度优先的方法确定节点A和B之间是否还存在连通的路径,也就是计算两个节点A和B之间的路径长度,具体步骤为:
步骤4.1:构建一个队列Queue和一个哈希表Hash,初始将节点A放入队列Queue中,设置节点A的哈希值Hash(A)=0,其中0表示此节点到节点A的距离。
步骤4.2:从队列Queue中取出一个节点记为N,如果N=B,找到节点A和B之间的最短路径,即Hash(B)=Hash(N),执行步骤4.4;否则找到节点N的所有邻居节点Nk,将Nk放入队列Queue中,并设置Hash(Nk)=Hash(N)+1,Nk表示节点N的第k个邻居节点,然后执行步骤4.3。
步骤4.3:队列Queue是否为空,若否,转步骤4.2执行;若是,则设置Hash(B)=-1,执行步骤4.4。
步骤4.4:判断Hash(B)是否为-1,若否,节点A和节点B之间存在连通的路径,转步骤3执行;若是,表示节点A和节点B之间不存在连通的路径,更新网络中的社区,然后执行步骤5。更新网络中的社区的过程是:标记节点A和节点B在未更新社区前都属于社区s,s为社区编号,记为将社区s中能连通节点A的节点划分到一个社区sA,将社区s中能连通节点B的节点划分到一个社区sB,然后更新社区的总数k=k+1,将社区sA记为第s个社区,社区sB记为第k个社区。
步骤5:获取当前网络中的社区,并根据公式(1)确定当前网络所划分的社区的模块性评价指标CurQ:
其中,s代表网络中的第s个社区;k代表社区的总数;cs代表在步骤1得到的网络中,社区s与其他社区之间连接的边的数量,是将步骤4被删除的边考虑在内的网络;ms代表社区s内的边的数量;m代表整个网络的边数。AVE为平均数。
设置变量BestQ表示到目前为止最好的社区划分所对应的模块性评价指标值,初始赋值为0。
设置变量steps用于标记当前迭代次数与BestQ所对应的迭代次数的差值,初始steps=0。给定阈值threshold,用来表示如果连续进行threshold次划分,模块性评价指标值的结果CurQ依然不能比BestQ大,那么就认为已经找到了一个合适的社区划分结果,保存当前社区划分结果到cmtys。阈值threshold如果设置的过大,就失去了快速找到初始解的意义,如果太小就很容易取得一个比较差的初始解,经验值设置为4时比较好。
判断CurQ与BestQ的大小,如果BestQ<=CurQ,表示找到了一个更好的划分,那么令BestQ=CurQ,更新steps=0,保存当前的社区划分结果。
如果BestQ>CurQ,那么steps=steps+1,然后判断此时steps与给定的阈值threshold的大小,若steps小于给定的阈值threshold,跳转到步骤3执行,否则执行步骤6。
步骤6:列举网络中当前存在的所有社区的两两组合,每个组合中不是相同的社区,针对每个组合,根据式(6)确定合并组合中的两个社区后,网络中社区的模块性评价函数值Qij。
其中,合并两个社区后,社区的总数k=k-1;ds表示社区s中节点度之和。记社区i和社区j为组合中的两个社区,Qij表示合并社区i和社区j后的模块性评价函数值。
找到根据式(6)所计算得到最大的Qij,将最大Qij对应的组合中的两个社区合并。然后执行步骤7。
步骤7:令变量CurQ=max(Qij)。判断CurQ与BestQ的大小,如果BestQ<=CurQ,那么更新变量BestQ=CurQ,更新当前网络中的社区结构到数据结构Cmtys中,执行步骤8。如果BestQ>CurQ,直接执行步骤8。
其中,数据结构Cmtys保存着划分出来的社区结构,其可根据表一给出的社区结构进行定义。
步骤8:判断当前网络是否已经组合为一个社区,若是,表示采用基于优化的聚类方法进行合并网络已经完成,执行步骤9,否则,表示还需要采用基于优化的聚类方法进行合并网络,转步骤6执行。
步骤9:根据cmtys中保存的社区结构,输出最后的社区划分结果。
下面通过实验来证明采用本发明方法能够得到良好的社区划分结果,对本发明同时对三个规模和属性均不同的数据集(Neural network、Political Blogs和Email)进行聚类,同时使用基于连接聚类系数的GN算法和FN算法对以上数据集进行聚类,并分别使用NetworkCommunity Profile(NCP)中的Conductance和Expansion两种聚类效果函数对聚类结果进行评价分析。采用式(2)计算社区的Conductance值,采用式(3)计算社区的Expansion值。图2~图4中的横坐标k表示簇的数量,即社区的数量。
图1显示了在数据集“Neural Network”中,采用本发明方法、GN算法和FN算法进行聚类的结果示意图,并使用Conductance和Expansion函数对聚类效果进行评价的结果。“Neural Network”数据集属于生命系统中的神经元复杂网络,针对该神经元复杂网络,网络中的节点和边具有真实的物理意义,节点代表网络中的神经元,边代表两个神经元之间的连接关系,其基本参数如表二所示。
表二 Neural Network数据集属性
在图2的(a)中,本发明方法的Conductance平均值为0.597,而FN算法的Conductance平均值为0.7474,GN算法的Conductance平均值为0.6939。本发明方法的Conductance值,在73.68%的情况下比FN算法低,在68%的情况下比GN算法低。这表明采用本发明方法所得到的聚类精度要好于另外两种方法。
在图2的(b)中,本发明方法的Expansion平均值为1.2306,而FN算法的Expansion平均值为7.3006,GN算法的Expansion平均值为8.0313。本发明方法对应的Expansion曲线完全位于GN算法和FN算法对应的Expansion曲线的下方,这表明用Expansion来衡量精度时,采用本发明方法进行社区划分,在任何时候都比采用另外两种方法进行社区划分的效果好。
图3显示在“Political Blogs”数据集中,采用本发明方法、GN算法和FN算法进行聚类的结果示意图。“Political Blogs”数据集,节点表示社会中的个人或团体代表等参与者,边表示参与者之间有联系关系。与“Neural network”数据集相比,“Political Blogs”数据集规模更大,节点数量扩大了3.1倍,连边数量剧增了7倍,因此,节点间连接关系更加紧密,聚类系数提高,网络中的短回路数量(三角形关系)增加。但同时,网络节点间的平均最短路径变长,这说明在数据集中,节点间关系紧密度的提高程度有限,无法抵消网络规模增大所带来的影响。其基本参数如表三所示。
表三Political Blogs数据集属性
在图3的(a)中,本发明方法的Conductance平均值为0.2818,而FN算法的Conductance平均值为0.7587,GN算法的Conductance平均值为0.7687。本发明方法的Conductance值,在86.84%的情况下比FN算法低,在74.14%的情况下比GN算法低。这表明采用本发明方法进行聚类的精度要好于另外两种方法。
在图3的(b)中,本发明方法的Expansion平均值为0.4845,而FN算法的Expansion平均值为11.8582,GN算法的Expansion平均值为11.0257。本发明方法对应的Expansion曲线分别有94.74%和96.55%部分位于GN算法和FN算法对应的Expansion曲线的下方,这表明用Expansion来衡量精度时,采用本发明方法进行聚类,在任何时候都比另外两种方法的效果好。
图4显示了在“Email”数据集中,采用本发明方法、GN算法和FN算法进行聚类的结果示意图。“Email”数据集中,节点表示邮箱用户,边表示邮箱用户之间的联系关系。“Email”数据集与前两个数据集相比,具有节点数量多但关系稀疏的特点,因此其聚类系数较低,平均最短路径数值较高,在这种情况下,节点的局部性更强,掌握全局信息的数量及可能性更小。其基本参数如表四所示。
表四 Email数据集属性
在图4的(a)中,本发明方法的Conductance平均值为0.6058,而FN算法的Conductance平均值为0.6211,GN算法的Conductance平均值为0.5286。本发明方法的Conductance值,在60.87%的情况下比FN算法低,在53.75%的情况下比GN算法低。这表明本发明方法的聚类的精度要好于另外两种方法。
在图4的(b)中,本发明方法的Expansion平均值为0.8968,而FN算法的Expansion平均值为4.2879,GN算法的Expansion平均值为4.3382。本发明方法对应的Expansion曲线分别有95.65%和95.8%部分位于GN算法和FN算法对应的Expansion曲线下方,这表明用Expansion来衡量精度时,采用本发明方法进行聚类,在任何时候都比另外两种方法效果好。
且实验中从时间上来看,采用本发明方法在提高基于连接聚类系数的GN算法精度的同时没有时间损失。
通过上述三组数据集的实验结果说明:采用本发明方法对大规模复杂网络进行聚类(社区划分),聚类精度要比FN算法和GN算法高,社区划分结果要优于采用FN算法和GN算法的划分结果。
Claims (2)
1.一种针对复杂网络的混合型聚类方法,其特征在于,该方法包括如下步骤:
步骤1:构建整个网络的无向图,统计整个网络中的所有节点和边,为每个节点顺序编号,设节点总数为N,p为节点的编号,1≤p≤N;标记节点p和节点q之间的边为epq,1≤p≤N,1≤q≤N,p≠q;
步骤2:初始将网络中的所有节点划分到一个社区中;
步骤3:确定网络中的每条边epq的连接聚类系数EdgeClusteringCoefficient:
其中,Traid表示是节点p和节点q共同的邻居节点的个数,srcdeg表示节点p的度,destdeg表示节点q的度,min()表示取较小值;
步骤4:找到当前连接聚类系数值最大的边,标记为eAB,连接边eAB的节点为A和B,删除连接聚类系数值最大的那条边eAB,判断节点A和节点B之间是否存在连通的路径,若不存在,更新网络中的社区,然后执行下一步骤;若存在,转步骤3执行;更新网络中的社区,具体是:标记节点A和节点B在未更新社区前都属于社区s,s为社区编号,将社区s中能连通节点A的节点划分到一个社区sA,将社区s中能连通节点B的节点划分到一个社区sB,然后更新社区的总数k=k+1,将社区sA记为社区s,社区sB记为第k个社区;
所述的步骤4中判断节点A和节点B之间是否存在连通的路径,具体包括如下步骤:
步骤4.1:构建一个队列Queue和一个哈希表Hash,初始将节点A放入队列Queue中,设置节点A的哈希值Hash(A)=0,节点N的哈希值Hash(N)表示节点N到节点A的距离;
步骤4.2:从队列Queue中取出一个节点记为N,如果N=B,找到节点A和B之间的最短路径,Hash(B)=Hash(N),执行步骤4.4;否则,找到节点N的所有邻居节点Np,将Np放入队列Queue中,并设置Hash(Np)=Hash(N)+1,Np表示节点N的第p个邻居节点,然后执行步骤4.3;
步骤4.3:判断队列Queue是否为空,若否,转步骤4.2执行;若是,设置Hash(B)=-1,执行步骤4.4;
步骤4.4:判断Hash(B)是否为-1,若否,节点A和节点B之间存在连通的路径,若是,节点A和节点B之间不存在连通的路径;
步骤5:获取当前网络中的社区,并确定当前网络所划分的社区的模块性评价指标值CurQ:
其中,AVE为平均数,k代表网络中社区的总数,cs代表当前网络中社区s与其他社区之间连接的边的数量,ms代表社区s内的边的数量,m代表整个网络的边数;设置变量BestQ表示到目前为止最好的社区划分所对应的模块性评价指标值,初始赋值为0;设置变量steps用于标记当前迭代次数与BestQ所对应的迭代次数的差值,初始值为0;
判断CurQ与BestQ的大小:如果BestQ<=CurQ,令BestQ=CurQ,保存当前所划分的社区结构,更新迭代次数steps=0,转步骤3执行;如果BestQ>CurQ,更新迭代次数steps=steps+1,并判断steps是否小于用户设定的阈值threshold,若否,转步骤3执行,若是,执行步骤6;
步骤6:列举网络中当前存在的所有社区的两两组合,每个组合中不是相同的社区,针对每个组合,确定合并该组合中的两个社区i和j后,确定网络所划分的社区的模块性评价指标值Qij:
其中,ds表示社区s中节点度之和;找到计算得到最大的Qij:max(Qij),将最大Qij对应的两个社区合并,然后执行步骤7;
步骤7:令变量CurQ=max(Qij);判断CurQ与BestQ的大小,如果BestQ<=CurQ,更新变量BestQ=CurQ,保存当前网络中的社区结构,然后执行步骤8;如果BestQ>CurQ,直接执行步骤8;
步骤8:判断当前网络是否已经组合为一个社区,若是,执行步骤9,若否,转步骤6执行;
步骤9:将最终保存的社区结构输出。
2.根据权利要求1所述的一种针对复杂网络的混合型聚类方法,其特征在于,步骤5中所述的阈值threshold设置为4。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210185427.4A CN102810113B (zh) | 2012-06-06 | 2012-06-06 | 一种针对复杂网络的混合型聚类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210185427.4A CN102810113B (zh) | 2012-06-06 | 2012-06-06 | 一种针对复杂网络的混合型聚类方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102810113A CN102810113A (zh) | 2012-12-05 |
CN102810113B true CN102810113B (zh) | 2015-09-09 |
Family
ID=47233819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210185427.4A Expired - Fee Related CN102810113B (zh) | 2012-06-06 | 2012-06-06 | 一种针对复杂网络的混合型聚类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102810113B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103414711B (zh) * | 2013-08-05 | 2017-03-22 | 哈尔滨工业大学 | 基于信任的网络群体异常感知方法 |
US10303567B2 (en) | 2013-08-15 | 2019-05-28 | Entit Software Llc | Managing database nodes |
CN105096297A (zh) * | 2014-05-05 | 2015-11-25 | 中兴通讯股份有限公司 | 一种图数据分割的方法及装置 |
CN105101093B (zh) * | 2015-09-10 | 2018-05-29 | 电子科技大学 | 一种关于地理位置信息的网络拓扑可视化方法 |
CN106789285B (zh) * | 2016-12-28 | 2020-08-14 | 西安交通大学 | 一种在线社会网络多尺度社区发现方法 |
CN107145897B (zh) * | 2017-03-14 | 2020-01-07 | 中国科学院计算技术研究所 | 一种基于通信时空特征的演变网络特殊群体挖掘方法及系统 |
CN107368512B (zh) * | 2017-04-21 | 2020-07-24 | 阿里巴巴集团控股有限公司 | 信息对象的查询和序列确定方法、装置及设备、可读介质 |
CN107194069A (zh) * | 2017-05-23 | 2017-09-22 | 浙江工业大学 | 一种基于贝叶斯估计和大度节点有利的链路预测方法 |
CN108647739B (zh) * | 2018-05-17 | 2020-09-18 | 华中科技大学 | 一种基于改进的密度峰值聚类的社交网络社区发现方法 |
CN108763497A (zh) * | 2018-05-30 | 2018-11-06 | 河南科技大学 | 一种基于中心节点扩展的社区发现方法 |
CN111817898B (zh) * | 2020-07-21 | 2023-04-28 | 致诚阿福技术发展(北京)有限公司 | 一种识别动态网络结构异常的方法及装置 |
CN112256935A (zh) * | 2020-10-26 | 2021-01-22 | 临沂大学 | 基于优化的复杂网络聚类方法 |
CN113395172B (zh) * | 2021-05-18 | 2022-11-11 | 中国电子科技集团公司第五十四研究所 | 一种基于通信网的重要用户发现及行为预测方法 |
CN115827996B (zh) * | 2023-02-27 | 2023-05-02 | 杭州电子科技大学 | 一种具有共享约束的社区查询方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185935A1 (en) * | 2009-01-21 | 2010-07-22 | Nec Laboratories America, Inc. | Systems and methods for community detection |
CN101901251A (zh) * | 2010-06-28 | 2010-12-01 | 吉林大学 | 基于马尔科夫过程亚稳性的复杂网络簇结构分析和识别方法 |
CN102413029A (zh) * | 2012-01-05 | 2012-04-11 | 西安电子科技大学 | 基于分解的局部搜索多目标复杂动态网络社区划分方法 |
-
2012
- 2012-06-06 CN CN201210185427.4A patent/CN102810113B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185935A1 (en) * | 2009-01-21 | 2010-07-22 | Nec Laboratories America, Inc. | Systems and methods for community detection |
CN101901251A (zh) * | 2010-06-28 | 2010-12-01 | 吉林大学 | 基于马尔科夫过程亚稳性的复杂网络簇结构分析和识别方法 |
CN102413029A (zh) * | 2012-01-05 | 2012-04-11 | 西安电子科技大学 | 基于分解的局部搜索多目标复杂动态网络社区划分方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102810113A (zh) | 2012-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102810113B (zh) | 一种针对复杂网络的混合型聚类方法 | |
CN110532436B (zh) | 基于社区结构的跨社交网络用户身份识别方法 | |
CN106709035B (zh) | 一种电力多维全景数据的预处理系统 | |
CN102571954B (zh) | 基于节点核心影响力的复杂网络聚类方法 | |
Zhang et al. | Exact solution for mean first-passage time on a pseudofractal scale-free web | |
CN103227731A (zh) | 基于改进“结构洞”的复杂网络节点重要性局部计算方法 | |
CN105976048A (zh) | 一种基于改进人工蜂群算法的输电网扩展规划方法 | |
CN103020163A (zh) | 一种网络中基于节点相似度的网络社区划分方法 | |
CN102571431A (zh) | 针对复杂网络的基于群思想改进的Fast-Newman聚类方法 | |
CN105893381A (zh) | 一种基于半监督标签传播的微博用户群体划分方法 | |
CN106875281B (zh) | 基于贪心子图的社会网络节点挖掘激活方法 | |
CN104346481A (zh) | 一种基于动态同步模型的社区检测方法 | |
CN107766406A (zh) | 一种采用时间优先搜索的轨迹相似性连接查询方法 | |
CN108765180A (zh) | 基于影响力与种子扩展的重叠社区发现方法 | |
CN104700311B (zh) | 一种社会网络中的邻域跟随社区发现方法 | |
CN106355091B (zh) | 基于生物智能的传播源定位方法 | |
CN104504266A (zh) | 基于最短路径和密度聚类的图分割方法 | |
CN103902547A (zh) | 一种基于mdl的增量式动态社区快速发现方法及系统 | |
CN110442800A (zh) | 一种融合节点属性和图结构的半监督社区发现方法 | |
CN105740907A (zh) | 一种局部社团挖掘方法 | |
CN115456093A (zh) | 一种基于注意力图神经网络的高性能图聚类方法 | |
Ma et al. | Opportunistic Networks Link Prediction Method Based on Bayesian Recurrent Neural Network | |
CN115001978A (zh) | 一种基于强化学习模型的云租户虚拟网络智能映射方法 | |
Pei et al. | Survey of Community Structure Segmentation in Complex Networks. | |
CN103051476A (zh) | 基于拓扑分析的网络社区发现方法 |
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 |
Granted publication date: 20150909 Termination date: 20160606 |