复杂网络聚类方法

复杂网络聚类方法
复杂网络聚类方法

ISSN 1000-9825, CODEN RUXUEW E-mail: jos@https://www.360docs.net/doc/d88433737.html,

Journal of Software, Vol.20, No.1, January 2009, pp.54?66 https://www.360docs.net/doc/d88433737.html, doi: 10.3724/SP.J.1001.2009.03464 Tel/Fax: +86-10-62562563

? by Institute of Software, the Chinese Academy of Sciences. All rights reserved.

?

复杂网络聚类方法

杨博1,2, 刘大有1,2+, LIU Jiming3, 金弟1,2, 马海宾1,2

1(吉林大学计算机科学与技术学院,吉林长春 130012)

2(吉林大学符号计算与知识工程教育部重点实验室,吉林长春 130012)

3(香港浸会大学计算机科学系, 香港)

Complex Network Clustering Algorithms

YANG Bo1,2, LIU Da-You1,2+, LIU Jiming3, JIN Di1,2, MA Hai-Bin1,2

1(College of Computer Science and Technology, Jilin University, Changchun 130012, China)

2(Key Laboratory of Symbolic Computation and Knowledge Engineering for the Ministry of Education, Jilin University, Changchun

130012, China)

3(Department of Computer Science, Hong Kong Baptist University, Hong Kong, China)

+ Corresponding author: E-mail: dyliu@https://www.360docs.net/doc/d88433737.html,

Yang B, Liu DY, Liu J, Jin D, Ma HB. Complex network clustering algorithms. Journal of Software, 2009,

20(1):54?66. https://www.360docs.net/doc/d88433737.html,/1000-9825/3464.htm

Abstract: Network community structure is one of the most fundamental and important topological properties of

complex networks, within which the links between nodes are very dense, but between which they are quite sparse.

Network clustering algorithms which aim to discover all natural network communities from given complex

networks are fundamentally important for both theoretical researches and practical applications, and can be used to

analyze the topological structures, understand the functions, recognize the hidden patterns, and predict the behaviors

of complex networks including social networks, biological networks, World Wide Webs and so on. This paper

reviews the background, the motivation, the state of arts as well as the main issues of existing works related to

discovering network communities, and tries to draw a comprehensive and clear outline for this new and active

research area. This work is hopefully beneficial to the researchers from the communities of complex network

analysis, data mining, intelligent Web and bioinformatics.

Key words: complex network; network clustering; network community structure

摘要: 网络簇结构是复杂网络最普遍和最重要的拓扑属性之一,具有同簇节点相互连接密集、异簇节点相互连

接稀疏的特点.揭示网络簇结构的复杂网络聚类方法对分析复杂网络拓扑结构、理解其功能、发现其隐含模式、预

测其行为都具有十分重要的理论意义,在社会网、生物网和万维网中具有广泛应用.综述了复杂网络聚类方法的研

究背景、研究意义、国内外研究现状以及目前所面临的主要问题,试图为这个新兴的研究方向勾画出一个较为全面

? Supported by the National Natural Science Foundation of China under Grant Nos.60496321, 60503016, 60573073, 60873149 (国家

自然科学基金); the National High-Tech Research and Development Plan of China under Grant No.2006AA10Z245 (国家高技术研究发

展计划(863))

Received 2008-06-17; Accepted 2008-08-28

杨博等:复杂网络聚类方法55

和清晰的概貌,为复杂网络分析、数据挖掘、智能Web、生物信息学等相关领域的研究者提供有益的参考.

关键词: 复杂网络;网络聚类;网络簇结构

中图法分类号: TP311文献标识码: A

现实世界中的诸多系统都以网络形式存在,如社会系统中的人际关系网、科学家协作网和流行病传播网,生态系统中的神经元网、基因调控网和蛋白质交互网,科技系统中的电话网、因特网和万维网等.由于这些网络具有很高的复杂性,因此被称为“复杂网络(complex network)”.复杂网络已成为当前最重要的多学科交叉研究领域之一[1?3].与小世界性[1]、无标度性[2?4]等基本统计特性相并列,网络簇结构(network cluster structure或network community structure)是复杂网络最普遍和最重要的拓扑结构属性之一,具有同簇节点相互连接密集、异簇节点相互连接稀疏的特点[5?9].复杂网络聚类方法旨在揭示出复杂网络中真实存在的网络簇结构.

复杂网络聚类方法的研究对分析复杂网络的拓扑结构、理解复杂网络的功能、发现复杂网络中的隐藏规律以及预测复杂网络的行为不仅具有十分重要的理论意义,而且具有广泛的应用前景,目前已被应用于恐怖组织识别、组织结构管理等社会网络分析[5,7,10?12]、新陈代谢网络分析[7,13]、蛋白质交互网络分析和未知蛋白质功能预测[14?16]、基因调控网络分析和主控基因识别[8]等各种生物网络分析以及Web社区挖掘和基于主题词的Web文档聚类[17?19]和搜索引擎[20?22]等众多领域.

由于复杂网络聚类研究具有重要的理论意义和应用价值,它不仅成为计算机领域中最具挑战性的基础性研究课题之一,也吸引了来自物理、数学、生物、社会学和复杂性科学等众多领域的研究者,掀起了一股研究热潮.从2002年至今,新的方法层出不穷,新的应用领域不断被拓展,《Nature》[6,7,10],《Science》[13],《Proc. of National Academy of Sciences (PNAS)》[5,8,9,23?25],《Physics Review Letter》[26,27],《IEEE Trans. on Knowledge and Data Engineering(TKDE)》[28,29],《PLOS Computational Biology》[14,30]等不同领域的权威国际杂志和多个重要的国际学术会议(如数据挖掘领域权威国际会议ACM SIGKDD[31]和IEEE ICDM[32],万维网领域权威国际会议WWW[19,21]等)多次报道这方面的研究工作.复杂网络聚类方法已成为图论、复杂网络、数据挖掘等基础理论的重要组成部分和相关课程的核心内容,如康奈尔大学计算机系开设的“The Structure of Information Networks”课程和麻省理工大学电子工程和计算机系开设的“Networks and Dynamics”课程.

在以上研究背景下,本文综述了复杂网络聚类方法的研究现状以及目前面临的主要问题,试图为该研究方向勾画出一个较为全面和清晰的概貌,为复杂网络分析、数据挖掘等相关领域的研究者提供有益的参考.本文第1节分析复杂网络聚类问题的研究现状,重点分析15个具有代表性的复杂网络聚类算法.第2节通过实验定量分析和比较7种典型算法的性能.第3节总结全文并给出本文的一些结论.

1 复杂网络聚类方法分类与分析

复杂网络可以建模为一个图G=(V,E),V表示网络的节点集合,E表示连接的结合.复杂网络可以是无向图、有向图、加权图或者超图.网络簇定义为网络的稠密连通分支,具有簇内连接稠密、簇间连接相对稀疏的特点.例如,可以把人类社会抽象成一个称为“社会网络”的加权有向图.图中节点表示人,有向边表示人与人之间的社会关系,权值表示关系的强弱,路径表示由社会关系组成的“关系链”,网络簇表示由多个具有共同属性的人组成的“社团”.除社会网络之外,常见的复杂网络还有生物网络和科技网络.研究发现,尽管客观世界中的复杂系统功能各样,但它们对应的复杂网络在结构上却具有十分惊人的相似性.根据网络结构的特点,科学家把绝大多数的复杂网络归纳为3类:随机网络、小世界网络和无标度网络.复杂网络的核心研究内容是揭示复杂网络功能和结构之间的内在联系.目前,用于刻画复杂网络结构的重要属性是平均路长、聚类系数、度分布、网络Motif 和网络簇结构.借助复杂网络簇结构分析方法,科学家取得了一些有关网络功能和结构的初步研究结果,如:揭示出蛋白质功能和交互关系的内在联系、网页主题和超连接的内在联系、社会组织如何随时间演化等.然而,已有的研究结果还远未揭示复杂网络功能与结构的内在联系,在理论和应用上都还存在许多亟待解决的问题.本文主要从计算方法的角度,围绕复杂网络簇结构的发现算法进行讨论,分析和比较现有算法的基本原理、特

56

Journal of Software 软件学报 V ol.20, No.1, January 2009

点、不足和需要解决的问题. 目前已存在多种复杂网络聚类算法,按照所采用的基本求解策略,本文将它们中的大多数归纳为两大类:基于优化的方法(optimization based method)和启发式方法(heuristic method).前者将复杂网络聚类问题转化为优化问题,通过最优化预定义的目标函数来计算复杂网络的簇结构.例如,谱方法(spectral method)将网络聚类问题转化为二次型优化问题,通过计算特殊矩阵的特征向量来优化预定义的“截(cut)”函数.后者将复杂网络聚类问题转化为预定义启发式规则的设计问题.例如,被广泛引用的Girvan-Newman 算法[5]的启发式规则是:簇间连接的边介数(edge betweenness)应大于簇内连接的边介数.除了以上两类方法之外,还存在其他类型的复杂网络聚类方法.按照本文的分类方法,现有复杂网络聚类方法的分类如图1所示,本节将具体分析各类方法的典型代表.

Fig.1 Classification chart of complex network clustering algorithms

图1 复杂网络聚类算法分类图

1.1 基于优化的复杂网络聚类方法

谱方法和局部搜索方法是两类主要的基于优化的复杂聚类方法.

1.1.1 谱方法

谱方法最早用于解决图分割(graph partition)问题,近年来被应用到复杂网络聚类[23,31,33,34].谱方法采用二次型优化技术最小化预定义的“截”函数.当一个网络被划分为两个子网络时,“截”即指子网间的连接密度.具有最小“截”的划分被认为是最优的网络划分.针对不同问题,提出了不同的“截”函数.例如,针对分布式系统负载平衡提出的“平均截(average cut)”[35,36]、针对大规模集成电路(VLSI)设计提出的“比率截(ratio cut)”[37,38]以及针对图像分割提出的“规范截(normalized cut)”[39]等.已经证明,最小化以上的“截”函数是NP 完全问题[39,40].采用矩阵分析技术,谱方法将求解最小“截”问题转化为求解带约束的二次型优化问题:min{(X T MX )/(X T X )},其中,向量X 表示网络划分,M 表示对称半正定矩阵.对于“平均截”,M =D ?A 表示网络的拉普拉斯矩阵(Laplacian matrix),其中D 表示由节点度构成的对角矩阵,A 为网络的邻接矩阵;对于“规范截”,M =D ?1/2(D ?A )D ?1/2表示网络的规范化拉普拉斯矩阵;对于其他截函数,M 是拉普拉斯矩阵的不同变体.由拉格朗日方法,以上约束二次型的近似最优解(即网络的近似最优划分)可以通过计算M 的第2小特征向量求得.一般地,n 维矩阵特征向量的计算时间为O (n 3).对于稀疏网络,采用Lanczos 算法[41],M 的第2小特征向量的计算时间为32(/())O m λλ?,其中m 表示网络连接数目,λ2和λ3分别表示M 的第二、第三小特征值.谱方法本质上是一种二分法,在每次二分过程中,网络被分割成两个近似平衡的子网络.当网络中含有多个簇时,谱方法递归地分割现存的子网络,直到满足预先定义的停止条件为止.

