论文部分内容阅读
随着网络技术日新月异的发展,各行各业积累的数据量逐渐增多,如何从海量的数据中挖掘出有用的信息成为越来越多研究人员关注的问题。目前数据挖掘技术已经被许多公司视为良好的发展商机。数据挖掘就是从海量的数据中提取出隐含的、未知的、有潜在价值的知识和规则。数据挖掘经典的算法主要有聚类分析,贝叶斯分类、关联规则、支持向量机、遗传等算法,其中聚类分析是数据挖掘中一项重要的工作,主要作用是将数据中同一类的数据聚集到一起,而不同类之间是彼此分开的。在聚类分析中最流行的是k-means和k-medoids算法,虽然这两种聚类分析算法的思想很简单,应用也很广泛,但是仍然存在一些不足,例如初始化分组很大程度上决定了聚类结果,而且要指定k的值,此外聚类结果对输入数据的顺序也很敏感,当数据量很大时,迭代次数会增加,效率会降低等等。所以我们希望使聚类分析更“智能”,使聚类算法可以对输入数据顺序不敏感或者不需要输入先验知识k的值,就可以形成聚类。近些年,随着群智能算法的产生,越来越多的研究者将群智能算法应用到聚类上,并取得了良好的实验结果。群智能算法主要有粒子群算法和蚁群算法,都是通过模拟自然界中鸟群和蚁群得到的算法模型。由于群智能算法是模拟自然界的社会性动物产生的,因此群智能算法在应用到聚类上时有着自身的优点,对于输入数据顺序不敏感,不需要输入聚类的个数等。但同样存在着一些不足,例如蚁群算法中需要设置很多参数,蚁群聚类算法中,人工蚂蚁在拾起或放下数据对象之前要做大量试探性随机运动,所花费的时间很长,使得算法的效率较低,而且,对输入参数的敏感性很强。本文就是针对蚁群聚类算法中存在的不足进行的算法改进,主要改进工作如下:首先算法对相似度度量方法进行了改进,在对待每个数据的不同属性是不等价的,也就是说每个属性对于数据隶属于哪个类的贡献是不同的,改进的度量方法加大了具有区分度属性之间的距离,这样得到的相似度会比传统的相似度度量更有意义。其次,还提出了一种新的拾起放下策略,在算法进行迭代多次以后,对已经形成微簇的数据群进行拾起,大大的提高了算法的效率;除此之外还在如果在放下负载对象失败的情况下,加入了拾起与负载相似的数据对象的策略,从而去除了与周围对象不合群的数据对象。最后,对蚂蚁的记忆和对噪声数据增加了处理,本文采用的记忆策略是先规定一个相似度的阀值,只有数据对象之间的相似度超过这个阀值的时候才移动过去,否则就随机移动找到一个空位置。如果当蚂蚁负载这个数据对象放下失败的次数超过给定的阀值时,蚂蚁就会将它放在一个空网格上。经过在数据集Iris上的实验验证,本文提出的改进的蚁群聚类算法——基于群智能的蚁群聚类算法在效率和正确率上都优于传统的蚁群聚类算法。