学术咨询

让论文发表更省时、省事、省心

电子工程师论文发表浅析网格的聚类方法

时间:2015年09月30日 分类:推荐论文 次数:

本篇文章是由《 计算机辅助工程 》发表的一篇电子论文,本刊主要刊登计算机技术及其应用和相关领域的学术论文,如计算机辅助设计与图形学技术及应用、专家系统、知识工程、计算机网络与通信、分布式系统、计算机软件与理论、程序设计语言、操作系统、数据库

  本篇文章是由《计算机辅助工程》发表的一篇电子论文,本刊主要刊登计算机技术及其应用和相关领域的学术论文,如计算机辅助设计与图形学技术及应用、专家系统、知识工程、计算机网络与通信、分布式系统、计算机软件与理论、程序设计语言、操作系统、数据库、计算机辅助教学、制造业信息化、物流工程信息化、交通运输工程信息化、信息管理技术及应用、人工智能技术及应用、电气自动化等领域的文章,以及有价值的研究报告和研究简介。

  摘要:已有的聚类算法对于发现任意形状的聚类和处理离群点效果不理想,分析了现有基于网格的聚类算法。使用网格方法的数据分析方法将空间划分为由(超)矩形网格单元组成的网格,然后在网格单元上进行聚类。最后,总结全文并提出基于网格的聚类需要进一步研究的方向。

  关键词:数据挖掘;网格;聚类

  1 引言

  数据挖掘是指从大型数据库或数据仓库中提取隐含的、未知的及有应用价值的信息或模式。它是数据库研究中的一个很有应用价值的领域,融合了数据库、机器学习、统计学等多个领域的理论和技术[1]。

  聚类分析是数据挖掘中广为研究的课题之一,是从数据中寻找数据间的相似性,并依此对数据进行分类,从而发现数据中隐含的有用信息或知识。目前已经提出了不少数据聚类算法,其中比较著名的有CLARANS[2]、BIRCH[3]、DBSCAN[4]和CLIQUE[5]等。但对于高维、大规模数据库的高效聚类分析仍然是一个有待研究的开放问题。

  网格方法是空间数据处理中常用的将空间数据离散化的方法。基于网格的聚类算法由于易于增量实现和进行高维数据处理而被广泛应用于聚类算法中。研究人员已经提出了很多基于网格的聚类算法,包括STING[6],它利用了存储在网格单元中的统计信息;WaveCluster[7]它用一种小波转换方法来聚类数据对象;CLIQUE在高维数据空间中基于网格和密度的聚类方法等。

  本文对已有的基于网格的聚类算法进行了研究,从网格的表示,划分网格单元的方法,到统计网格内信息,搜索近邻网格单元,聚类超过指定阙值的网格单元的各个步骤进行了分析,最后对基于网格方法聚类的研究方向做了展望。

  2 网格的定义与划分

  网格的基本概念,设A1, A2,…, Ar 是数据集O={O1, O2,…, On }中数据对象的r 个属性的有界定义域,那W=A1 ×A2 ×…×Ar 就是一个r 维空间, 将A1,A2 ,…, Ar 看成是W 的维( 属性、字段),则对于一个包含n 个数据点的r 维空间中的数据集O={O1 , O2 ,…, On },其中Oi ={Oi1 , Oi2 ,…, Oir }( i=1, 2,…, n) , Oi 的第j 个分量Oij ∈Aj 。将W的每一维M等分,即把W分割成个网格单元。

  基于网格聚类算法的第一步是划分网格结构,按搜索子空间的策略不同, 主要有基于由底向上网格划分方法的算法和基于自顶向下网格划分方法的算法。

  2.1 由底向上的划分方法

  由底向上的网格划分方法按照用户输入的划分参数(即每维段数ki,1 ≤i ≤d),将数据空间均匀划分为相等大小的网格单元,假设落入同一网格单元内的所有数据点都属于同一个簇,每个网格单元保存落入其内数据的统计信息,比如数据点个数,数据点之和。包含一定数目数据点的网格单元被称为高密度网格单元。

  WaveCluster与CLIQUE是采用由底向上网格划分方法的代表性算法。WaveCluster处理低维空间数据,它的性能超越了BIRCH、CLARANS,与DBSCAN等优秀的聚类算法[15]。CLIQUE考虑了高维子空间聚类,但它的时间复杂度较高,需要用户指定全局密度阈值。算法MAFIA[8]对CLIQUE进行了改进,为了减少聚类算法需要处理的网格单元数目,MAFIA将均匀划分网格中每一维上数据分布密度相似的相邻段合并,由此得到一个不均匀划分的网格。这个网格在数据分布较均匀的区域划分粒度大,在数据分布不均匀的区域划分粒度小,这种不均匀划分网格的方法能够提高聚类的质量,被后续的许多算法所采用。

  采用由底向上的网格划分方法的优点在于,它能通过对数据的一遍扫描,将数据压缩到一个网格数据结构内,并基于这个网格数据结构,发现任意形状的簇。此外,如果网格单元的粒度较小(即体积较小),那么得到的聚簇的精度较高,但是算法的计算复杂度较大。此外,由底向上的网格方法存在不适合处理高维数据的问题。在高维空间,数据的分布是非常稀疏的,网格方法失去其压缩作用,而且属于同一个簇的高密度网格单元也可能不相连,这使聚类算法不能发现合理数目的簇。

  2.2 自顶向下的划分方法

  自顶向下的网格划分方法采取分治的策略(divide and conquer principle),对数据空间进行递归划分,使问题的规模不断减小。首先将原数据空间划分为几个较大的区域。对于每个得到的区域,划分过程反复执行,直到每个区域包含属于同一个簇的数据点,那么这些区域就是最终的网格单元。基于自顶向下网格方法的聚类算法直接将高密度网格单元识别为一个簇,或是将相连的高密度网格单元识别为簇。

  OptiGrid[9]与CLTree[10]是两个典型的基于自顶向下网格划分方法的聚类算法。其中, OptiGrid则是用空间数据分布的密度信息来选择最优划分。通过一个密度函数来决定切割平面,可以将数据空间划分为规则的或不规则单元,与传统的等间距的划分相比,可以用此来解决高维聚类的问题。而CLTree用划分后的信息增益来选取最优划分。

  自顶向下划分方法的主要优点在于不需要用户指定划分参数,而是根据数据的分布对空间进行划分,因此这种划分更为合理。数据空间维度对自顶向下网格方法的影响较小,可以快速将大型高维数据集中的簇分隔开。这一类方法的计算复杂度与数据集大小和维度都呈线性关系适合于处理高维数据。由于划分是基于数据分布的,而通常认为噪音是在整个空间均匀分布的,所以自顶向下划分方法对噪音不敏感。但是,由于这种方法得到的网格单元的体积远大于由底向上网格方法中的网格单元体积,因此方法产生的簇的描述精度比由底向上的网格方法得到的簇的描述精度要低。而且在自顶向下的划分过程中,同一个簇可能被划分到不同的区域中,最终得到的同一区域也可能包含不同的簇,这样就进一步降低了算法的正确度。这类划分方法的另一个缺点是它在划分过程中,需要对数据集进行多次扫描。

  而由底向上划分方法在于只需对数据集进行一次线性扫描以及较高的簇的描述精度。因此,两类方法适用于不同的问题。前者适于处理高维数据集,后者能有效处理存取代价较大的超大型数据集与动态数据。

  3 基于网格的聚类过程

  基于网格的聚类算法的基本过程是,首先将数据空间W划分为网格单元,将数据对象集O 映射到网格单元中,并计算每个单元的密度。根据用户输入的密度阈值MinPts 判断每个网格单元是否为高密度单元,由邻近的稠密单元组形成簇[11],如表1。

  算法1中的步骤1已经在上文详细说明,下面具体介绍步骤2-4的内容。

  3.1 网格单元的密度

  簇就是一个区域,该区域中的点的密度大于与之相邻的区域。在网格数据结构中,由于每个网格单元都有相同的体积,因此网格单元中数据点的密度即是落到单元中的点的个数。据此可以得到稠密网格单元的密度是,设在某一时刻t一个网格单元的密度为density,定义density=单元内的数据点数/数据空间中总的数据点数,设密度阈值为, 为用户输入的密度阙值,当density> 时,该网格单元是—个密集网格单元。

  相对于稠密网格单元来说,大多数的网格单元包含非常少甚至空的的数据,这一类网格单元被称为稀疏网格单元。大量的稀疏网格单元的存在会极大的降低聚类的速度,需要在聚类之前对稀疏网格单元进行处理,定义稀疏密度阈值为,当density>时,该网格单元是—个稀疏单元。对于稀疏网格单元的处理方法一般采用压缩的方法或者直接删除的方法,如果需要保留稀疏网格单元用于后续处理,可以使用压缩的方法;如果在现有数据的基础之上直接聚类,可以删除稀疏网格单元,理论分析和实验证明删除稀疏网格单元并不影响聚类的质量[12]。