谱方法具有严密的数学理论,已发展成数据聚类的一种重要方法(称为谱聚类法),被广泛应用于图分割和

杨博 等:复杂网络聚类方法 57 空间点聚类等领域.但是,针对复杂网络聚类,谱方法的主要不足是:1) 需要借助先验知识定义递归终止条件,即谱方法不具备自动识别网络簇总数的能力;2) 现实世界中的复杂网络往往包含多个网络簇,而谱方法的递归二分策略不能保证得到的网络划分是最优的多网络簇结构.

1.1.2 基于局部搜索的复杂网络聚类方法

Kernighan-Lin 算法(简称KL 算法)[42]、快速Newman 算法(简称FN 算法)[43]和Guimera-Amaral 算法(简称GA 算法)[6]是3种典型的基于局部搜索优化技术的复杂网络聚类算法.这类算法包含3个基本部分:目标函数、候选解的搜索策略和最优解的搜索策略.以上3种算法采用了几乎相同的候选解搜索策略,但其所采用的目标函数和最优解搜索策略却不尽相同.

针对图分割问题,Kernighan 和Lin 在1970年提出KL 算法[42],该方法也可用于复杂网络聚类.KL 算法的优化目标是极小化簇间连接数目与簇内连接数目之差;其候选解搜索策略是:将节点移动到其他簇或交换不同簇的节点.从初始解开始,KL 算法在每次迭代过程中产生、评价、选择候选解,直到从当前解出发找不到更好的候选解为止.在整个搜索过程中,KL 算法只接受更好的候选解,而拒绝所有较差的候选解,因此它找到的解往往是局部最优而不是全局最优解.KL 算法最大的局限性在于它需要先验知识(如簇的个数或簇的平均规模)来产生一个较好的初始簇结构,因为该算法对初始解非常敏感,不好的初始解往往导致缓慢的收敛速度和较差的最终解.KL 算法的时间复杂性是O (tn 2),其中,n 表示网络节点个数,t 表示算法停止时的迭代次数.

2004年,Newman 提出了基于局部搜索的快速复杂网络聚类算法FN [43].其优化目标是极大化Newman 和Girvan 在同年提出的网络模块性(modularity)评价函数(他们称为Q 函数)[44].Q 函数定义为簇内实际连接数目与随机连接情况下簇内期望连接数目之差,用来定量地刻画网络簇结构的优劣,一种计算形式如下:

212K

s s s m d Q=m m =???????????????∑, 其中,K 表示网络簇个数,m 表示网络连接总数,m s 表示网络簇s 中的连接总数,d s 表示网络簇s 中节点度之和.

一般地,好的网络簇结构对应较大的Q 值.候选解的局部搜索策略为:选择且合并两个现有的网络簇.从初始解开始(每个网络簇仅包含一个节点),在每次迭代中,FN 算法执行使?Q 值最大化的合并操作,直到网络中只剩下一个网络簇.通过这种自低向上的层次聚类过程,FN 算法输出一棵刻画网络簇层次关系的树结构(dendrogram).FN 算法的时间复杂性是O (mn ),m 和n 分别表示网络的连接数和节点数.

采用与FN 算法相同的优化目标,Guimera 和Amaral 在2005年提出了基于模拟退火算法(simulated annealing,简称SA)的复杂网络聚类算法GA,并应用到新陈代谢网络分析中.2005年2月刊的《Nature 》报道了该工作[6].类似于KL 算法,从初始解开始,在每次迭代中,GA 算法产生、评价、接受或拒绝由当前解产生的候选解.GA 算法产生候选解的策略是:将节点移动到其他簇、交换不同簇的节点、分解网络簇或合并网络簇.GA 算法通过计算候选解对应的Q 值来评价其优劣,并采用模拟退火策略的Metropolis 准则决定是否接受它,允许以一定的概率接受较差的候选解而放弃较好的候选解.因此,GA 算法具有跳过局部最优解、找到全局最优解的能力,从而具有很好的聚类精度. GA 采用的Metropolis 准则定义如下:

1111,if ,exp ,if t t t t t t C C p C C C C T +++≤??=?????>??????

其中,C t =?Q t ,p 表示接受t+1时刻候选解的概率,T 表示t+1时刻的系统温度.

GA 算法的效率完全取决于SA 算法的效率,而后者的收敛速度通常很缓慢.据报道,在普通配置的计算机上采用GA 算法聚类仅包含3 885个节点、7 260条边的酵母菌蛋白质交互网络需要3天时间[14].此外,GA 算法对输入参数(如初始解、候选解搜索策略、降温(cooling)策略等)非常敏感,不同的参数设置往往导致具有较大差别的聚类结果和运行时间.

1.1.3 其他基于优化的复杂网络聚类方法

除以上两种主要方法外,还存在其他基于优化方法的复杂网络聚类方法.例如,Reichardt 和Bornholdt 在

58 Journal of Software 软件学报 V ol.20, No.1, January 2009

2004年提出的基于多自旋状态Potts 模型的网络聚类算法[26].在该模型中,每个网络节点被看作是一个具有多自旋状态的旋转子(spin),并且同簇内节点具有相同的自旋状态.他们认为,最优的网络簇结构应该对应最稳定的系统状态,即能量最低的状态.因此,网络聚类问题就转化为求最小化系统能量的自旋状态分布问题.他们定义了系统能量函数,并基于蒙特卡罗方法和模拟退火算法给出了相应的优化算法.

1.1.4 基于优化聚类方法的分析

采用优化方法识别出的网络簇结构完全取决于优化目标,因此“有偏”的目标函数会导致“有偏”的解(即得到的网络簇结构和真实存在的网络簇结构不符).值得注意的是,除了以上提到的FN 算法和GA 算法外,很多基于优化的复杂网络聚类方法都以最大化Q 函数作为优化目标[14,23,45,46].然而,研究发现,Q 函数是有偏的,并不能完全准确地刻画最优的(或者说是真实的)网络簇结构.对于某些网络而言,其真实的网络簇结构对应的Q 值是局部极大值,而非全局最大值.图2给出了GA 算法计算两个基准社会网络(Karate 网络[47]和Football 网络[5])的局部搜索过程.如图2(a)所示,对于Karate 网络而言,其真实的2-网络簇结构对应一个局部极大值0.37,而GA 计算出的全局最优值0.42对应一个4-网络簇结构.如图2(b)所示,对于Football 网络而言,其真实的12-网络簇结构对应一个局部极大值0.51,而GA 计算出的全局最优值0.60对应一个10-网络簇结构.

0 0.1

0.2

0.3

0.4 0.5

Iterations of GA algorithm Q -V a l u e Q -Value of the actual cluster structure Q -Value of different cluster structures

00.10.20.30.40.50.6Iterations of GA algorithm Q -V a l u e Q -Value of the actual cluster structure Q -Value of different cluster structures

(a) (b)

Fig.2 Local search processes of the GA algorithm

图2 GA 算法的局部搜索过程

2004年,Guimera 等人进一步研究发现,对于某些随机网络,由于受到扰动的影响,明显不好的网络簇结构却对应相对较高的Q 值[48].2007年,Fortunato 和Barthelemy 系统地研究了Q 函数对聚类精度的影响,他们在

《PNAS 》

上发表论文指出:对于大规模复杂网络,基于优化Q 函数的复杂网络聚类算法倾向于找到粗糙的而不是精细的网络簇结构[24].这意味着,该类算法未必能够找到这些网络中真实存在的全部网络簇.

1.2 启发式复杂网络聚类方法

MFC(maximum flow community)算法[17]、HITS(hyperlink induced topic search)算法[20]、Girvan-Newman (GN)算法[5]及其改进[9,12]、Wu-Huberman(WH)算法[49]和CPM(clique percolation method)算法[7]和FEC(finding and extracting communities)算法[28]是典型的启发式复杂网络聚类算法.这类算法的共同特点是:基于某些直观的假设来设计启发式算法,对于大部分网络,它们能够快速地找到最优解或者近似最优解,但无法从理论上严格保证它们对任何输入网络都能找到令人满意的解.

2002年,Flake 等人基于图论的最大流-最小截定理提出了复杂网络聚类算法MFC [17].该算法的基本假设是:网络中的最大流量由网络“瓶颈”的容量决定,而在具有簇结构的网络中,网络“瓶颈”由簇间连接构成.由最大流-最小截定理可知:网络中的最大流等于最小截集的容量.因此,通过计算最小截集可以识别簇间连接.经过反复识别并删除簇间连接,网络簇能够被逐渐分离开来.Flake 等人将MFC 应用到基于链接的Web 网页聚类,并通过实验验证了一个非常有用的假说:通过自组织方式形成的Web 簇是高度主题相关的.这个发现为基于主题词的

杨博等:复杂网络聚类方法59

Web网页/文本聚类提供了一个新思路,因为基于连接分析的聚类算法所需要的开销要远远低于基于内容分析的聚类算法.MFC算法的效率由计算最小截集的时间决定,目前最快的最小截集计算方法需要O(mn log(n2/m))时间[50].

由Girvan和Newman在2002年提出的GN算法也采用反复识别和删除簇间连接的策略聚类复杂网络[5].但GN算法采用了与MFC算法完全不同的启发式规则:簇间连接的边介数(edge betweenness)应大于簇内连接的边介数.连接的边介数定义为网络中经过该连接的任意两点间最短路径的条数.GN算法通过反复计算边介数、识别簇间连接、删除簇间连接,以自顶向下的方式建立一棵层次聚类树(dendrogram).GN算法的最大缺点是计算速度慢,由于边介数的计算开销过大(O(mn)),GN算法具有很高的时间复杂性(O(m2n)),只适合处理中小规模的网络(包含几百个节点的网络).尽管如此,GN算法在复杂网络聚类研究中仍占有十分重要的地位,Girvan 和Newman工作的重要意义在于:他们首次发现了复杂网络中普遍存在的网络簇结构,启发了其他研究者对这个问题的深入研究,掀起了复杂网络聚类的研究热潮.针对GN算法计算速度慢的缺点,研究者提出了多种改进方法.

2003年,Tyler等人将统计方法引入基本的GN算法,提出一种近似GN算法[12].他们的策略是:采用蒙特卡洛方法估算出部分连接的近似边介数,而不是计算出全部连接的精确边介数.显然,这种方法计算速度的提高是以牺牲聚类精度为代价的.

