聚类算法

Posted 油藏地质与开发

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了聚类算法相关的知识,希望对你有一定的参考价值。

聚类是数据挖掘领域中重要的技术之一,用于发现数据中未知的分类。聚类分析已经有了很长的研究历史,其重要性已经越来越受到人们的肯定。聚类算法是机器学习、数据挖掘和模式识别等研究方向的重要研究内容之一,在识别数据对象的内在关系方面,具有极其重要的作用。聚类主要应用于模式识别中的语音识别、字符识别等,机器学习中的聚类算法应用于图像分割,图像处理中,主要用于数据压缩、信息检索。聚类的另一个主要应用是数据挖掘、时空数据库应用、序列和异常数据分析等。此外,聚类还应用于统计科学,同时,在生物学、地质学、地理学以及市场营销等方面也有着重要的作用。

聚类是一种常见的数据分析工具,其目的是把大量数据点的几何分成若干类,使得每个类中的数据之间最大程度地相似,而不同类之间的数据最大程度地不同。在多媒体信息检索(如声音、图像等)即数据挖掘的过程中,聚类处理对于建立高效的数据库索引、实现快速准确的信息检索具有重要的理论和现实意义。互联网中网页量那么大,是如何建立数据库以快速搜索 的呢?

通常根据聚类算法所采取的基本思想,将它们分为五类,即层次聚类算法、分割聚类算法、基于约束的聚类算法、机器学习中的聚类算法及用于高维数据的聚类算法。

层次聚类算法

层次聚类算法是通过将数据组织成若干组并形成一个相应的树状图来进行聚类,它又可以分为两类,即自底向上的聚合聚类和自顶向下的分解层次聚类。聚合聚类的策略是先将每个对象各自作为一个原子聚类,然后对这些原子聚类逐层进行聚合,直至满足一定的终止条件;后者则与前者相反,它先将所有的对象都看成一个聚类,然后将其不断分解直至满足终止条件。

对于聚合聚类来讲,根据度量两个子类的相似度是所依据的距离不同,又将其分为基于Single-LinkComplete-LinkAverage-Link的聚合聚类。

分割聚类算法

分割聚类算法是另一种重要的聚类方法。它先将数据点集分为k个划分,然后从这k个划分开始,通过重复的控制策略使某个准测最优化以达到最终结果。这类方法又可以分为基于密度的聚类、基于网格的聚类和基于平方误差的迭代重分配聚类。

基于密度的聚类

基于密度的聚类算法是从数据对象的分布密度出发,将密度足够大的相邻区域链接起来,从而可以发现具有任意形状的聚类,并能有效处理异常数据。它主要用于对空间数据的聚类。

基于网格的聚类

基于网格的聚类从对数据空间划分的角度出发,利用属性空间的多位网格数据结构,将空间划分为有限数目的单元以构成一个可以进行聚类分析的网格结构。该方法的主要特点是处理时间与数据对象的数据无关,但与每维空间所划分的单元数相关;而且,基于其间接的处理步骤,该方法还与数据的输入顺序无关。与基于密度的聚类只能处理数值属性的数据所不同的是,基于网格的聚类可以处理任意类型的数据,但以降低聚类的质量和准确性为代价。

基于图论的聚类

基于图论的方法是把聚类转换为一个组合优化问题,并利用图论和相关的启发式算法来解决该问题。其做法一般是先构造数据集的最小生成树,然后逐步删除最小生成树中具有最大长度的那些边,从而形成更多的聚类。基于超图的划分和基于光谱 的图划分方法,是这类算法的两个主要应用形式。该方法的一个有点在于它不需要进行一些相似度的计算,就能把聚类问题映射为图论中的一个组合优化问题。

基于平方误差的迭代重分配聚类

基于平方误差的重分配聚类方法的主要思想是逐步对聚类结果进行优化、不断将目标数据集合向各个聚类中心进行重新分配以获得最优解(判断是否是最优解的目标函数通常通过平方误差计算得到)。此类方法有可以进一步分为概率聚类算法、考虑了最邻近影响的最邻近聚类算法以及K-medoids算法和K-means算法。

