数据挖掘中聚类分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据挖掘中聚类分析的技术方法
摘要:数据挖掘是信息产业界近年来非常热门的研究方向,聚类分析是数据挖掘中的核心技术。本文对数据挖掘领域的聚类分析方法及代表算法进行分析,并从多个方面对这些算法性能进行比较,同时还对聚类分析在数据挖掘中的几个应用进行了阐述。
关键词:数据挖掘;聚类分析;聚类算法
引言
数据挖掘(Data Mining)是指从存放在数据库、数据仓库或其他信息库中的大量数据中提取隐含的、未知的、有潜在应用价值的信息或模式的过程。数据挖掘涉及多学科技术,包括数据库技术、统计学、机器学习、高性能计算、模式识别、神经网络、数据可视化、信息检索、图像与信号处理和空间数据分析。被信息产业界认为是数据库系统最重要的前沿之一,是信息产业最有前途的交叉学科。
数据挖掘的根本在于统计学,统计方法中多元数据分析的三大方法之一的聚类分析则是数据挖掘采用的核心技术,成为该研究领域中一个非常活跃的研究课题。聚类分析基于“物以类聚”的朴素思想,根据事物的特征对其进行聚类或分类。本文对数据挖掘领域的聚类分析方法及代表算法进行分析,并从多个方面对常用算法的性能面进行分析比较。最后阐述了聚类分析在数据挖掘中的应用。
1 数据挖掘领域中聚类算法的分类
聚类算法大体可以划分为以下几类:划分方法、层次方法、基于密度的方法、基于网格的方法和基于模型的方法。
1.1划分方法(partitioning method)
给定一个包含n个数据对象或元组的数据库,一个划分方法构建数据的c个划分,每个划分表示一个簇,且c≤n。通常会采用一个划分准则(经常称为相似度函数),例如距离,以便在同一个簇中的对象是“相似的”,在不同簇中的对象是“相异的”。这些聚类方法对在中小规模的数据库中发现球状簇很适用。为了对大规模的数据集进行聚类,以及处理复杂形状的聚类,基于划分的方法需要进一步的扩展。
1.2层次方法(hierarchical method)
层次方法对给定数据对象集合进行层次的分解。根据层次分解是自底向上还是自顶向下形成,层次聚类的方法可以进一步分为凝聚的和分裂的。层次聚类方法的缺陷在于,一旦一个步骤(合并或分裂)完成,它就不能被撤消,因此而不能更正错误的决定。改进层次方法的聚类质量的一个有希望的方向是将层次聚类和其他聚类技术进行集成,形成多阶段聚类。
1.3基于密度的方法(density-based method)
提出了基于密度的聚类方法是为了发现任意形状的聚类结果。其主要思想是:只要临近区域的密度超过某个阈值,就继续聚类。这样的方法可以用来过滤“噪声”孤立点数据,发现任意形状的簇。
1.4基于网格的方法(grid-based method)
基于网格的聚类方法采用一个多分辨率的网格数据结构。把对象空间量化为有限数目的单元,形成了一个网格结构。所有的聚类操作都在这个网格结构上进行。这种方法的主要优点是它的处理速度很快,其处理时间独立于数据对象的数目,只与量化空间中
每一维的单元数目有关。
1.5基于模型的方法(model-based method)
基于模型的方法为每个簇假定了一个模型,寻找数据对给定模型的最佳拟合。基于模型的算法可能性通过构建反映数据点空间分布的密度函数来定位聚类。这种聚类方法试图优化给定的数据和某些数学模型之间的适应性。
2.数据挖掘领域中常用的聚类算法
2.1 CLARANS 算法(随机搜索聚类算法)
划分方法中最早提出的一些算法大多对小数据集合非常有效,但对大的数据集合没有良好的可伸缩性,如PAM 。CLARA 是基于C-中心点类型的算法,能处理更大的数据集合。CLARA 算法不考虑整个数据集合,而是随机的选择实际数据的一小部分作为样本,然后用PAM 方法从样本中选择中心点。这样从中选出的中心点很可能和整个数据集合中选出的非常近似。重复此方法,最后返回最好的聚类结果作为输出。
CLARANS 是CLARA 算法的一个改进算法。不象CLARA 那样每个阶段选取一个固定样本,它在搜索的每一步都带一定随机性的选取一个样本,在替换了一个中心点后得到的聚类结果被称为当前聚类结果的邻居,搜索的邻居点数目被用户定义的一个参数加以限制。如果找到一个比它更好的邻居,则把中心点移到该邻居节点上,否则把该点作为局部最小量。然后,再随机选择一个点来寻找另一个局部最小量。该算法的计算复杂度大约是O(n 2),n 是对象的数目。
2.2 CURE 算法(利用代表点聚类)
CURE 算法选择基于质心和基于代表对象方法之间的中间策略。该算法首先把每个数据点看成一簇,然后再以一个特定的收缩因子向中心“收缩”它们,即合并两个距离最近的代表点的簇。它回避了用所有点或单个质心来表示一个簇的传统方法,将一个簇用多个代表点来表示,使CURE 可以适应非球形的几何形状。另外,收缩因子降底了噪音对聚类的影响,从而使CURE 对孤立点的处理更加健壮,而且能识别非球形和大小变化比较大的簇。CURE 的复杂度是O(n),n 是对象的数目。
2.3 BIRCH 算法(利用层次方法的平衡迭代归约和聚类)
BIRCH 是一个综合的层次聚类方法。它用聚类特征和聚类特征树(CF )来概括聚类描述。描述如下:
对于一具有N 个d 维数据点的簇{i x
}(i=1,2,3,…,N),它的聚类特征向量定义为: CF = (N , S L , SS)
其中N 为簇中点的个数;S L 表示N 个点的线性和(∑=i N i o 1),反映了簇的重心,SS 是
数据点的平方和(∑=N
i i o 12 ),反映了类直径的大小。 此外,对于聚类特征有如下定理:
定理1 假设),,(1111SS S L N CF =与),,(2222SS S L N CF =分别为两个类的聚类特
征,合并后的新类特征为
),,(21212121SS SS S L S L N N CF CF +++=+
该算法通过聚类特征可以方便地进行中心、半径、直径及类内、类间距离的运算。 CF 树是一个具有两个参数分支因子B 和阈值T 的高度平衡树,它存储了层次聚类的聚类特征。 分支因子定义了每个非叶节点孩子的最大数目,而阈值给出了存储在树的叶子节点中的子聚类的最大直径。CF 树可以动态的构造,因此不要求所有的数据读入内存,而可在外存上逐个读入数据项。一个数据项总是被插入到最近的叶子条目(子聚类)。如果插入后使得该叶子节点中的子聚类的直径大于阈值,则该叶子节点及可能有其他节点被分裂。新数据插入后,关于该数据的信息向树根传递。可以通过改变阈值来修改CF 树的大小来控制其占内存容量。BIRCH 算法通过一次扫描就可以进行较好的聚类,故该算法的计算复杂度是O (n ),n 是对象的数目。
2.4 DBSCAN 算法(基于高密度连接区域的密度聚类方法)
DBSCAN 算法可以将足够高密度的区域划分为簇,并可以在带有“噪声”的空间数据库中发现任意形状的聚类。该算法定义簇为密度相连的点的最大集合。
基于密度的聚类的基本思想有以下一些定义:
·给定对象半径ε内的区域为该对象的ε-邻域
·如果一个对象的ε-邻域至少包含最小数目MinPts 个对象,则称该对象为核心对象。 ·给定一个对象集合D ,如果p 是在q 的ε-邻域内,而q 是一个核心对象,则称对象p 从对象q 出发是直接密度可达的。
·如果存在一个对象链,,,,,,121p p q p p p p n n == 对1),1(,+≤≤∈i i p n i D p 是从i p 关于ε和MinPts 直接密度可达的,则对象p 是从对象q 关于ε和MinPts 密度可达的。
·如果对象集合D 中存在一个对象o ,使得对象p 和q 是从o 关于ε和MinPts 密度可达的,那么对象p 和q 是关于ε和MinPts 密度相连的。
DBSCAN 通过检查数据库中每个点的ε-邻域来寻找聚类。如果一个点p 的ε-邻域包含多于MinPts 个点,则创建一个以p 作为核心对象的新簇。然后反复地寻找从这些核心对象直接密度可达的对象,当没有新的点可以被添加到任何簇时,该过程结束。不包含在任何簇中的对象被认为是“噪声”。如果采用空间索引,DBSCAN 的计算复杂度是)log (n n O ,这里n 是数据库中对象数目。否则,计算复杂度是)(2n O 。
2.5 STING 算法(统计信息风格)
STING (Statistaical Information Grid_based method )是一种基于风格的多分辨率聚类技术,它将空间区域划分为矩形单元。针对不同级别的分辨率,通常存在多个级别的矩形单元,这些单元形成了一个层次结构:高层的每个单元被划分为多个低一层的单元。高层单元的统计参数可以很容易地从低层单元的计算得到。这些参数包括:属性无关的参数count ;属性相关的参数m (平均值),s (标准偏差),min (最小值),max (最大值),