考虑到GN算法效率低是因为边介数计算开销过大,2004年,Radicchi等人提出了连接聚类系数(link clustering coefficient)取代GN算法的边介数[9].他们认为:簇间连接应该很少出现在短回路(如三角形或四边形)中,否则,短回路中的其他多数连接也会成为簇间连接,从而显著增加簇间的连接密度.基于该出发点,他们把连接聚类系数定义为包含该连接的短回路数目,并采用如下启发式规则:簇间连接的连接聚类系数应小于簇内连接的连接聚类系数.在算法的每次迭代中,具有最小连接聚类系数的边被删除.连接聚类系数的平均计算时间是O(m3/n2),这一算法的时间复杂性为O(m4/n2).对于稀疏网络,他们的算法(O(n2))要快于GN算法(O(n3)).该算法的最大局限性是:不适合处理短回路很少甚至没有的复杂网络.

针对基于连接的WWW聚类问题,Kleinberg等人在1999年提出了著名的HITS算法[20].该算法本质上是一种启发式算法,所基于的基本假设是:根据连接关系,WWW中存在权威(authority)和中心(hub)两种基本类型的页面,权威页面倾向于被多个中心页面引用,而中心页面倾向于引用多个权威页面.基于权威-中心页面间相互指向的连接关系,HITS算法通过计算WWW对应的某些特殊矩阵(AA T和A T A,A表示Web图的邻接矩阵)的主特征向量来发现隐藏在WWW中的全部由权威-中心页面构成的网络簇结构.该算法被广泛地应用于包括Altavista在内的多个搜索引擎中.

2004年,Wu和Huberma提出了快速启发式算法WH[49].该算法将复杂网络建模为电路系统,网络连接看作是具有电阻的线路,不同位置的网络节点具有不同的电位势.WH算法的启发式规则是:当在不同的簇中分别选取两个节点作为正负极后,由于簇间的电阻远远大于簇内电阻,因此,同簇节点位势应近似相同,而异簇节点位势应具有显著差异.WH算法首先基于Kirchhoff方程计算出每个节点的位势,然后采用寻找最大位势差的方法区分出不同的网络簇.WH算法是目前报道过的最快的复杂网络聚类算法,具有近似线性的时间复杂性O(t(n+m)),其中,t为计算出全部位势所需要的迭代次数.但WH算法需要过多的先验知识,并且通常难以获取.例如,WH算法需要从两个不同的簇中选择正负极节点;为挖掘出多个网络簇,WH算法需要知道网络簇的总数和每个簇的近似规模.

目前,绝大多数算法不考虑重叠网络簇结构.但在多数应用中,重叠网络簇结构更具有实际意义.例如,在语义网中,多义词允许同时出现在多个表示不同词义的网络簇中.2005年,Palla及其同事在《Nature》上发表文章,提出了能够识别重叠网络簇结构的CPM算法[7].该算法的基本假设是:网络簇由多个相邻的k-团(k-clique)组成,相邻的两个k-团至少共享k?1个节点,每个k-团唯一地属于某个网络簇,但属于不同网络簇的k-团可能会共享某些节点.基于以上启发式信息,CPM算法通过如下步骤识别出重叠网络簇结构:1) 对给定的参数K,计算出网络中的全部k-团(k≤K),并建立团-团重叠矩阵(clique-clique overlap matrix);2) 根据以上矩阵,计算出重叠网络簇

60 Journal of Software软件学报 V ol.20, No.1, January 2009

结构.CPM算法是第1种能够计算重叠网络簇结构的算法,但具有如下主要缺点:在实际应用中参数K难以确定,选取不同的K值往往得到差别较大的网络簇结构,但难以评判它们的优劣.

符号网络(signed network)是指包含正、负两种关系的二维复杂网络,是对一般复杂网络描述能力的一种推广.符号网络广泛存在于社会、生物等多种复杂系统中.例如,在社会系统中,“喜欢”、“尊重”和“表扬”属于正关系,而“厌恶”、“轻视”和“责备”属于负关系;再如,在神经系统中,神经元之间的“相互促进”属于正关系,而“相互抑制”属于负关系.符号网络簇结构具有簇内正关系稠密、同时簇间负关系也稠密的特点.针对符号网络聚类问题,杨博、Cheung和Liu等人在2007年提出了基于马尔可夫随机游走模型的启发式符合网络聚类算法(FEC)[28].FEC算法所采用的基本假设是:从任意给定的簇出发,网络中的随机游走过程达到起始簇内节点的期望概率将大于达到起始簇外节点的期望概率.基于该启发规则,FEC算法首先计算出在给定时刻随机游走过程到达所有节点的期望转移概率分布,进而根据该分布的局部一致性——同簇节点具有近似相同的期望转移概率分布——识别出各个不同的网络簇.值得指出的是,FEC算法是第1种综合考虑两种分簇标准(即连接密度和连接符号)的复杂网络聚类算法,既能有效处理符号网络(能够发现更加“自然”的符号网络簇结构),又能有效处理仅包含“正关系”的一般复杂网络.与现有方法相比,FEC算法在时间和识别精度方面表现出了更好的性能,尤其适合于处理噪声高和网络簇结构不明显的复杂网络.该算法的参数是随机游走的步长,步长的设置会影响最终的聚类结果.通过实验分析,FEC算法给出了步长设置的经验值,建议取值区间为[6,20].其中,6表示复杂网络中两点间的平均距离(大多数网络都满足六度分离理论),20表示网络的直径(WWW是迄今最大的复杂网络,研究表明其直径为19).但是,FEC算法没有从理论上给出一种针对不同网络设置最优参数的方法.

1.3 其他复杂网络聚类方法

除了以上两类主要方法以外,还存在其他复杂网络聚类方法.例如,基于相似度的层次聚类方法.在这类方法中,节点间的相似度根据网络拓扑结构定义,如基于结构全等的相关系数(correlation coefficient)[51]、基于随机游走的相似度[52]和节点聚类中心度(clustering centrality)[53]等.

研究发现,WWW呈现的全局拓扑结构是由多个分散、自治实体的局部行为通过多种自组织方式涌现而成的.针对具有自组织特点的WWW聚类问题,文献[53]分析了复杂网络的宏观拓扑结构和网络节点的局部信息之间的关系,发现隐藏在网络中的全局簇结构能够从评价各个节点重要程度的局部中心度(local centrality)推断出来.据此,提出了节点聚类中心度概念和基于节点聚类中心度的复杂网络层次聚类算法(identifying community structure,简称ICS),并给出了该算法在搜索引擎中的应用实例.

此外,聚类复杂网络的另一个思路是:将网络聚类转化为向量聚类.通过给每个网络节点分配一个合理的K-维坐标,我们可以把网络聚类问题转换为传统的空间点聚类问题,然后采用K-means等经典聚类算法聚类这些新生成的空间点.实际上,这个思想最早可以追溯到1970年Hall针对图分割问题提出的加权二次型变换算法[54].该算法能够将网络投影到一维空间,使得网络中连接紧密的节点在一维空间中的位置相对较近,而连接稀疏的节点在一维空间中的位置相对较远.基于相似的思想,Donetti和Munoz在2004年提出了一种结合谱方法和空间点聚类方法的复杂网络聚类算法[55].他们首先通过计算拉普拉斯矩阵的K个最小特征向量将网络映射到K-维空间中,然后采用某种基于距离的空间点聚类算法聚类网络节点.

2 实验

为了定量地分析和比较不同复杂网络聚类方法的性能,我们分别从优化方法和启发式方法中选择了具有代表性的7种算法,针对不同的基准数据集,从聚类精度和聚类速度两个方面进行对比实验.实验环境为:处理器Intel(R)Core(TM)2 4400 2.0GHz,内存2G,硬盘160G,操作系统为Windows XP,编程语言为Matlab 7.0.相关算法的代码可以从https://www.360docs.net/doc/d88433737.html,/www/网站下载.

2.1 聚类精度比较

首先采用已知簇结构的随机网络测试所选择算法的聚类精度.该实验方法被相关工作广泛采用,已成为测

杨博 等:复杂网络聚类方法 61 试复杂网络聚类算法准确性的一种基准方法[5,43,44].已知簇结构的随机网络定义为RN (C ,s ,d ,p in ),其中,C 表示网络簇的个数,s 表示每个簇包含节点的个数,d 表示网络中节点的平均度,p in 表示簇内连接密度(即簇内连接总数与网络连接总数的比值).p in 值越大,随机网络的簇结构越明显;反之,簇结构越模糊.特别地,当p in <0.5时,认为该随机网络不具有簇结构.一个随机网络被正确聚类当且仅当预定义的C 个网络簇被全部正确识别,且没有某个簇被进一步分割为多个子簇.图3给出了实验结果,这里所采用的随机网络是被普遍采用的基准随机网络RN (4,32,16,p in ).图3中,y -轴表示聚类精度,曲线上的每个数据点是采用不同算法聚类100个随机网络得到的平均准确率.

1

p in C l u s t e r i n g a c c u r a c y

Fig.3 Testing the clustering accuracy of different algorithms against random networks

图3 使用随机网络测试不同算法的聚类精度

由图3可得:(1) 各种算法的聚类精度随p in 的增加而增加.在网络簇结构非常明晰的情况下(p in >0.7),全部算法都具有很好的聚类精度(>97%);但在网络簇结构不明显的情况下(p in <0.5),大部分算法的聚类精度都比较低;

(2) 对于已知簇结构的随机网络模型,基于优化的聚类方法(FN 算法除外)比启发式算法(FEC,CPM,GN)展现出更好的聚类精度.在所有的方法中,GA 算法具有最高的聚类精度,即使在p in =0.45的情况下,其精度也接近90%. FEC 是启发式方法中聚类精度最高的算法,其性能接近采用平均截(A-cut)的谱方法.在所有参加比较的方法中,GN 算法的聚类精度最低,该方法只适合于处理网络簇结构比较明显(p in >0.65)的网络.

值得说明的是,由于谱方法不具备自动识别网络簇个数的能力,在该实验中,谱方法(N-cut 和A-cut)的聚类精度是在事先知道“网络簇个数”的前提下计算的,否则,谱方法将会把已识别出的正确网络簇进一步划分为更小的子网络簇,从而降低聚类精度.此外,CPM 算法的计算结果依赖于其参数K 的设置,不同的K 值会产生差别较大的聚类精度.在该实验中,对每一个p in ,我们分别测试采用不同K 值的CPM 算法,并选择其中聚类精度的最大值作为CMP 在该p in 下的聚类准确率.在以下实验中,对谱方法和CPM 算法的测试也采用了相同的方法.

为进一步测试以上算法的聚类精度,我们选取UCI 的3个数据集Iris,Wine 和Image 作为测试数据.这些数据集包含有手工标注的类标识,常被用于测试和评价空间聚类算法的聚类性能.Iris 包含3个类,150个样本,每类代表一种类型的鸢尾花,每类各有50个样本,每个样本包含3个属性.Wine 数据集包含3个类,178个样本,每类代表由一种植物酿制而成的酒,每类的样本数不同,每个样本包含13个属性.Image 包含7个类,210个样本,每个样本分别从7个户外图像集合中随机选取,每类的样本数不同,每个样本包含19个属性.

