蚁群算法聚类分析
- 格式:doc
- 大小:732.00 KB
- 文档页数:14
文章编号:1002—8692(2009)05--0082-03互动业务用户行为特征聚类挖掘算法研究宰实用技术邓云桂1一。
石雅迪2,曹三省2,3(1.怀化学院物理与信息工程系。
湖南怀化418008;2.中国传媒大学信息工程学院,北京100024;3.南京大学计算机软件新技术国家重点实验室,江苏南京210093)【摘要】对数据挖掘的算法作了分析和比较,选取蚁群聚类算法对互动业务中的典型平台——I Pl V业务进行研究,实现用户行为特征群偏好分析。
【关键词】互动业务;数据挖掘;蚁群聚类算法【中图分类号】TN911.73【文献标识码】AR e sear ch o n U s er B e havi or Feat ur es C l us t er i ng D at a M i ni ng A l gor i t hm f or I n t er act i v e Ser vi cesD E N G Y un-gui l t SH I Y a-di2,C A O San—xi n gz3(J.Phy s i cs and I nfor m at ion E ngi neer i ng D epa r t m ent,H uai hua C ol l ege。
H unan H u ai hua418008,Chi na;2.Com m uni cm i on U n i v e r si t y of C hi na,I nf or m at i on Engi neer i ng Coll eg e,Bei j i n g100024,C hi na;王Sane K e y L ab f o,N ove l Soft w口e T ec hnol ogy,N anj i ng U ni ver si t y,N f m j i ng210093,C hi na)【Abst r a ct】I n t hi s pa pe r,sever al dat a m i ni n g al gor i t hm s i s ana l yz ed a nd c om pa r ed,a nd60m e r ese ar ch w or k o n a nt-bas ed cl us-t eri ng al gor i t h m i sm ade.∞鹊t o ana l yze u∞璐’be hav i or al f eatur es a nd pr e f er en ce i n t he I Pl V i nt er act i ve se r vi c e.【K ey w ords】i nt era ct i ve ser vi ce;dat a m i ni ng;ant-ba sed cl us t er i ng al gor i t h m1引言数据挖掘(da t a m i ni ng)是从大量数据中获取有用的、隐含的、先前未知的和可能有用的模式或知识的过程.是解决海量数据中人为知识处理困难的关键技术11。
一种基于蚁群聚类的图像分割方法【关键词】图像分割;群体智能;蚁群算法;聚类0 引言在图像分析与处理中,通常需要将关心的目标从图像中分离出来,这种从图像中将有特殊意义的区域与其它区域分离并提取出来的技术和过程,就是图像分割。
图像分割是目前图像处理、计算机视觉、模式识别等研究邻域的基本问题之一。
目前,图像分割不存在通用的分割算法,不同的图像分割算法都是在针对不同图像取得了较良好的效果。
而应用较广泛的有阈值法,边缘检测法,区域跟踪法等[1]。
各方法都有自己的优点和缺点。
随着实际应用的需要,对图像分割方法的研究也在不断深入,在不断改进现有方法的同时,也提出了许多的新方法。
其中包括基于群体智能的分割算法:如蚁群算法[2-6],遗传算法[7],粒子群优化算法[8]等。
群体智能是人们在研究昆虫的习性时提出的。
群体智能是指“无智能的个体通过合作表现出智能行为的特性”。
当前研究较多的还是对蚂蚁习性的观察,如对蚂蚁觅食行为而提出的蚁群算法及后的许多改进算法;对蚂蚁构建墓地的行为而提出的用于解释聚类现象的bm模型。
本文提出的图像分割方法是基于群体智能理论的聚类算法。
首先介绍了有关群体智能的理论,然后对原有蚁群聚类算法作了一些改进,通过分割特征的提取,初始虚拟堆的设置,以及负载和观察半径的设置,在加快聚类的同时,也保证了的聚类效果,并在图像分割中收到了较好的结果。
最后,将实验分割的效果与目前常用的分割算法如:log算子、canny算子进行比较。
实验结果表明:具有较好的聚类效果,能够较好的分割图像。
1 群体智能理论20世纪50年代中期创立了仿生学,人们通过对群居生物筑巢、觅食、迁徙、打扫巢穴等行为的模似,提出了许多用以解决复杂优化问题的新方法,并成功的解决了组合优化、车间调度、图着色等邻域的实际问题。
bonabeau等人认为群体智能是任何启发于群居性昆虫群体和其它动物群体的集体行为而设计的算法和分式问题的解决装置。
群体智能的特点如下[3]:1)无集中控制约束,不会因个别个体的故障影响整个问题的求解,确保了系统具有更强的鲁棒性;2)以非直接的信息交流方式确保了系统的扩展性,由于系统中个体的增加而增加的通信开销较少;3)并行分布算法模型,可充分利用多处器,这样的分布模式更适合于网络环境下的工作状态;4)对问题定义的连续性无特殊性要求;5)系统中每个个体的能力十分简单,每个个体的执行时间也比较短,并且算法实现简单。
第一章绪论1。
1选题的背景和意义受社会性昆虫行为的启发,计算机工作者通过对社会性昆虫的模拟产生了一系列对于传统问题的新的解决方法,这些研究就是群体智能的研究。
群体智能作为一个新兴领域自从20世纪80年代出现以来引起了多个学科领域研究人员的关注,已经成为人工智能以及经济社会生物等交叉学科的热点和前沿领域。
群体智能(Swarm Intelligence)中的群体(Swarm)指的是“一组相互之间可以进行直接通信或者间接通信(通过改变局部环境)的主体,这组主体能够合作进行分布问题求解,群体智能指的是无智能或者仅具有相对简单智能的主体通过合作表现出更高智能行为的特性;其中的个体并非绝对的无智能或只具有简单智能,而是与群体表现出来的智能相对而言的。
当一群个体相互合作或竞争时,一些以前不存在于任何单独个体的智慧和行为会很快出现。
群体智能的提出由来已久,人们很早以前就发现,在自然界中,有的生物依靠其个体的智慧得以生存,有的生物却能依靠群体的力量获得优势。
在这些群体生物中,单个个体没有很高的智能,但个体之间可以分工合作、相互协调,完成复杂的任务,表现出比较高的智能。
它们具有高度的自组织、自适应性,并表现出非线性、涌现的系统特征。
群体中相互合作的个体是分布式的,这样更能够适应当前网络环境下的工作状态;没有中心的控制与数据,这样的系统更具有鲁棒性,不会由于某一个或者某几个个体的故障而影响整个问题的求解。
可以不通过个体之间直接通信而是通过非直接通信进行合作,这样的系统具有更好的可扩充性。
由于系统中个体的增加而增加的系统的通信开销在这里十分小.系统中每个个体的能力十分简单,这样每个个体的执行时间比较短,并且实现也比较简单,具有简单性。
因为具有这些优点,虽说群集智能的研究还处于初级阶段,并且存在许多困难,但是可以预言群集智能的研究代表了以后计算机研究发展的一个重要方向。
随着计算机技术的飞速发展,智能计算方法的应用领域也越来越广泛,当前存在的一些群体智能算法有人工神经网络,遗传算法,模拟退火算法,群集智能,蚁群算法,粒子群算等等。
群智能算法群智能算法简介群智能算法(Swarm Intelligence Algorithms)是一类基于群体智能的优化算法。
群体智能是指通过模拟大自然中各种群体行为和智能的方法,来解决较复杂的问题。
在群智能算法中,通过模拟群体中个体之间的合作和交流,以达到全局最优解或者近似最优解的目标。
蚁群算法蚁群算法(Ant Colony Optimization, ACO)是群智能算法的一种,灵感来自于蚂蚁寻找食物的行为。
蚁群算法通过模拟蚂蚁在寻找食物的过程中释放信息素并根据信息素浓度选择路径的行为,来解决优化问题。
蚁群算法的优点是能够自适应地搜索最优解,并且对于复杂的问题也有很好的适应性。
蚁群算法的基本思想是,蚂蚁在寻找食物的过程中会释放信息素,其他蚂蚁会根据信息素浓度选择路径。
信息素的浓度会根据路径的质量进行更新,路径质量越高,信息素浓度越大。
蚂蚁寻找食物的路径会受到信息素浓度的引导,随着时间的推移,信息素浓度越高的路径被越多的蚂蚁选择。
最终,蚂蚁会集中在质量较高的路径上,找到最优解。
粒子群算法粒子群算法(Particle Swarm Optimization, PSO)是另一种群智能算法,灵感来自于鸟群或鱼群等群体中的个体行为。
粒子群算法通过模拟个体之间沟通和协作的行为,以达到优化问题的求解。
粒子群算法的特点是快速收敛和易于实现。
粒子群算法的基本思想是将待优化的问题看作搜索空间中的一个点,这个点的位置表示解的位置。
粒子代表一个个体,其位置表示解的位置,速度表示解的搜索方向。
每个个体根据自身的搜索经验和群体的信息进行位置和速度的更新。
通过不断迭代,粒子群算法最终能够找到最优解。
群智能算法的应用群智能算法在各个领域都有广泛的应用。
下面几个常见的应用领域:1. 旅行商问题旅行商问题是计算机科学中的一个经典问题,其目标是寻找一条最优路径,使得旅行商可以从一个城市出发,经过所有其他城市,最后回到出发城市,且路径总长度最小。
蚁群算法聚类分析摘要:蚁群算法是今年来才提出的一种基于种群寻优的启发式搜索算法,由意大利学者M.Dorigo等于1991年首先提出。
该算法受到自然界中真实蚁群集体行为的启发,利用真实蚁群通过个体间的信息传递、搜索从蚁穴到食物间的最短路径的集体寻优特征,来解决一些离散系统中优化的困难问题。
本文就蚁群算法的基本原理、模型特征、聚类分析展开论述。
关键字:蚁群算法原理模型聚类分析引言蚁群算法是最近几年才提出的一种新型的模拟进化算法。
蚂蚁是大家司空见惯的一种昆虫,而他们的群体合作的精神令人钦佩。
他们的寻食、御敌、筑巢(蚂蚁的筑窝、蜜蜂建巢)之精巧令人惊叹。
蚂蚁是自然界中常见的一种生物,人们对蚂蚁的关注大都是因为“蚂蚁搬家,天要下雨”之类的民谚。
然而随着近代仿生学的发展,这种似乎微不足道的小东西越来越多地受到学者们的关注。
1991年M.DIorigo,V.MaIliezzo等人首先提出了蚁群算法 (Ant Colony Algorithms),人们开始了对蚁群的研究:相对弱小,功能并不强大的个体是如何完成复杂的工作的(如寻找到食物的最佳路径并返回等)。
在此基础上一种很好的优化算法逐渐发展起来。
基本蚁群算法的机制原理模拟蚂蚁群体觅食行为的蚁群算法是作为一种新的计算智能模式引入的,该算法基于如下基本假设:(1)蚂蚁之间通过信息素和环境进行通信。
每只蚂蚁仅根据其周围的局部环境做出反应,也只对其周围的局部环境产生影响;(2)蚂蚁对环境的反应由其内部模式决定。
因为蚂蚁是基因生物,蚂蚁的行为实际上是其基因的适应性表现,即蚂蚁是反应型适应性主体;(3)在个体水平上,每只蚂蚁仅根据环境做出独立选择;在群体水平上,单只蚂蚁的行为是随机的,但蚁群可通过自组织过程形成高度有序的群体行为;由上述假设和分析可见,基本蚁群算法的寻优机制包含两个基本阶段:适应阶段和协作阶段。
在适应阶段,各候选解根据积累的信息不断调整自身结构,路径上经过的蚂蚁越多,信息量越大,则该路径越容易被选择;时间越长,信息量会越小;在协作阶段,候选解之间通过信息交流,以期望产生性能更好的解,类似于学习自动机的学习机制。
蚁群算法实际上是一类智能多主体系统,其自组织机制使得蚁群算法不需要对所求问题的每一方面都有详尽的认识。
自组织本质上是蚁群算法机制在没有外界作用下使系统熵增加的动态过程,体现了从无序到有序的动态演化,其逻辑结构如图1所示。
图1 基本蚁群算法的逻辑结构由图1可见,先将具体的组合优化问题表述成规范的格式,然后利用蚂蚁算法在“探索(exploration)’’和“利用(exploitation)"之间根据信息素这一反馈载体确定决策点,同时按照相应的信息素更新规则对每只蚂蚁个体的信息素进行增量构建,随后从整体角度规划出蚂蚁活动的行为方向,周而复始,即可求出组合优化问题的最优解。
基本蚁群算法的模型特征现在大量的工作是围绕组合优化问题进行的,因为蚁群模型的定义要受到问题结构的影响,故而选择一种标准的问题是衡量算法好坏,并与其它算法进行比较的前提,通常选择的问题是旅行商问题(TSP),TsP具有广泛的代表意义和应用前景,许多现实问题均可抽象为TSP 的求解,故我们以TSP为例来描述基本蚁群算法的模型特征。
TSP问题属于一种典型的组合优化问题,其定义为:给定n个城市的集合,寻找一条只经过各城市一次的具有最短长度的闭合路径。
设(X i,Y j)是城市i的坐标值,d ij为城市i和城市j 之间的距离,用欧几里德空间距离表示:(1)一个TSP问题可由图(N,E)给定,其中N是城市的集合,E是城市之间的支路集合(欧几里德空间中TSP意义下的一个全连接图),令b i(t)(i=1,2,⋯,n)为t时刻位于城市i的蚂蚁个数,则为蚁群中蚂蚁的总个数。
每个蚂蚁可认为具有下列特征的简单智能体:(1)其选择城市的概率是城市之间的距离和连接支路所包含的当前信息素余量的函数;(2)为了强制蚂蚁进行合法的周游,直到周游完一次所有的城市,才允许蚂蚁游走己访问过的城市,设置禁忌表来进行控制;(3)当完成一次周游后,它在每条访问过的支路上都会留下信息素。
设:u(t)为t时刻在ij连线上残留的信息量,而初始时刻各条路径上的信息量相等,即T ii(O)=c。
如果在时间间隔(t,t+1)中m个蚂蚁都从当前城市选择下一个城市,则经过n个时间间隔。
为了避免残留信息过多引起的残留信息淹没启发信息的问题,在每一只蚂蚁完成对所有n个城市的访问后(也即一个循环结束后),必须对残留信息进行更新处理,模仿人类记忆的特点,对1日的信息进行削弱。
同时,必须将最新的蚂蚁访问路径的信息加入T ij,此时按如下方法修改各条路径上的残留信息。
(2)(3)上式中,p为信息残留系数,l—p表征了从时刻t到t+n路径(I,j)上残留信息为本次循环第k只蚂蚁在t与t+n时刻,留在路径(i,j)上的的挥发程度。
△Tij年位长度上的信息量。
根据Morigo的Ant—Cycle System模型,有(4)为第k只蚂蚁在本次循环中所走路径的长度。
则t时刻蚂上式中,Q为常量,Lk蚁k(k=l,2,3,⋯,n)由城市i到城市j的选择概率定义如下:(5)定义tabuk为一动态增长的列表,其中记录了蚂蚁k所经过的所有的城市号,为允许第k只蚂蚁访问的城市列表,则为t时刻蚂蚁由城市i选择城市j的某种启发信息。
Ant cycle算法流程如图2所示:图2 Ant-cycle算法流程图而后Dorigo等人又提出了蚁群算法的另外两个版本:蚁密算法和蚁量算法,这两种算法在信息素更新的方式上利用的是局部信息,而蚁周算法利用的是整体信息。
这两种算法的模型中,每只蚂蚁在每一步后都留下了它的信息素,而不必等到周游结束。
在蚁密算法中,蚂蚁每次从i到j都会在支路(ij)上留下数量为Q的信息素:在蚁量算法中,一只从i到j 的蚂蚁在支路(i,j)上留下数量为Q/d ij的信息素。
其更新方式定义如下:(6)(7)基本蚁群算法的优点和不足之处蚁群算法的基本思想是模仿蚂蚁依赖信息量(pheromone)进行通信而显示出的社会性行为,在智能体(agent)定义的基础上,由一个贪心法指导下的自催化(auto catalytic)过程引导每个智能体的行动,它是一种随机的通用试探法。
AS的信息正反馈机制能迅速找到好的解决方法;分布式计算可以避免过早地收敛;强启发能在早期的寻优中迅速找到合适的解决方案,该算法已经被成功地运用于许多能被表达为在图表上寻找最佳路径的问题。
不难看出,蚁群算法的优点在于:(1)较强的鲁棒性:对蚁群算法模型稍加修改,就可以应用于其他问题;(2)分布式计算:蚁群算法是一种基于种群的进化算法,具有本质并行性,易于并行实现;(3)易于与其他方法结合:蚁群算法很容易与多种启发式算法结合,以改善算法的性能。
但是蚁群算法也存在着若干不足之处,如:(1)需要较长的搜索时间,蚁群算法的复杂度可以反映这一点。
虽然计算机计算速度的提高和蚁群算法的本质并行性在一定程度上可以缓解这一问题,但是对于大规模优化问题,这还是一个很大的障碍;(2)该算法容易出现停滞现象(stagnation behaVior),即搜索进行到一定程度后,所有个体所发现的解完全一致,不能对解空间进一步搜索,不利于发现更好的解;(3)蚁群算法是一种基于蚁群群体行为的算法,群体各个个体需要通过交换信息素实现相互通讯,并通过信息素的差异分布构造问题的解。
算法求解问题过程中需要问题空间中存在信息素的差异,而这一差异的出现常常需要耗费算法一部分的时间,在某些情况下会很大程度地降低算法的运行效率;(4)在算法实现方面存在许多不确定的因素,比如,信息素初始数值的确定,不同的蚁群算法设置为不同的数值,而且具有很大的差异;在信息素的更新方面,同样具有差异很大的很多不同的方式;另外,算法还有许多参数的取值要在算法中确定,这些参数在不同取值的情况下,常常会对算法的性能和求解效率产生重大影响;(5)在蚁群依据信息素确定行走路径的过程中,可能会出现蚁群陷入局部最优解的情况,造成了算法求解的偏差。
聚类数目已知的蚁群聚类算法聚类分析师一种传统的多变量统计分类方法,用以探讨如何将所搜集的物体分类,似的相同群体具有高度的相异性。
聚类分析的用途甚广,在科学数据探测、图像处理、模式识别、文档检索、医疗诊断、web分析、计算物学等领域起着非常重要的作用。
聚类问题的本质是一个非线性规划问题,目前没有有效的算法解决这些问题。
蚁群算法作为一种分布式寻优算法,已经展示了其优良的搜索最优解的能力,并具有其他通用型算法不具备的特征。
由于蚁群算法能够应用于各种优化组合问题,因此可以用来解决聚类分析问题。
基于蚁群算法的聚类算法大致分为聚类数目已知和聚类数目未知两类问题,本文将着重介绍聚类数目已知的聚类算法。
1.问题提出一幅图中含有多个物体,在图像中进行聚类分析需要对不同的物体分割表示,如图3所示,手写了12个待分类样品,要分成4类,如何让计算机自动将这12个物体归类呢?本文将用蚁群算法解决聚类问题的实现方法。
图3 待聚类的样品数字2.蚂蚁的结构在已知聚类数据的蚁群聚类算法中,每只蚂蚁都表示为一种可能的聚类结果。
首先生成具有m只蚂蚁的蚁群,每只蚂蚁在搜索开始之前分配一个空的长度为样本个数N的解集S,解集中的第i个位置对应地i个样品所属的类号。
在搜索结束后,解集中的值表示的是第i个样品所归属的类。
针对图3,分为4类的12个样品,设计蚂蚁的解集,假设蚂蚁S i进行搜索后找到的解集,如表1所示。
表1 某只蚂蚁的解集某已知蚂蚁S i中的值表示的是第1个样品分到第2类,第2个样品分到第4类,等等,这是蚂蚁利用信息素把每个样品分到相应的类中后的解集。
3.构造信息素矩阵在12样品分到4个类规模的聚类问题中,信息素是一个在迭代过程中不断更新的12*4的矩阵。
在出事阶段,信息素值被初始化为同一个数值,例如表2所示。
表2 信息素矩阵4.构造目标函数已知模式样品表中有N个样品和M个模式分类,每个样品有n个特征,以每个模式样品到聚类中心的距离之和达到最小作为目标函数,其数学模型表示为:5.更新蚁群在每一次蚁群更新中,蚂蚁将通过信息素的间接通信实现把N样品划分为M个类的一个近似划分。
当m值蚂蚁都迭代结束后,假如局部搜索以便进一步提高划分的质量,然后根据划分的质量更新信息素矩阵,如此循环,直到满足循环条件结束。
6.局部搜索依照上述方法计算所有蚂蚁对应的解集。
7.信息素矩阵更新执行过局部搜索之后,利用前L个蚂蚁对信息素表进行更新。
信息素更新采用:8.算法流程最终找到的最优蚂蚁对应的解集如表3所示。
如图4所示为聚类数目已知的蚁群聚类算法流程图。
图5所示为该解集对应的最优聚类划分。