k-means算法是1967J.B.MacQueen提出的目前为止应用最为广泛的一种聚类方法,其每个类别均用该类中所有数据的平均值(或加权平均值)来表示,这个平均值即被称为做聚类中心。该方法虽然不能用于类别属性的数据,但对于树枝属性的数据,它能很好地体现聚类在几何和统计学上的意义。但是,原始K-means方法也存在如下缺陷:聚类结果的好坏依赖于对初始聚类中心的选择;容易陷入局部最优解;对K值的选择没有准则可以依循;对异常数据较为敏感;只能处理数值属性的数据;聚类结果可能不平衡。

K-means算法的核心思想是把n个数据对象划分为k个聚类,是每个聚类中的数据点到该聚类中心的平方和最小,算法处理过程:

输入:聚类个数k,包含n个数据对象的数据集。

输出:k个聚类;

(1) n个数据对象中任意选取k个对象做为初始的聚类中心。

(2) 分别计算每个对象到各个聚类中心的距离,把对象分配到距离最近的聚类中。

(3) 所有分配完成后,重新计算k个聚类的中心。

(4) 与前一次计算得到的k个聚类中心比较,如果聚类中心发生变化,转(2),否则转(5)。

(5) 输出聚类结果。

基于约束的聚类算法

真实世界中聚类问题往往是具备多种约束条件的,然而由于在处理过程中不能准确表达相应的约束条件、不能很好地利用约束知识进行推理及不能有效利用动态的约束条件,使得这一方法无法得到广泛的推广和应用。这里的约束可以是对个体对象的约束,也可以是对聚类参数的约束,它们均来自相关领域的经验知识。

机器学习的聚类算法

机器学习中的聚类算法是指与机器学习相关、采用了某些机器学习理论的聚类方法,它主要包括人工神经网络方法以及基于进化理论的方法。

用于高维数据的聚类算法

高维数据聚类是目前多媒体数据挖掘面临的重大挑战之一。对于高维数据聚类的困难主要来源于一下两个因素:(1)高维属性空间中那些无关属性的出现使得数据失去了聚类趋势;(2)高维数据之间的区分界面变得模糊。降维降维这一最直接的方法之外,对高维数据的聚类处理还包括空间以及联合聚类技术等。

总结

总体来说,分割聚类算法的应用最为广泛,其收敛速度快,且能够扩展以用于大规模的数据集;缺点在于它倾向于识别凸形分布、大小相近,密度近似的聚类,而不能发现形状比较复杂的聚类,并且初始聚类中心的选择和噪声数据会对聚类结果产生较大的影响。层次聚类方法不仅适用于任意属性和任意形状的数据集,还可以灵活控制不同层次的聚类粒度,因此具有较强的聚类能力,但它大大延长了算法的执行时间。基于约束的聚类通常只用于处理某些特定领域中的特定需求。机器学习中的人工神经网络和退火模拟等方法虽然能利用相应的启发式算法获得较高质量的聚类结果,但其计算复杂度往往较高,同时其聚类结果的好坏也依赖于某些经验参数的选取。在针对高维数据的子空间聚类和联合聚类等算法中,虽然通过在聚类过程中选维、逐维聚类和降维从一定程度上减少了高纬度带来的影响,但它们均不可避免地带来了原始数据信息的损失和相应的聚类准确性的降低,因此,寻求这类算法在聚类质量和算法时间复杂度之间的这种也是一个重要问题。

在多媒体数据聚类的应用中,对原始数据如图像等进行特征提取,并用这些特征数据代替原始数据进行聚类,均体现了领域知识的融合。

Source:

数据挖掘中的聚类算法综述 贺 玲,吴玲达,蔡益朝

K-means聚类算法的研究 冯超

-------------------------

yanfeng1022@126.com


以上是关于聚类算法的主要内容,如果未能解决你的问题,请参考以下文章

k均值聚类算法、c均值聚类算法、模糊的c均值聚类算法的区别

「聚类分析」16聚类分析之KMeans算法与K中心点算法

聚类算法--DBSCAN

聚类算法--KMeans

聚类算法(上)06

谱聚类算法总结