为采用复杂网络聚类算法,首先采用k NN(k nearest neighbors)方法将空间数据集转化为k NN 网络.k NN 网络中的每个节点表示一个样本数据,其k 个邻居表示在欧式空间中距离其最近的k 个样本数据.图4给出了以上3个数据集对应的20-NN 网络的邻接矩阵,矩阵中的黑点表示“1”.如果将同簇节点排列在一起,网络簇则以“块”的形式分布在邻接矩阵的正对角线上.容易看出,相对于Image 而言,Iris 和Wine 具有更好的网络簇结构.

图5给出了实验结果,y -轴表示聚类精度.为消除参数k 对聚类精度的影响,对每个数据集,我们分别生成21

62 Journal of Software 软件学报 V ol.20, No.1, January 2009

个k NN 网络(从5-NN~25-NN),复杂网络聚类算法对每个数据集的聚类精度是对21个k NN 网络聚类准确率的平均值.

50

(a) Iris (b) Wine (c) Image

Fig.4 Adjacency matrices of the k NN networks of three datasets

图4 3个数据集对应k NN 网络的邻接矩阵

0 0.20.40.60.81

C l u s t e r i n g a c c u r a c y Image Iris Wine

Fig.5 Testing the clustering accuracy of different algorithms against real datasets

图5 使用真实数据库测试不同算法的聚类精度

由图5可知:(1) 与经典的空间聚类算法(k -means,c -means)相比,复杂网络聚类算法的聚类精度不差,部分算法(CPM,FEC,谱方法)还明显占优.这表明,复杂网络聚类算法不仅适合于处理社会网、生物网等关系型数据聚类问题,也能有效地解决传统的空间聚类问题;(2) 各种算法的聚类精度和数据集密切相关,对类簇结构好的数据集(Iris,Wine),聚类精度普遍偏高,而对于类簇结构较差的数据集(Image),聚类精度普遍偏低;(3) 对于具有较好类簇结构的Iris 数据集,GA 算法的聚类精度最低(不足60%),再次验证了Q 函数的有偏性,导致以优化Q 函数为目标的聚类方法对某些网络具有较低的聚类精度.

2.2 计算速度比较

计算速度是评价聚类算法性能的重要指标.第2.1节给出了不同复杂网络聚类算法在理论上的时间复杂性分析,本节从实验角度给出典型算法的实际运行时间,作为比较和评价各算法性能的重要依据.图6给出了6种典型算法的实际运行时间.该实验所采用的测试网络是随机网络RN (4,s ,16,0.7).该网络的类簇结构确定,但其规模可由s 值来调节,共包括4s 个网络节点,64s 条网络连接.图6中,y -轴表示以秒为单位的实际运行时间,x -轴表示网络规模(节点数+连接数).值得说明的是,GA 算法运行非常耗时,即使对规模为128个节点、8 192条连接的小型网络,其运行时间也在2小时以上,因此,其实际运行时间曲线没有显示在图6中.

由图6可得,启发式算法FEC 和CPM 具有最快的运行速度,其实际运行时间与网络规模呈近似线性关系,

杨博 等:复杂网络聚类方法

63 其次是两种谱方法、FN 算法,而GN 算法的速度较慢.

×104 0500

1000

1500 2000 2500

3000

Network scale (the number of nodes plus edges) A c t u a l r u n n i n g t i m e (s )

Fig.6 Actual running time of algorithms against networks with different scales

图6 不同规模网络下各算法的实际运行时间

结合图3、图5和图6,我们可以评价各种典型算法的综合性能.GA 算法对同构随机网络(网络簇规模和节点度近似相同)具有最好的聚类精度,但其计算速度非常缓慢,只适合处理规模很小的复杂网络;FEC,CPM 和两种谱方法(A-cut,N-cut)的聚类精度(针对随机网络和真实数据集)和运行效率都较高,具有很好的综合性能,适合处理中、大规模的复杂网络.

3 结 论

复杂网络聚类是最重要的复杂网络分析方法之一,应用广泛.本文主要从以下3个方面对现有工作进行了综述:(1) 根据所采用的基本求解策略将现有的复杂网络聚类方法分为两大类:基于优化的方法和启发式方法;(2) 从基本原理、关键技术和优缺点等方面对现有方法进行了分析和评价;(3) 采用基准数据集,从聚类精度和运行效率两方面定量分析和比较了典型方法的性能.通过以上几个方面的分析和总结,本文得出如下结论:尽管已经投入了大量的、艰苦的研究工作并取得诸多令人鼓舞的研究结果,但复杂网络聚类问题还远未被很好地解决,集中体现在以下几个方面:

第一,我们还没有从客观上认清网络簇结构的本质含义.目前我们还无法回答类似如下的基本问题:网络簇结构是怎么形成的?它与网络的其他复杂现象有什么必然联系?它与网络自身的哪些内在属性有关?因此,现阶段我们不得不通过观察有簇网络所展示出的“外在”现象去理解网络簇概念,借助“主观”定义的目标函数或启发式规则去刻画和计算网络簇结构.如前分析,基于这些目标函数或启发式规则的方法常常会导致“有偏”的计算结果(即计算出的网络簇结构与真实存在的网络簇结构不一致),并且采用不同的目标函数或启发式规则常常会计算出不同的网络簇结构.因此,一个基本问题是:从网络的“内在”属性出发,我们能否给出一种“客观”的理论模型去理解、刻画和计算复杂网络簇结构.

第二,现有的复杂网络聚类方法都具有局限性,不能同时满足计算速度快、聚类精度高和无监督(即不依赖先验知识、对参数不敏感)等基本要求.通过定性和定量的分析、比较现有的主要方法后可以发现,聚类精度高的方法往往具有很高的时间复杂性(高于O (n 2)),而快速的聚类方法往往以牺牲精度为代价,并且需要较多的参数和先验知识.另外,特别需要指出的是,如何在没有任何先验信息的情况下识别出真实的网络簇总数仍是一个未解决的难题.因此,如何设计出快速、高精度和无监督的复杂网络聚类方法仍是当前最期待解决的问题之一.

64 Journal of Software软件学报 V ol.20, No.1, January 2009

第三,除了以上未解决的理论问题之外,随着应用领域的拓展、网络聚类问题的多样化,现有的复杂网络聚类方法已难以胜任,需要针对特殊类型的复杂网络研究新型的复杂网络聚类方法,典型问题包括动态复杂网络聚类、高维复杂网络聚类和分布式复杂网络聚类等.动态复杂网络旨在分析随时间进化的网络结构和动力性,如通过“电子邮件流”或“通话记录流”逐步形成的社会通信网络,通过“论文流”逐步形成的科学家协作网络,自组织动态演化的WWW网络及发育动物体中逐步进化而成的蛋白质交互网络和基因调控网络都可以建模为动态网络.此外,基于自主计算(autonomy oriented computing,简称AOC)[56]的普式网络簇结构挖掘(distributed ubiquitous community mining)已成为该领域的一个研究热点.上述类型的复杂网络聚类方法具有广泛的应用领域,但相关理论和方法还远未成熟,因此,如何针对特殊类型的复杂网络设计出新型的复杂网络聚类方法也是当前面临的主要问题之一.

References:

[1] Watts DJ, Strogatz SH. Collective dynamics of Small-World networks. Nature, 1998,393(6638):440?442.

[2] Barabási AL, Albert R. Emergence of scaling in random networks. Science, 1999,286(5439):509?512.

[3] Barabási AL, Albert R, Jeong H, Bianconi G. Power-Law distribution of the World Wide Web. Science, 2000,287(5461):2115a.

[4] Albert R, Barabási AL, Jeong H. The Internet’s Achilles heel: Error and attack tolerance of complex networks. Nature, 2000,

406(2115):378?382.

[5] Girvan M, Newman MEJ. Community structure in social and biological networks. Proc. of the National Academy of Science,

2002,9(12):7821?7826.

[6] Guimera R, Amaral LAN. Functional cartography of complex metabolic networks. Nature, 2005,433(7028):895?900.

[7] Palla G, Derenyi I, Farkas I, Vicsek T. Uncovering the overlapping community structures of complex networks in nature and

society. Nature, 2005,435(7043):814?818.

[8] Wilkinson DM, Huberman BA. A method for finding communities of related genes. Proc. of the National Academy of Science,

2004,101(Suppl.1):5241?5248.

[9] Radicchi F, Castellano C, Cecconi F, Loreto V, Parisi D. Defining and identifying communities in networks. Proc. of the National

Academy of Science, 2004,101(9):2658?2663.

[10] Palla G, Barabási AL, Vicsek T. Quantifying social group evolution. Nature, 2007,446(7136):664?667.

[11] Newman MEJ. Coauthorship networks and patterns of scientific collaboration. Proc. of the National Academy of Science,

2004,101(1):5200?5205.

[12] Tyler JR, Wilkinson DM, Huberman BA. Email as spectroscopy: Automated discovery of community structure within organizations.

In: Huysman M, Wenger E, Wulf V, eds. Proc. of the 1st Int’l Conf. on Communities and Technologies. Dordrecht: Kluwer Academic Publishers, 2003. 81?96.

[13] Ravasz E, Somera AL, Mongru DA. Hierarchical organization of modularity in metabolic networks. Science, 2002,297(5586):

1551?1555.

[14] Wang Z, Zhang J. In serach of the biological significance of modular structures in protein networks. PLOS Computational Biology,

2007,3(6):e107.

[15] Spirin V, Mirny LA. Protein complexes and functional modules in molecular networks. Proc. of the National Academy of Science,

2003,100(21):12123?12128.

[16] Farutin V, Robison K, Lightcap E, Dancik V, Ruttenberg A, Letovsky S, Pradines J. Edge-Count probabilities for the identification

of local protein communities and their organization. Proteins: Structure, Function, and Bioinformatics, 2006,62(3):800?818.

[17] Flake GW, Lawrence S, Giles CL, Coetzee FM. Self-Organization and identification of Web communities. IEEE Computer,

2002,35(3):66?71.

[18] Li X, Liu B, Yu PS. Discovering overlapping communities of named entities. In: Fürnkranz J, Scheffer T, Spiliopoulou M, eds.

Proc. of the 10th European Conf. on Principles and Practice of Knowledge Discovery in Databases. Berlin: Springer-Verlag, 2006.

593?600.

杨博等:复杂网络聚类方法65

[19] Ino H, Kudo M, Nakamura A. Partitioning of Web graphs by community topology. In: Ellis A, Hagino T, eds. Proc. of the 14th

Int’l Conf. on World Wide Web. New York: ACM Press, 2005. 661?669.

[20] Kleinberg JM. Authoritative sources in a hyperlinked environment. Journal of the ACM, 1999,46(5):604?632.

[21] Almeida RB, Almeida VAF. A community-aware search engine. In: Feldman SI, Uretsky M, Najork M, Wills CE, eds. Proc. of the

13th Int’l Conf. on World Wide Web. New York: ACM Press, 2004. 413?421.

