- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一种与kprototypes混合蚁群聚类算法浅探
一种与k-prototypes混合的蚁群聚类算法的浅探
摘 要:本文介于k-prototypes和蚁群聚类算法的优、缺点,将两种算法进行改进后,交替使用,相互弥补、扬长避短,形成一种全新的算法,既缩短了聚类时间也能形成高效的聚类结果。
关键词:蚁群聚类算法 k-prototypes算法
中图分类号:TP18 文献标识码:A 文章编号:1007-9416(2010)11-0077-02
1 引言
蚁群算法是20世纪90年代由意大利科学家M.Dorigo等人首先提出的,具有很好的通用性和鲁棒性。随着蚁群算法的深入研究,后来的科学家们提出了蚁群聚类算法,目前基于蚁群算法的聚类方法从原理上分为四种[1]:一是源于蚂蚁觅食的原理;二是源于蚁堆形成的原理;三是源于蚂蚁自我行为的原理;四是源于蚁巢分类的原理。但无论哪种蚁群聚类算法都存在这样或那样的缺点,为了克服这些缺点,可以尝试着把蚁群聚类算法和其它算法结合,以获得“高质量”的聚类结果。本文就提出在蚁群聚类算法的基础上,交替使用k-prototypes算法,在缩短时间的基础上得到较好的聚类结果。
2 基于蚁堆形成原理实现聚类的主要思想
将待聚类的数据随机放置在一个二维网格环境中,每个数据占据一个网格,虚拟蚂蚁随机移动,每只蚂蚁根据数据与局部环境的相似程度,决定捡起还是放下该数据,相似程度越高捡起的概率越小,放下的概率越大。邻域相似函数是蚂蚁捡起或放下数据与其观察半径内邻域对象间的平均相似度,公式如下:
其中为对象间的距离,常用欧氏距离或余弦距离;为相似度调整因子;位置的领域的面积为;蚂蚁速度均匀分布于,是一个蚂蚁在一个时间单元内沿给定的网格轴线行走的网格单元数。“捡起”、“放下”概率公式[2]为:
其中,为参数。越大,曲线饱和越快,算法收敛越快。这种蚁群聚类算法无需预先设定聚类的簇数,可以发现任意形状的簇,无需计算聚类的平均值,为处理混合数据集提供了可能。但该算法收敛速度很慢,网格精细度会影响聚类结果的精细度。
3 与k-prototypes混合的蚁群聚类算法
K-prototypes算法是处理混合属性数据的主要聚类算法,但是存在对初始值敏感、参数依赖和易受“噪声”干扰等问题,当然收敛速度比蚁群聚类算法要快。因此,要想得到较快且好的聚类结果,需对它们进行改进,并将二者结合。
3.1 基本思路
首先利用蚁群算法来形成初始簇,但由于划分时间长,所以在算法收敛之前就终止了算法,致使创建的划分存在错误划分;之后使用k-prototypes算法除去小的分类错误,并分配“自由”对象,即算法停止时仍有单独存在单元格上的对象或蚂蚁仍在搬运的对象;再次继续使用蚁群算法,这次的蚁群算法使用在对象堆上,堆同样可以像单个对象一样拿起放下,形成新簇;最后对于仍未分配的堆再次使用k-prototypes算法,最终得到最佳划分。
3.2 关于蚁群聚类算法的改进
改进一[3]:传统算法经常花大量时间来寻找合适的数据捡起,导致蚂蚁在多次迭代中无负载的空转,降低算法的效率。改进中的蚂蚁在放下对象后在本次迭代中立刻分配一个合适的空闲数据并尝试捡起,如果捡起失败则重新分配,直至捡起合适的数据。
改进二[3]:传统算法是将蚂蚁随机的移动到其它位置,这种策略有一定的盲目性,降低算法的效率。改进的算法为:首先查看与距离为1的位置是否空闲,如果有空闲则在空闲位置放下对象,否则查看与距离为2的位置是否空闲,反复,直至可视半径,如果最终没找到空闲位置则将蚂蚁随机移动到其他位置。
改进三[3]:传统算法中参数的确定很困难,也非常重要:过大,蚂蚁捡起对象困难而放下对象容易,会使不同的簇合成一个簇;反之,蚂蚁捡起对象容易而放下对象困难,会阻止同一簇对象的合成。在改进的算法中使用自适应的策略决定的值,即设参数的初始值为,在算法运行过程中每次迭代次考察蚂蚁放下对象失败的次数与的比值,如果,增加0.01,否则减少0.01。
改进四:传统的蚁群算法只能 “捡起”、“放下”单个数据,对于一个簇进行“捡起”、“放下”有一定难度,故对式中的进行改进,由计算欧氏距离变为组平均,即:在计算平均相似度时,两个簇的距离就是属于不同簇的所有对象的距离的平均值:
(其中和是两个簇所包含的样本数)
3.3 与k-prototypes混合的蚁群聚类算法的描述
(1)初始化蚁群中蚂蚁个数,最大迭代次数,局部区域边长,参数等参数设置和数据预处理;将数据随机置于二维平面上,每只蚂蚁随机捡起一个自由数据,并移动到平面上一个随机空闲位置;参数取三种类型值之一:常数、随机数或递减随机数。
(2)For ;For :①根据式计算对象的平均相似性;②
文档评论(0)