[22] Sidiropoulos A, Pallis G, Katsaros D, Stamos K, Vakali A, Manolopoulos Y. Prefetching in content distribution networks via Web

communities identification and outsourcing. World Wide Web, 2008,11(1):39?70.

[23] Newman MEJ. Modularity and communities structure in networks. Proc. of the National Academy of Science, 2006,103(23):

8577?8582.

[24] Fortunato S, Barthelemy M. Resolution limit in community detection. Proc. of the National Academy of Science, 2007,104(1):

36?41.

[25] Hopcroft J, Khan O, Kulis B, Selman B. Tracking evolving communities in large linked networks. Proc. of the National Academy

of Science, 2004,101(1):5249?5253.

[26] Reichardt J, Bornholdt S. Detecting fuzzy community structures in complex networks with a potts model. Physical Review Letters,

2004,93(19):218701.

[27] Garlaschelli D, Loffredo MI. Patterns of link reciprocity in directed networks. Physical Review Letters, 2004,93(26):268701.

[28] Yang B, Cheung WK, Liu J. Community mining from signed social networks. IEEE Trans. on Knowledge and Data Engineering,

2007,19(10):1333?1348.

[29] Brandes U, Delling D, Gaertler M, G?rke R, Hoefer M, Nikoloski Z, Wagner D. On modularity clustering. IEEE Trans. on

Knowledge and Data Engineering, 2008,20(2):172?188.

[30] Cartozo CC, Rios PDL, Piazza F, Lio P. Bottleneck genes and community structure in the cell cycle network of S.pombe. PLOS

Computational Biology, 2007,3(6):e103.

[31] Shiga M, Takigawa I, Mamitsuka H. A spectral clustering approach to optimally combining numerical vectors with a modular

network. In: Berkhin P, Caruana R, Wu X, eds. Proc. of the 13th ACM SIGKDD Int’l Conf. on Knowledge Discovery and Data Mining. New York: ACM Press, 2007. 647?656.

[32] Zhou D, Councill I, Zha H, Giles CL. Discovering temporal communities from social network documents. In: Shi Y, Clifton CW,

eds. Proc. of the 7th IEEE Int’l Conf. on Data Mining. New York: IEEE Society, 2007. 745?750.

[33] White S, Smyth P. A spectral clustering approach to finding communities in graphs. In: Kamath C, Goodman A, eds. Proc. of the

5th SIAM Int’l Conf. on Data Mining. Philadelphia: SIAM, 2005. 76?84.

[34] Donetti L, Munoz MA. Improved spectral algorithm for the detection of network communities. In: Garrido PL, Mu?oz MA, Marro J,

eds. Proc. of the 8th Int’l Conf. on Modeling Cooperative Behavior in the Social Sciences. New York: American Institute of Physics, 2005,779:104?107.

[35] Fiedler M. Algebraic connectivity of graphs. Czechoslovakian Mathematical Journal, 1973,23(2):298?305.

[36] Fiedler M. A property of eigenvectors of nonnegative symmetric matrices and its application to graph theory. Czechoslovakian

Mathematical Journal, 1975,25(4):619?637.

[37] Wei YC, Cheng CK. Ratio cut partitioning for hierarchical designs. IEEE Trans. on Computer-Aided Design, 1991,10(7):911?921.

[38] Hagen L, Kahng AB. New spectral methods for ratio cut partition and clustering. IEEE Trans. on Computer-Aided Design, 1992,

11(9):1074?1085.

[39] Shi J, Malik J. Normalized cuts and image segmentation. IEEE Trans. on Pattern Analysis and Machine Intelligent, 2000,22(8):

888?904.

[40] Garey MR, Johnson DS. Computers and Intractability: A Guide to the Theory of NP-Completeness. New York: W.H. Freeman&Co.,

1990. 60?63.

[41] Golub GH, Loan CFV. Matrix Computations. Baltimore: Johns Hopkins University Press, 1989.

[42] Newman MEJ. Detecting community structure in networks. European Physical Journal (B), 2004,38(2):321?330.

[43] Newman MEJ. Fast algorithm for detecting community structure in networks. Physical Review E, 2004,69(6):066133.

[44] Newman MEJ, Girvan M. Finding and evaluating community structure in networks. Physical Review E, 2004,69(2):026113.

66 Journal of Software软件学报 V ol.20, No.1, January 2009

[45] Pujol JM, Béjar J, Delgado J. Clustering algorithm for determining community structure in large networks. Physical Review E,

2006,74(1):016107.

[46] Duch J, Arenas A. Community detection in complex networks using extreme optimization. Physical Review E, 2005,72(2):027104.

[47] Zachary WW. An information flow model for conflict and fission in small groups. Journal of Anthropological Research, 1977,

33(4):452?473.

[48] Guimera R, Sales M, Amaral LAN. Modularity from fluctuations in random graphs and complex networks. Physical Review E,

2004,70(2):025101.

[49] Wu F, Huberman BA. Finding communities in linear time. A physics approach. European Physical Journal B, 2004,38(2):331?338.

[50] Goldberg AV. Recent developments in maximum flow algorithms. In: Arnborg S, Ivansson L, eds. Proc. of the 6th Scandinavian

Workshop on Algorithm Theory. Berlin: Springer-Verlag, 1998. 1?10.

[51] Wasserman S, Faust K. Social Network Analysis. Cambridge: Cambridge University Press, 1994.

[52] Pons P, Latapy M. Computing communities in large networks using random walks. In: Yolum P, ed. Proc. of the 20th Int’l Symp.

on Computer and Information Sciences. Berlin: Springer-Verlag, 2005. 284?293.

[53] Yang B, Liu J. Discovering global network communities based on local centralities. ACM Trans. on the Web, 2008,2(1):article

9:1?32.

[54] Hall KM. An r-dimensional quadratic placement algorithm. Management Science, 1970,17(3):219?229.

[55] Donetti L, Munoz MA. Detecting network communities: A new systematic and efficient algorithm. Journal of Statistical Mechanics:

Theory and Experiment, 2004,10:P10012. https://www.360docs.net/doc/d88433737.html,/EJ/abstract/1742-5468/2004/10/P10012

[56] Liu J, Jin XL, Tsui KC. Autonomy Oriented Computing-From Problem Solving to Complex Systems Modeling. Boston: Kluwer

Academic Publishers, 2004.

杨博(1974-),男,河南新乡人,博士,副教授,主要研究领域为Agent系统,数据挖掘,复杂网络分析.

金弟(1982-),男,博士生,主要研究领域为数据挖掘

.

刘大有(1942-),男,教授,博士生导师,CCF

高级会员,主要研究领域为知识工程与专

家系统,Agent系统,时空推理.

马海宾(1984-),男,硕士生,主要研究领域

为数据挖掘.

LIU Jiming(1962-),男,博士,教授,博士

生导师,主要研究领域为Agent系统,自主

计算,Web智能.

PNN神经网络聚类法模式分类思想

目录 摘要 (1) 1概率神经网络 (1) 1.1网络模型 (1) 1.2分类思想 (2) 1.3 PNN分类的优点 (3) 2 PNN网络的构建 (3) 2.1 构建步骤 (3) 2.2 Matlab中的主要代码 (4) 3 Matlab编程及结果分析 (4) 3.1 Matlab中的编程 (4) 3.2 仿真结果分析 (7) 3.3 结论 (10) 4 总结 (11) 参考文献 (12)

PNN神经网络聚类法 摘要 近几年来,对于神经网络的研究越来越普遍,神经网络在我们社会生活中的作用也越来越不可替代,尤其在模式识别的领域里,更是有着举足轻重的作用。 酒是由多种成分按不同的比例构成的,兑酒时需要三种原料(X,Y,Z),现在已测出不同酒中三种原料的含量,本文正是基于PNN神经网络针对酒中X、Y、Z三种含量的不同来对酒进行识别分类。本文首先介绍了PNN神经网络的网络模型以及它对不同的模式进行分类判别的思想,然后针对本文的酒类判别的要求来构建PNN网络,并在Matlab中进行编程仿真,最后对所仿真的结果进行了分析比较,最后找出最优的模式分类。 1概率神经网络 概率神经网络(Probabilistic Neural Networks,PNN)是由D. F. Specht在1990年提出的。主要思想是用贝叶斯决策规则,即错误分类的期望风险最小,在多维输入空间内分离决策空间。它是一种基于统计原理的人工神经网络,它是以Parzen 窗口函数为激活函数的一种前馈网络模型。PNN吸收了径向基神经网络与经典的概率密度估计原理的优点,与传统的前馈神经网络相比,在模式分类方面尤其具有较为显著的优势。 1.1网络模型 PNN的结构如图1所示,共由四层组成。 图1 概率神经网络结构

复杂网络的基础知识

第二章复杂网络的基础知识 2.1 网络的概念 所谓“网络”(networks),实际上就是节点(node)和连边(edge)的集合。如果节点对(i,j)与(j,i)对应为同一条边,那么该网络为无向网络(undirected networks),否则为有向网络(directed networks)。如果给每条边都赋予相应的权值,那么该网络就为加权网络(weighted networks),否则为无权网络(unweighted networks),如图2-1所示。 图2-1 网络类型示例 (a) 无权无向网络(b) 加权网络(c) 无权有向网络 如果节点按照确定的规则连边,所得到的网络就称为“规则网络”(regular networks),如图2-2所示。如果节点按照完全随机的方式连边,所得到的网络就称为“随机网络”(random networks)。如果节点按照某种(自)组织原则的方式连边,将演化成各种不同的网络,称为“复杂网络”(complex networks)。 图2-2 规则网络示例 (a) 一维有限规则网络(b) 二维无限规则网络

2.2 复杂网络的基本特征量 描述复杂网络的基本特征量主要有:平均路径长度(average path length )、簇系数(clustering efficient )、度分布(degree distribution )、介数(betweenness )等,下面介绍它们的定义。 2.2.1 平均路径长度(average path length ) 定义网络中任何两个节点i 和j 之间的距离l ij 为从其中一个节点出发到达另一个节点所要经过的连边的最少数目。定义网络的直径(diameter )为网络中任意两个节点之间距离的最大值。即 }{max ,ij j i l D = (2-1) 定义网络的平均路径长度L 为网络中所有节点对之间距离的平均值。即 ∑∑-=+=-=111)1(2N i N i j ij l N N L (2-2) 其中N 为网络节点数,不考虑节点自身的距离。网络的平均路径长度L 又称为特征路径长度(characteristic path length )。 网络的平均路径长度L 和直径D 主要用来衡量网络的传输效率。 2.2.2 簇系数(clustering efficient ) 假设网络中的一个节点i 有k i 条边将它与其它节点相连,这k i 个节点称为节点i 的邻居节点,在这k i 个邻居节点之间最多可能有k i (k i -1)/2条边。节点i 的k i 个邻居节点之间实际存在的边数N i 和最多可能有的边数k i (k i -1)/2之比就定义为节点i 的簇系数,记为C i 。即 ) 1(2-=i i i i k k N C (2-3) 整个网络的聚类系数定义为网络中所有节点i 的聚类系数C i 的平均值,记

聚类分析K-means算法综述

聚类分析K-means算法综述 摘要:介绍K-means聚类算法的概念,初步了解算法的基本步骤,通过对算法缺点的分析,对算法已有的优化方法进行简单分析,以及对算法的应用领域、算法未来的研究方向及应用发展趋势作恰当的介绍。 关键词:K-means聚类算法基本步骤优化方法应用领域研究方向应用发展趋势 算法概述 K-means聚类算法是一种基于质心的划分方法,输入聚类个数k,以及包含n个数据对象的数据库,输出满足方差最小标准的k个聚类。 评定标准:同一聚类中的对象相似度较高;而不同聚类中的对象相似度较小。聚类相似度是利用各聚类中对象的均值所获得一个“中心对象”(引力中心)来进行计算。 解释:基于质心的划分方法就是将簇中的所有对象的平均值看做簇的质心,然后根据一个数据对象与簇质心的距离,再将该对象赋予最近的簇。 k-means 算法基本步骤 (1)从n个数据对象任意选择k 个对象作为初始聚类中心 (2)根据每个聚类对象的均值(中心对象),计算每个对象与这些中心对象的距离;并根据最小距离重新对相应对象进行划分 (3)重新计算每个(有变化)聚类的均值(中心对象) (4)计算标准测度函数,当满足一定条件,如函数收敛时,则算法终止;如果条件不满足则回到步骤(2) 形式化描述 输入:数据集D,划分簇的个数k 输出:k个簇的集合 (1)从数据集D中任意选择k个对象作为初始簇的中心; (2)Repeat (3)For数据集D中每个对象P do (4)计算对象P到k个簇中心的距离 (5)将对象P指派到与其最近(距离最短)的簇;

(6)End For (7)计算每个簇中对象的均值,作为新的簇的中心; (8)Until k个簇的簇中心不再发生变化 对算法已有优化方法的分析 (1)K-means算法中聚类个数K需要预先给定 这个K值的选定是非常难以估计的,很多时候,我们事先并不知道给定的数据集应该分成多少个类别才最合适,这也是K一means算法的一个不足"有的算法是通过类的自动合并和分裂得到较为合理的类型数目k,例如Is0DAIA算法"关于K一means算法中聚类数目K 值的确定,在文献中,根据了方差分析理论,应用混合F统计量来确定最佳分类数,并应用了模糊划分嫡来验证最佳分类数的正确性。在文献中,使用了一种结合全协方差矩阵RPCL算法,并逐步删除那些只包含少量训练数据的类。文献中针对“聚类的有效性问题”提出武汉理工大学硕士学位论文了一种新的有效性指标:V(k km) = Intra(k) + Inter(k) / Inter(k max),其中k max是可聚类的最大数目,目的是选择最佳聚类个数使得有效性指标达到最小。文献中使用的是一种称为次胜者受罚的竞争学习规则来自动决定类的适当数目"它的思想是:对每个输入而言不仅竞争获胜单元的权值被修正以适应输入值,而且对次胜单元采用惩罚的方法使之远离输入值。 (2)算法对初始值的选取依赖性极大以及算法常陷入局部极小解 不同的初始值,结果往往不同。K-means算法首先随机地选取k个点作为初始聚类种子,再利用迭代的重定位技术直到算法收敛。因此,初值的不同可能导致算法聚类效果的不稳定,并且,K-means算法常采用误差平方和准则函数作为聚类准则函数(目标函数)。目标函数往往存在很多个局部极小值,只有一个属于全局最小,由于算法每次开始选取的初始聚类中心落入非凸函数曲面的“位置”往往偏离全局最优解的搜索范围,因此通过迭代运算,目标函数常常达到局部最小,得不到全局最小。对于这个问题的解决,许多算法采用遗传算法(GA),例如文献中采用遗传算法GA进行初始化,以内部聚类准则作为评价指标。 (3)从K-means算法框架可以看出,该算法需要不断地进行样本分类调整,不断地计算调整后的新的聚类中心,因此当数据量非常大时,算法的时间开销是非常大 所以需要对算法的时间复杂度进行分析,改进提高算法应用范围。在文献中从该算法的时间复杂度进行分析考虑,通过一定的相似性准则来去掉聚类中心的候选集,而在文献中,使用的K-meanS算法是对样本数据进行聚类。无论是初始点的选择还是一次迭代完成时对数据的调整,都是建立在随机选取的样本数据的基础之上,这样可以提高算法的收敛速度。

复杂网络聚类系数和平均路径长度计算的MATLAB源代码

复杂网络聚类系数和平均路径长度计算的 MA TLAB 源代码 申明:文章来自百度用户 carrot_hy 复杂网络的代码总共是三个m文件,复制如下: 第一个文件, CCM_ClusteringCoef.m function [Cp_Global, Cp_Nodal] = CCM_ClusteringCoef(gMatrix, Types) % CCM_ClusteringCoef calculates clustering coefficients. % Input: % gMatrix adjacency matrix % Types type of graph: 'binary','weighted','directed','all'(default). % Usage: % [Cp_Global, Cp_Nodal] = CCM_ClusteringCoef(gMatrix, Types) returns % clustering coefficients for all nodes "Cp_Nodal" and average clustering % coefficient of network "Cp_Global". % Example: % G = CCM_TestGraph1('nograph'); % [Cp_Global, Cp_Nodal] = CCM_ClusteringCoef(G); % Note: % 1) one node have vaule 0, while which only has a neighbour or none. % 2) The dircted network termed triplets that fulfill the follow condition % as non-vacuous: j->i->k and k->i-j,if don't satisfy with that as % vacuous, just like: j->i,k->i and i->j,i->k. and the closed triplets % only j->i->k == j->k and k->i->j == k->j. % 3) 'ALL' type network code from Mika Rubinov's BCT toolkit. % Refer: % [1] Barrat et al. (2004) The architecture of the complex weighted networks. % [2] Wasserman,S.,Faust,K.(1994) Social Network Analysis: Methods and % Applications. % [3] Tore Opsahl and Pietro Panzarasa (2009). "Clustering in Weighted % Networks". Social Networks31(2). % See also CCM_Transitivity % Written by Yong Liu, Oct,2007 % Center for Computational Medicine (CCM), % National Laboratory of Pattern Recognition (NLPR), % Institute of Automation,Chinese Academy of Sciences (IACAS), China. % Revise by Hu Yong, Nov, 2010 % E-mail:

人工神经网络在聚类分析中的运用

摘要:本文采用无导师监督的som网络,对全国31个省市自治区的人民生活质量进行了综合评价,在没有先验信息的条件下,不采用人为主观赋予各指标权重的办法,转而运用自组织神经网络自组织竞争学习的网络方法来进行赋值、计算和评价,消除了主观确定各指标的权重的主观性,得到的结果较为符合各省市自治区的实际结果。 关键词:聚类分析;k-means聚类;系统聚类;自组织神经网络;人民生活质量 一、引言(研究现状) 自改革开放以来,我国生产力极大发展,生活水平总体上得到了提高。但是,地区间的发展不平衡始终存在,而且差距越来越大,不同地区人民的生活水平也存在显著的差异。据此,我们利用自组织人工神经网络方法对全国31个省市自治区的人民生活水平质量进行分析评价。 二、指标选取与预处理 1.指标选取 遵循合理性、全面性、可操作性、可比性的原则,从以下5个层面共11个二级指标构建了人民生活质量综合评价指标体系(如下表所示)。 人民生活质量综合评价指标体系 2.指标预处理 (1)正向指标是指标数据越大,则评价也高,如人均可支配收入,人均公园等。 正向指标的处理规则如下(1): kohonen 自组织神经网络 输入层是一个一维序列,该序列有n个元素,对应于样本向量的维度;竞争层又称为输出层,该层是由m′n=h个神经元组成的二维平面阵列其神经元的个数对应于输出样本空间的维数,可以使一维或者二维点阵。 竞争层之间的神经元与输入层之间的神经元是全连接的,在输入层神经元之间没有权连接,在竞争层的神经元之间有局部的权连接,表明竞争层神经元之间的侧反馈作用。训练之后的竞争层神经元代表者不同的分类样本。 自组织特征映射神经网络的目标:从样本的数据中找出数据所具有的特征,达到能够自动对样本进行分类的目的。 2.网络反馈算法 自组织网络的学习过程可分为以下两步: (1)神经元竞争学习过程 对于每一个样本向量,该向量会与和它相连的竞争层中的神经元的连接权进行竞争比较(相似性的比较),这就是神经元竞争的过程。相似性程度最大的神经元就被称为获胜神经元,将获胜神经元称为该样本在竞争层的像,相同的样本具有相同的像。 (2)侧反馈过程 竞争层中竞争获胜的神经元会对周围的神经元产生侧反馈作用,其侧反馈机制遵循以下原则:以获胜神经元为中心,对临近邻域的神经元表现为兴奋性侧反馈。以获胜神经元为中心,对邻域外的神经元表现为抑制性侧反馈。 对于竞争获胜的那个神经元j,其邻域内的神经元在不同程度程度上得到兴奋的侧反馈,而在nj(t)外的神经元都得到了抑制的侧反馈。nj(t)是时间t的函数,随着时间的增加,nj(t)围城的面积越来越小,最后只剩下一个神经元,而这个神经元,则反映着一个类的特征或者一个类的属性。 3.评价流程 (1)对n个输入层输入神经元到竞争层输出神经元j的连接权值为(6)式:

基于聚类的图像分割方法综述

信息疼术2018年第6期文章编号=1009 -2552 (2018)06 -0092 -03 DOI:10.13274/https://www.360docs.net/doc/d88433737.html,ki.hdzj.2018. 06.019 基于聚类的图像分割方法综述 赵祥宇\陈沫涵2 (1.上海理工大学光电信息与计算机学院,上海200093; 2.上海西南位育中学,上海200093) 摘要:图像分割是图像识别和机器视觉领域中关键的预处理操作。分割理论算法众多,文中 具体介绍基于聚类的分割算法的思想和原理,并将包含的典型算法的优缺点进行介绍和分析。经过比较后,归纳了在具体应用中如何对图像分割算法的抉择问题。近年来传统分割算法不断 被科研工作者优化和组合,相信会有更多的分割新算法井喷而出。 关键词:聚类算法;图像分割;分类 中图分类号:TP391.41 文献标识码:A A survey of image segmentation based on clustering ZHAO Xiang-yu1,CHEN Mo-han2 (1.School of Optical Electrical and Computer Engineering,University of Shanghai for Science and Technology,Shanghai200093,China;2.Shanghai Southwest Weiyu Middle School,Shanghai200093,China) Abstract:Image segmentation is a key preprocessing operation in image recognition and machine vision. There are many existing theoretical methods,and this paper introduces the working principle ol image segmentation algorithm based on clustering.Firstly,the advantages and disadvantages ol several typical algorithms are introduced and analyzed.Alter comparison,the paper summarizes the problem ol the selection ol image segmentation algorithm in practical work.In recent years,the traditional segmentation algorithms were improved and combined by the researchers,it believes that more new algorithms are blown out. Key words:clustering algorithm;image segmentation;classilication 0引百 近年来科学技术的不断发展,计算机视觉和图像 识别发挥着至关重要的作用。在实际应用和科学研 究中图像处理必不可少,进行图像处理必然用到图像 分割方法,根据检测图像中像素不重叠子区域,将感 兴趣目标区域分离出来。传统的图像分割方法:阈值 法[1]、区域法[2]、边缘法[3]等。近年来传统分割算法 不断被研究人员改进和结合,出现了基于超像素的分 割方法[4],本文主要介绍超像素方法中基于聚类的经 典方法,如Mean Shift算法、K-m eans 算法、Fuzzy C-mean算法、Medoidshilt算法、Turbopixels算法和 SLIC 算法。简要分析各算法的基本思想和分割效果。 1聚类算法 1.1 Mean Shil't算法 1975年,Fukunaga[5]提出一种快速统计迭代算法,即Mean Shilt算法(均值漂移算法)。直到1995 年,Cheng[6]对其进行改进,定义了核函数和权值系 数,在全局优化和聚类等方面的应用,扩大了 Mean shil't算法适用范围。1997至2003年间,Co-maniciu[7-9]提出了基于核密度梯度估计的迭代式 搜索算法,并将该方法应用在图像平滑、分割和视频 跟踪等领域。均值漂移算法的基本思想是通过反复 迭代计算当前点的偏移均值,并挪动被计算点,经过 反复迭代计算和多次挪动,循环判断是否满足条件, 达到后则终止迭代过程[10]。Mean shil't的基本形 式为: 收稿日期:2017-06 -13 基金项目:国家自然科学基金资助项目(81101116) 作者简介:赵祥宇(1992-),男,硕士研究生,研究方向为数字图像处理。 —92 —

度,聚类系数,平均路径长度程序

function [DeD,aver_DeD]=Degree_Distribution(A) %% 求网络图中各节点的度及度的分布曲线 %% 求解算法:求解每个节点的度,再按发生频率即为概率,求P(k) %A————————网络图的邻接矩阵 %DeD————————网络图各节点的度分布 %aver_DeD———————网络图的平均度 N=size(A,2); DeD=zeros(1,N); for i=1:N % DeD(i)=length(find((A(i,:)==1))); DeD(i)=sum(A(i,:)); end aver_DeD=mean(DeD); if sum(DeD)==0 disp('该网络图只是由一些孤立点组成'); return; else figure; bar([1:N],DeD); xlabel('节点编号n'); ylabel('各节点的度数K'); title('网络图中各节点的度的大小分布图'); end figure; M=max(DeD); for i=1:M+1; %网络图中节点的度数最大为M,但要同时考虑到度为0的节点的存在性N_DeD(i)=length(find(DeD==i-1)); end P_DeD=zeros(1,M+1); P_DeD(:)=N_DeD(:)./sum(N_DeD); bar([0:M],P_DeD,'r'); xlabel('节点的度K'); ylabel('节点度为K的概率P(K)'); title('网络图中节点度的概率分布图'); function [C,aver_C]=Clustering_Coefficient(A) %% 求网络图中各节点的聚类系数及整个网络的聚类系数 %% 求解算法:求解每个节点的聚类系数,找某节点的所有邻居,这些邻居节点构成一个子图 %% 从A中抽出该子图的邻接矩阵,计算子图的边数,再根据聚类系数的定义,即可算出该节点的聚类系数

复杂网络聚类系数和平均路径长度计算的MATLAB源代码上课讲义

复杂网络聚类系数和平均路径长度计算的M A T L A B源代码

复杂网络聚类系数和平均路径长度计算的MATLAB源代码 申明:文章来自百度用户carrot_hy 复杂网络的代码总共是三个m文件,复制如下: 第一个文件,CCM_ClusteringCoef.m function [Cp_Global, Cp_Nodal] = CCM_ClusteringCoef(gMatrix, Types) % CCM_ClusteringCoef calculates clustering coefficients. % Input: % gMatrix adjacency matrix % Types type of graph: 'binary','weighted','directed','all'(default). % Usage: % [Cp_Global, Cp_Nodal] = CCM_ClusteringCoef(gMatrix, Types) returns % clustering coefficients for all nodes "Cp_Nodal" and average clustering % coefficient of network "Cp_Global". % Example: % G = CCM_TestGraph1('nograph'); % [Cp_Global, Cp_Nodal] = CCM_ClusteringCoef(G); % Note: % 1) one node have vaule 0, while which only has a neighbour or none. % 2) The dircted network termed triplets that fulfill the follow condition % as non-vacuous: j->i->k and k->i-j,if don't satisfy with that as % vacuous, just like: j->i,k->i and i->j,i->k. and the closed triplets % only j->i->k == j->k and k->i->j == k->j.

复杂网络聚类系数和平均路径长度计算的MATLAB源代码(知识浅析)

复杂网络聚类系数和平均路径长度计算的MA TLAB源代码 申明:文章来自百度用户carrot_hy 复杂网络的代码总共是三个m文件,复制如下: 第一个文件,CCM_ClusteringCoef.m function [Cp_Global, Cp_Nodal] = CCM_ClusteringCoef(gMatrix, Types) % CCM_ClusteringCoef calculates clustering coefficients. % Input: % gMatrix adjacency matrix % Types type of graph: 'binary','weighted','directed','all'(default). % Usage: % [Cp_Global, Cp_Nodal] = CCM_ClusteringCoef(gMatrix, Types) returns % clustering coefficients for all nodes "Cp_Nodal" and average clustering % coefficient of network "Cp_Global". % Example: % G = CCM_TestGraph1('nograph'); % [Cp_Global, Cp_Nodal] = CCM_ClusteringCoef(G); % Note: % 1) one node have vaule 0, while which only has a neighbour or none. % 2) The dircted network termed triplets that fulfill the follow condition % as non-vacuous: j->i->k and k->i-j,if don't satisfy with that as % vacuous, just like: j->i,k->i and i->j,i->k. and the closed triplets % only j->i->k == j->k and k->i->j == k->j. % 3) 'ALL' type network code from Mika Rubinov's BCT toolkit. % Refer: % [1] Barrat et al. (2004) The architecture of the complex weighted networks. % [2] Wasserman,S.,Faust,K.(1994) Social Network Analysis: Methods and % Applications. % [3] Tore Opsahl and Pietro Panzarasa (2009). "Clustering in Weighted % Networks". Social Networks31(2). % See also CCM_Transitivity % Written by Yong Liu, Oct,2007 % Center for Computational Medicine (CCM), % National Laboratory of Pattern Recognition (NLPR), % Institute of Automation,Chinese Academy of Sciences (IACAS), China. % Revise by Hu Yong, Nov, 2010 % E-mail: % based on Matlab 2006a % $Revision: 1.0, Copywrite (c) 2007

聚类与网络__总结

1、什么是聚类(clustering)? ●一种将具有相似性(similarity)的数据样本组合在一起的方法---根据选择的某种准则●一种非监督性学习(unsupervised learning)方法---通常并没有例子阐明如何让将数据 聚集在一起 ●一种数据探索(data exploration)的方法---在感兴趣的数据中寻找模式或结构的方法 2、聚类中关键的一步---选择(非)相似性度量值((dis)similarity measures),通常比聚类算法更重要 ——欧氏距离(Euclidean distance) ——Pearson相关系数(Pearson Linear Correlation) 3、聚类算法——凝聚层次聚类(Hierarchical agglomerative clustering) ——K-means聚类(K-means clustering)和品质衡量 补充:聚类算法有两类:hierarchical和partitioning methods,其中partitioning methods包括self-organizing maps (SOP)和K-means 4、欧氏距离:n是数据向量的维数,例如 ——样本中时间点/状态的数量(聚类基因的时候) ——基因的数量(聚类样本的时候) 5、相关性:我们常常更关注表达谱的形状而不是实际量级差异,也就是说我们常常认为同时上调或下调的基因是相似的。 补充:在理想情况下,表达谱中数据中的距离度量应该能够和表达差异的生理学相关性成正比。几乎可以肯定的是,不同系统的敏感性会有很复杂的波动,这些波动不仅可能由基因或者蛋白质的不同造成,也可能由某种状态的相对表达水平的不同所造成,还可能由系统本身所处的状态造成。 6、Pearson相关系数:我们将表达谱降低(减去平均值)并通过标准差缩放比例(如使数据平均值为0,标准差为1)。 Pearson linear correlation (PLC)是形状(”shape”)相似性的度量

数据挖掘中的聚类算法综述

收稿日期:2006201204;修返日期:2006203219基金项目:国家自然科学基金资助项目(60473117) 数据挖掘中的聚类算法综述 3 贺 玲,吴玲达,蔡益朝 (国防科学技术大学信息系统与管理学院,湖南长沙410073) 摘 要:聚类是数据挖掘中用来发现数据分布和隐含模式的一项重要技术。全面总结了数据挖掘中聚类算法的研究现状,分析比较了它们的性能差异和各自存在的优点及问题,并结合多媒体领域的应用需求指出了其今后的发展趋势。 关键词:数据挖掘;聚类;聚类算法 中图法分类号:TP391 文献标识码:A 文章编号:100123695(2007)0120010204 Survey of Clustering A lgorith m s in Data M ining HE L ing,WU L ing 2da,CA I Yi 2chao (College of Infor m ation Syste m &M anage m ent,N ational U niversity of D efense Technology,Changsha Hunan 410073,China ) Abstract:Clustering is an i m portant technique in Data M ining (DM )f or the discovery of data distributi on and latent data pattern .This paper p r ovides a detailed survey of current clustering algorith m s in DM at first,then it makes a comparis on a mong the m,illustrates the merits existing in the m,and identifies the p r oblem s t o be s olved and the ne w directi ons in the fu 2ture according t o the app licati on require ments in multi m edia domain .Key works:Data M ining;Clustering;Clustering A lgorith m 1 引言 随着信息技术和计算机技术的迅猛发展,人们面临着越来越多的文本、图像、视频以及音频数据,为帮助用户从这些大量数据中分析出其间所蕴涵的有价值的知识,数据挖掘(Data M ining,DM )技术应运而生。所谓数据挖掘,就是从大量无序 的数据中发现隐含的、有效的、有价值的、可理解的模式,进而发现有用的知识,并得出时间的趋向和关联,为用户提供问题求解层次的决策支持能力。与此同时,聚类作为数据挖掘的主要方法之一,也越来越引起人们的关注。 本文比较了数据挖掘中现有聚类算法的性能,分析了它们各自的优缺点并指出了其今后的发展趋势。 2 DM 中现有的聚类算法 聚类是一种常见的数据分析工具,其目的是把大量数据点的集合分成若干类,使得每个类中的数据之间最大程度地相似,而不同类中的数据最大程度地不同。在多媒体信息检索及数据挖掘的过程中,聚类处理对于建立高效的数据库索引、实现快速准确的信息检索具有重要的理论和现实意义。 本文以聚类算法所采用的基本思想为依据将它们分为五类,即层次聚类算法、分割聚类算法、基于约束的聚类算法、机器学习中的聚类算法以及用于高维数据的聚类算法,如图1所示。 聚类 层次聚类算法 聚合聚类:Single 2L ink,Comp lete 2L ink,Average 2L ink 分解聚类 分割聚类算法基于密度的聚类基于网格的聚类 基于图论的聚类 基于平方误差的迭代重分配聚类:概率聚类、最近邻 聚类、K 2medoids 、K 2means 基于约束的聚类算法 机器学习中的聚类算法 人工神经网络方法 基于进化理论的方法:模拟退火、遗传算法用于高维数据的聚类算法 子空间聚类 联合聚类 图1 聚类算法分类示意图 211 层次聚类算法 层次聚类算法通过将数据组织成若干组并形成一个相应的树状图来进行聚类,它又可以分为两类,即自底向上的聚合层次聚类和自顶向下的分解层次聚类。聚合聚类的策略是先将每个对象各自作为一个原子聚类,然后对这些原子聚类逐层进行聚合,直至满足一定的终止条件;后者则与前者相反,它先将所有的对象都看成一个聚类,然后将其不断分解直至满足终止条件。 对于聚合聚类算法来讲,根据度量两个子类的相似度时所依据的距离不同,又可将其分为基于Single 2L ink,Comp lete 2L ink 和Average 2L ink 的聚合聚类。Single 2L ink 在这三者中应用最为广泛,它根据两个聚类中相隔最近的两个点之间的距离来评价这两个类之间的相似程度,而后两者则分别依据两类中数据点之间的最远距离和平均距离来进行相似度评价。 CURE,ROCK 和CHAME LE ON 算法是聚合聚类中最具代 表性的三个方法。 Guha 等人在1998年提出了C URE 算法 [1] 。该方法不用 单个中心或对象来代表一个聚类,而是选择数据空间中固定数目的、具有代表性的一些点共同来代表相应的类,这样就可以

复杂网络聚类系数和平均路径长度计算的MATLAB源代码

复杂网络聚类系数和平均路径长度计算的MATLAB源代码 申明:文章来自百度用户carrot_hy 复杂网络的代码总共是三个m文件,复制如下: 第一个文件,CCM_ClusteringCoef.m function [Cp_Global, Cp_Nodal] = CCM_ClusteringCoef(gMatrix, Types) % CCM_ClusteringCoef calculates clustering coefficients. % Input: % gMatrix adjacency matrix % Types type of graph: 'binary','weighted','directed','all'(default). % Usage: % [Cp_Global, Cp_Nodal] = CCM_ClusteringCoef(gMatrix, Types) returns % clustering coefficients for all nodes "Cp_Nodal" and average clustering % coefficient of network "Cp_Global". % Example: % G = CCM_TestGraph1('nograph'); % [Cp_Global, Cp_Nodal] = CCM_ClusteringCoef(G); % Note: % 1) one node have vaule 0, while which only has a neighbour or none. % 2) The dircted network termed triplets that fulfill the follow condition % as non-vacuous: j->i->k and k->i-j,if don't satisfy with that as % vacuous, just like: j->i,k->i and i->j,i->k. and the closed triplets % only j->i->k == j->k and k->i->j == k->j. % 3) 'ALL' type network code from Mika Rubinov's BCT toolkit. % Refer: % [1] Barrat et al. (2004) The architecture of the complex weighted networks. % [2] Wasserman,S.,Faust,K.(1994) Social Network Analysis: Methods and % Applications. % [3] Tore Opsahl and Pietro Panzarasa (2009). "Clustering in Weighted % Networks". Social Networks31(2). % See also CCM_Transitivity % Written by Yong Liu, Oct,2007 % Center for Computational Medicine (CCM), % National Laboratory of Pattern Recognition (NLPR), % Institute of Automation,Chinese Academy of Sciences (IACAS), China. % Revise by Hu Yong, Nov, 2010 % E-mail: % based on Matlab 2006a % $Revision: 1.0, Copywrite (c) 2007

聚类算法研究综述

电脑知识与技术 本栏目责任编辑:闻翔军 数据库及信息管理 1引言 数据挖掘是指从从大量无序的数据中提取隐含的、有效的、可理解的、对决策有潜在价值的知识和规则,为用户提供问题求解层次的决策支持能力。数据挖掘主要的算法有分类模式、关联规则、决策树、序列模式、聚类模式分析、神经网络算法等等。聚类算法是一种有效的非监督机器学习算法,是数据挖掘中的一个非常重要的研究课题。当人们使用数据挖掘工具对数据中的模型和关系进行辨识的时候,通常第一个步骤就是聚类,其目的就是将集中的数据人为地划分成若干类,使簇内相似度尽可能大、簇间相似度尽可能小,以揭示这些数据分布的真实情况。但任何聚类算法都对数据集本身有一定的预先假设,根据文献[1]的理论,如果数据集本身的分布并不符合预先的假设,则算法的结果将毫无意义。因此,面对特定的应用问题,如何选择合适的聚类算法是聚类分析研究中的一个重要课题。本文比较了数据挖掘中现有聚类算法的性能,分析了它们各自的优缺点,并指出了其今后的发展趋势。 2聚类算法分类研究 聚类的目的是把大量数据点的集合分成若干类,使得每个类中的数据之间最大程度地相似,而不同类中的数据最大程度地不同。通常聚类算法可以分为层次聚类、分割聚类、密度型聚类、网格型聚类和其他聚类等几种。 2.1层次聚类 层次聚类算法通过将数据组织成若干组并形成一个相应的树状图来进行聚类,它又可以分为两类,即自底向上的聚合层次聚类和自顶向下的分裂层次聚类。聚结型算法采用自底向上的策略,首先把每个对象单独作为一个聚类,然后根据一定的规则合并成为越来越大的聚类,直到最后所有的对象都归入到一个聚类中。大多数层次聚类算法都属于聚结型算法,它们之间的区别在于类间相似度的定义不同。与聚结型算法相反,分裂型算法采用自顶向下的方法,它先将所有的对象都看成一个聚类,然后将其不断分解直至每个对象都独自归入一个聚类。一般情况下不使用分裂型方法,因为在较高的层次很难进行正确的拆分。纯粹的层次聚类算法的缺点在于一旦进行合并或分裂之后,就无法再进行调整。现在的一些研究侧重于层次聚类算法与循环的重新分配方法的结合。 主要的层次聚类算法有BIRCH,CURE,ROCK, CHAMELEON,AMOEBA,COBWEB,ClusteringwithRandomWalks算法等。CURE算法[2]不用单个中心或对象来代表一个聚 类,而是选择数据空间中固定数目的、 具有代表性的一些点共同来代表相应的类,这样就可以识别具有复杂形状和不同大小的聚类,从而能很好地过滤孤立点。ROCK算法[3]是对CURE的改进,除了具有CURE算法的一些优良特性之外,它还适用于类别属性的数据。CHAMELEON算法[4]是Karypis等人于1999年提出来的,它在聚合聚类的过程中利用了动态建模的技术。 2.2分割聚类 分割聚类算法是另外一种重要的聚类方法。它先将数据点集分为k个划分,每个划分作为一个聚类,然后从这k个初始划分开始,通过重复的控制策略,使某个准则最优化,而每个聚类由其质心来代表(k-means算法),或者由该聚类中最靠近中心的一 个对象来代表(k-medoids算法),以达到最终的结果。 分割聚类算法收敛速度快,缺点在于它倾向于识别凸形分布大小相近、密度相近的聚类,不能发现分布形状比较复杂的聚类,它要求类别数目k可以合理地估计,并且初始中心的选择和噪声会对聚类结果产生很大影响。这类方法又可分为基于密度的聚类、基于网格的聚类等。 很多算法中都使用距离来描述数据之间的相似性,但是,对于非凸数据集,只用距离来描述是不够的。对于这种情况,要用密度来取代相似性,这就是基于密度的聚类算法。基于密度的算法从数据对象的分布密度出发,把密度足够大的区域连接起来,从而可以发现任意形状的类。此类算法除了可以发现任意形状的类,还能够有效去除噪声。 基于网格的聚类算法,把空间量化为有限个单元(即长方体或超长方体),然后对量化后的空间进行聚类。此类算法具有很快的处理速度。缺点是只能发现边界是水平或垂直的聚类,而不能检测到斜边界。此类算法具有很快的处理速度。时间复杂度一般由网格单元的数目决定,而与数据集的大小无关。此外,聚类的精度取决于网格单元的大小。此类算法不适用于高维情况,因为网格单元的数目随着维数的增加而呈指数增长。所有基于网格的聚类算法都存在下列问题:一是如何选择合适的单元大小和数目;二是怎样对每个单元中对象的信息进行汇总。 主要的分割聚类算法有k-means,EM,k-medoids, 收稿日期:2007-06-10 作者简介:项冰冰(1980-),女,安徽合肥人,安徽大学助教,工学学士,研究方向:数据挖掘,人工智能;钱光超(1982-),男,安徽安徽无为人,安徽大学计算机科学与技术学院05级研究生,工学学士。 聚类算法研究综述 项冰冰1,钱光超2 (1.安徽大学数学与计算科学学院安徽合肥23039;2.安徽大学计算机科学与技术学院安徽合肥230039) 摘要:聚类是数据挖掘中用来发现数据分布和隐含模式的一项重要技术。阐述了聚类算法基本原理,总结了聚类算法的研究现状,按照聚类算法的分类,分析比较了几种典型聚类的性能差异和各自存在的优点及问题,并结合应用需求指出了其今后的发展趋势。 关键词:数据挖掘;聚类分析;聚类算法 中图分类号:TP301.6 文献标识码:A文章编号:1009-3044(2007)12-21500-02TheResearchofClusteringAlgorithms XIANGBing-bing1,QIANGuang-chao2 (1.SchoolofMathematicsandComputationalScience,AnhuiUniversity,Hefei,AnhuiProvince230039,China;2.SchoolofComputerScience andTechnology,AnhuiUniversity,Hefei,AnhuiProvince230039,China) Abstract:Clusteringisanimportanttechniqueindatamining.It’ susedtodiscoverthedatadistributionandconcealedpatterns.Thepaperelucidatethebasicprincipleoftheclusteringalgorithmsandsumupthecontemporaryresearchoftheclusteringalgorithms.Italsoanalyzeafewrepresentativeclusteringalgorithmsandcomparetheirdifferences,advantagesanddisadvantages.Atlast,thepaperindicatethedevelopmenttrendofclusteringintegratingtheapplicationdemand. Keyword:Datamining;ClusteringAnalysis;ClusteringAlgorithms 1500

相关文档
最新文档