聚类分析方法的研究与应用综述
417109070529 李蓉珊
河北地质大学信息工程学院软件工程2017级503班 石家庄 050031
摘要:聚类分析是一种研究如何将相似的事物归为一类,使得组内对象相似,组间对象不同.是研究(样品或指标)分类问题的一种统计分析方法,是数据挖掘的一个重要算法。聚类是把相似的对象通过静态分类的方法分成不同的组别或者更多的子集(subset),这样让在同一个子集中的成员对象都有相似的一些属性。大数据时代,聚类这种无监督学习的算法地位尤为突出。本文章首先介绍聚类分析的基本原理,分别介绍了基于划分、基于密度、基于层次、基于网格和基于模型的聚类方法,对这五种聚类算法的主要思想以及内容进行简单的概述,并根据其特点分析每种聚类的优缺点,最后举例分析不同类型的算法在实际生活中的应用与发展。最后结合聚类分析的性能特点和应用方向,对该聚类分析未来的研究发展方向进行了展望。
关键词:聚类分析;划分;密度;层次;网络;模型;研究与展望
1.引言
聚类分析研究有很长的历史,几十年来,其重要性及与其他研究方向的交叉特性得到人们的肯定。聚类是数据挖掘、模式识别等研究方向的重要研究内容之一,在识别数据的内在结构方面具有极其重要的作用[1]。聚类主要应用于模式识别中的语音识别、字符识别等,机器学习中的聚类算法应用于图像分割和机器视觉,图像处理中聚类用于数据压缩和信息检索。聚类的另一个主要应用是数据挖掘(多关系数据挖掘)、时空数据库应用(GIS 等)、序列和异类数据分析等。此外,聚类还应用于统计科学,值得一提的是,聚类分析对生物学、心理学、考古学、 地质学、地理学以及市场营销等研究也都有重要作用。
聚类分析是一种定量方法,从数据挖掘的角度分为五种:基于划分的聚类方法、基于密度的聚类方法、基于层次的聚类方法、基于网络的聚类方法以及基于模型的聚类方法[2]。无论是从哪个角度看,其基本原则都是:希望簇(类)内的相似度尽可能高,簇(类)间的相似度尽可能低(相异度尽可能高)。这些方法虽然从不同角度使用不同的理论方法研究聚类分析,在实际应用中,聚类的定义通常不精准,最优的定义取决于聚类对象的性质和期望得到的结果[3]。
2.常用聚类方法介绍
2.1 基于划分的聚类方法
基于划分的聚类方法是一种自顶向下的方法,对于给定的 n 个数据对象的数据集 D,将数据对象组织成 k(k≤n) 个分区,其中,每个分区代表一个簇。它是保持簇内对象相似性高,簇外对象差异高。该方法的划分大多是基于距离的,其原理是:首先选择K 个初始聚类中心点;然后数据加入到距离中心点最近中;其次重新计算新类中心点,并作为新的中心点。主要优点是,收敛速度快.主要缺点是,它要求类别数目 k 可以合理地估计,并且初始中心的选择和噪声会对聚类结果产生很大影响。基于划分的聚类方法中主要包括K-Means算法、K-modes算法、PAM算法和CLARA算法等[4]。
K-means算法是经典的基于划分的聚类算法。其核心思想为:在随机选取 K 个簇中心点的基础上,计算样本中其他点与这 K 个簇中心点的距离,实现样本点的分类,分到同一类的样本点再更新簇中心点。由此不断循环直到K个簇中心变。K 个簇中心点是 k-Means 算法中的输入参数,新的簇中心会根据当前分类的簇按照欧拉公式来计算得到。目的是让每个簇内的数据点尽量靠近本簇中心,远离其他簇中心。在迭代计算的时候, k-Means 把每个数据点分配给距离最近的簇中心群, 直至新计算出的簇中心点与上一步生成的簇中心点一致,停止迭代,输出所属类别[5]。其优点有:简单、快速;对于处理大数据集,该算法是相当可伸缩和高效率的,当结果簇是密集的,它的效果较好。缺点为一旦初始值选择的不好,可能无法得到有效的聚类结果,有可能陷入局部最优;需要不断地进行样本分类调整,不断地计算调整后的新的聚类中心,因此当数据量非常大时,算法的时间开销是非常大的;对噪声和孤立点数据敏感[6]。
2.2 基于密度的聚类方法
基于密度的聚类方法是从数据对象分布区域的密度着手的。如果给定类中的数据对象在给定的范围区域中,则数据对象的密度超过某一阈值就继续聚类。选取一个数据作为中心,求出在单位体积内的数据样本的个数,即样本的密度,再选定一个阈值,作为高密度区域和低密度区域的筛选标准[7]。只要一个区域中的点的密度大于某个域值,就把它加到与之相近的聚类中去。对于簇中每个对象,在给定的半径ε的邻域中至少要包括最小数目(MinPts)个对象。这种方法通过连接密度较大的区域,能够形成不同形状的簇,而且可以消除孤立点和噪声对聚类质量的影响,以及发现任意形状的簇[8]。基于密度的聚类方法中主要包括的是 DBSAN 算法、OPTICS 算法和 DENCLUE 算法。
DBSCAN算法是经典的基于密度的聚类算法。其核心思想为:它将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在有“噪声”的空间数据库中发现任意形状的聚类。其优点有:可以自动确定聚类数量;对任意形状的簇都适用;对数据异常点不敏感。缺点为需要设置距离和密度阈值,处理空间分布稀疏的数据对象时难以得到满意的聚类结果,时间复杂度比K-Means算法高[9]。
2.3 基于层次的聚类方法
基于层次的聚类方法是对样本集合进行合并或者分裂,直到满足某一个终止条件,聚类结果将样本组成一棵聚类树。该算法根据层次分解的顺序分为自底向上法和自顶向下法,即凝聚式层次聚类算法和分裂式层次聚类算法。主要优点是,距离和规则的相似度容易定义,限制少,不需要预先制定簇的个数,可以发现簇的层次关系。主要缺点是,计算复杂度太高,奇异值也能产生很大影响,算法很可能聚类成链状[10]。
凝聚式层次聚类算法:每个数据对象都是一个簇,计算数据对象之间的距离,每次将距离最近的点合并到同一个簇。然后,计算簇与簇之间的距离,将距离最近的簇合并为一个大簇。不停地合并,直到合成了一个簇,或者达到某个终止条件为止。簇与簇的距离的计算方法有最短距离法、中间距离法、类平均法等,其中,最短距离法是将簇与簇的距离定义为簇与簇之间数据对象的最短距离[11]。自底向上法的代表算法是AGNES算法。
分裂式层次聚类算法:该方法在一开始所有个体都属于一个簇,然后逐渐细分为更小的簇,直到最终每个数据对象都在不同的簇中,或者达到某个终止条件为止。自顶向下法的代表算法是 DIANA算法。
2.4 基于网络的聚类算法
基于网格的聚类方法将空间量化为有限数目的单元,可以形成一个网格结构,所有聚类都在网格上进行。基本思想就是将每个属性的可能值分割成许多相邻的区间,并创建网格单元的集合。每个对象落入一个网格单元,网格单元对应的属性空间包含该对象的值.基于网格的聚类方法的主要优点是处理速度快,其处理时间独立于数据对象数,而仅依赖于量化空间中的每一维的单元数。这类算法的缺点是只能发现边界是水平或垂直的簇,而不能检测到斜边界[12]。另外,在处理高维数据时,网格单元的数目会随着属性维数的增长而成指数级增长。网格聚类中的常见算法有 STING算法,Wave Cluster 算法,CLIQUE 算法,MAFIA 算法,Opti Grid 算法等。
CLIQUE算法是一种高维度数据的自动子空间聚类算法,它综合了基于密度和基于网络方法,对于大型数据库的子空间中识别稠密的聚类,所产生的理解结果与所给的输入数据无关。其核心思想为:给定一个多维数据点的大集合,数据点在数据空间中通常不是均衡分布的。CLIQUE区分空间中稀疏的和“拥挤的”区域,以发现数据集合全局分布模式。将数据空间中的每个维划分成等长且数量相等的间隔段,即单元。如果一个单元中的包含数据点超过了某个输入模型参数,则该单元是密集的。在CLIQUE中一个聚类被定义为相连的密集单元的最大集合[13]。其优点是,能自动地发现最高维的子空间,对元组的输入顺序不敏感,无需假设任何规范的数据分布。随输入数据的大小线性地扩展,当数据的维数增加时具有良好的可伸缩性。其缺点是,由于方法大大简化,聚类的精确性可能会降低。
2.5 基于模型的聚类算法
基于模型的聚类算法,它假设每个聚类的模型并发现适合相应模型的数据,需要为数据对象中的可能存在的每一簇构建一个分布模型,并假设数据对象均独立分布,通过数据对象的真实分布计算模型参数,最后利用所得模型完成聚类[14]。基于模型的方法主要包括统计学和网络神经方法,其中统计学方法有COBWEB算法;网络神经方法有SOM算法。基于模型的聚类方法通常以概率的形式对簇进行划分,易于理解,但是算法的执行效率并不高,同时假设条件不一定成立,对聚类结果也造成一定影响。
COBWEB方法:是一个常用的且简单的增量式概念聚类方法。它的输入对象是采用符号量(属性-值)对来加以描述的。采用分类树的形式来创建一个层次聚类。CLASSIT是COBWEB的另一个版本。它可以对连续取值属性进行增量式聚类。它为每个结点中的每个属性保存相应的连续正态分布(均值与方差);并利用一个改进的分类能力描述方法,即不象COBWEB那样计算离散属性(取值)和而是对连续属性求积分[15]。但是CLASSIT方法也存在与COBWEB类似的问题。因此它们都不适合对大数据库进行聚类处理.
3.聚类算法的实例应用
3.1系统聚类算法分析新疆绿洲生态经济类型
首先,算法需建立一个标准体系,然后分析主成分并对 初始数据进行筛选,接着用各地理区域划分的系统聚类法对数据进行聚类 (Q 型聚类)。其中,算法采用最长距离法作为聚类分析的方法,并采用欧氏距离衡量,确定计算距离的方法,得出初始距离矩阵D,并将距离最大的两个区域合并,然后不断重复该步骤,直到整体都被囊括其中,绘制图谱。采用系统聚类算法,最终将新疆的87个市县划分为十大类型,有利于更加系统地分析各地区的生态经济[16]。
3.2 密度聚类应用于排查交通事故
一般情况下,交通事故多发地可以理解为:在同等条件下,该地更易发生交通事故,发生事故的数量更多,即发生交通事故的密度更大[17]。可采用密度聚类在排查交通事故时对交通黑点进行统计分析,其基本思想是不停地寻找临近的对象来使中心对象周边环境的密度增加,最终找到路段内的查找点。查找点即为交通事故多发地,算法中所涉及的 a 邻近区域可理解为距离的千米数。还需设定一个阈值,该阈值之上则可被定义为“事故多发”。所以,智能排查可理解为,对于每一个交通事故而言,距其发生地点的 a 千米内的其他所有交通事,故之和必须不小于某值即临域的密度不小于规定阈值。
3.3层次聚类分析在环境监测数据分析中的应用
层次聚类分析可有效降低原始监测数据集的维度,简化数据的复杂程度,以监测点位、时间、指标和污染评价结果等为对象进行聚类分析,便于分析各指标时空分布特征及指标间的相关性。适用于不同环境介质监测过程获得的数据。近年来,层次聚类分析作为传统多元统计方法,常用于地表水、地下水、大气和土壤环境监测数据分析。对地表水体的监测点位和时间进行层次聚类分析,可得到若干点位集群和时间集群,监测点位和时间的层次聚类分析结果可作为采样断面和频率优化的重要依据,可有效降低采样成本。除分析监测数据集的时空变化特征外,层次聚类分析也用于监测指标的统计分析,便于判别污染来源。层次聚类分析在城市、农村等土壤环境污染溯源方面取得了较好的效果,但该方法在建设用地土壤污染状况调查数据统计分析中的应用鲜有报道[18]。利用层次聚类分析具体地块土壤污染调查监测数据集,既可体现污染物在采样点位的分布特征,又能判别检出污染物之间的相似程度,有助于深入剖析地块土壤污染状况和污染来源。
3.4 聚类分析在销售片区确定中的应用
销售片区的确定和片区经理的任命在企业的市场营销中发挥着重要的作用。只有合理地将企业所拥有的子市场归成几个大的片区,才能有效地制定符合片区特点的市场营销战略和策略,并任命合适的片区经理。聚类分析在这个过程中的应用可以通过一个例子来说明。某公司在全国有20个子市场,每个市场在人口数量、人均可支配收入、地区零售总额、该公司某种商品的销售量等变量上有不同的指标值[19]。以上变量都是决定市场需求量的主要因素。把这些变量作为聚类变量,结合决策者的主观愿望和相关统计软件提供的客观标准,接下来就可以针对不同的片区制定合理的战略和策略,并任命合适的片区经理了。
3.5 聚类分析在市场机会研究中的应用
企业制定市场营销战略时,弄清在同一市场中哪些企业是直接竞争者,哪些是间接竞争者是非常关键的一个环节。要解决这个问题,企业首先可以通过市场调查,获取自己和所有主要竞争者在品牌方面的第一提及知名度、提示前知名度和提示后知名度的指标值,将它们作为聚类分析的变量,这样便可以将企业和竞争对手的产品或品牌归类。根据归类的结论,企业可以获得如下信息:企业的产品或品牌和哪些竞争对手形成了直接的竞争关系。通常,聚类以后属于同一类别的产品和品牌就是所分析企业的直接竞争对手[20]。在制定战略时,可以更多的运用“红海战略”。在聚类以后,结合每一产品或品牌的多种不同属性的研究,可以发现哪些属性组合目前还没有融入产品或品牌中,从而寻找企业在市场中的机会,为企业制定合理的“蓝海战略”提供基础性的资料。
4.聚类算法的新发展
聚类分析的应用相当广泛。在商务上, 聚类能帮助市场分析人员从消费者信息库中发现不同的消费群体, 并且用购买模式来刻画不同的消费群体的特征。在生物学上, 聚类可以被用来辅助研究动植物的分类, 可以用来分类具有相似功能的基因, 还可以用来发现人群中的一些潜在的结构。聚类分析也可以用于在泥土观测数据库中对相似地区的区分, 也可以根据房子的类型,价值和地域对一个城市中的房屋进行分类。聚类还可以用来从空间数据库中识别出具有相似特征的空间对象;可以从保险公司的数据库中发现汽车保险中具有较高索赔概率的群体;还可以用来分类万维网上不同类型的文档, 或分析日志web以发现特殊的访问模式等[21]。
但是由于每一种方法都有缺陷,再加上实际问题的复杂性和数据的多样性,使得无论哪一种方法都只能解决某一类问题。近年来,随着人工智能、机器学习、模式识别和数据挖掘等领域中传统方法的不断发展以及各种新方法和新技术的涌现,聚类分析方法得到了长足的发展[22]。整体来看,主要围绕样本的相似性度量、样本归属关系、样本数据的前期处理、高维样本聚类、增量样本聚类等几个方面展开研究。下面举例几种新算法。
4.1 基于粒度的聚类算法
从表面上看,聚类和分类有很大的差异,聚类是无导师的学习,而分类是有导师的学习。更进一步地说,聚类的目的是发现样本点之间最本质的抱团性质的一种客观反映;分类在这一点上却不大相同。分类需要一个训练样本集,由领域专家指明哪些样本属于一类,哪些样本数据属于另一类,但是分类的这种先验知识却常常是纯粹主观的。如果从信息粒度的角度来看的话,就会发现聚类和分类有很大的相通之处:聚类操作实际上是在一个统一粒度下进行计算的;分类操作是在不同粒度下进行计算的[23],所以说在粒度原理下,聚类和分类是相通的,很多分类的方法也可以用在聚类方法中。基于粗糙集理论,分析等价关系与粒度之间的关系,根据数据对象之间的相对相似性形成初始等价关系和等价类,每个等价类对应一个粒度[24]。引入等价关系隶属度因子γ来度量等价关系间隶属关系,并控制聚类的规模,通过迭代计算聚类的有效性,得到优化的聚类结果。
4.2 谱聚类算法
BUHMANN J M[25]提出了谱聚类算法,该类方法建立在谱图理论基础之上,并利用数据的相似矩阵的特征向量进行聚类,使得算法与数据点的维数无关,而仅与数据点的个数有关,因而统称为谱聚类方法。谱聚类算法是一种基于两点间相似关系的方法,这使得该方法适用于非测度空间。与其他方法相比,该方法不仅思想简单、易于实现、不易陷入局部最优解,而且具有识别非凸分布的聚类能力,非常适合于许多实际应用问题。在针对谱聚类对分析尺度的选择敏感的问题,给出了一种基于密度敏感的相似性度量,它可以放大不同高密度区域内数据点间距离,同时缩短同一高密度区域内数据点间距离,最终有效描述数据的实际聚类分布[26];为了在聚类搜索过程中充分利用先验信息会显著提高聚类算法的性能。因此通过讨论数据集本身固有的先验信息(空间一致性先验信息),设计出一种基于密度敏感的距离测度的方法 [27] 。
4.3 高维聚类算法
样本点维度极高的聚类算法,称为高维聚类算法。由于高维数据存在的普遍性,使得对高维数据的聚类已经成为近几年研究的一个热点。高维数据聚类的特点是:随着维数增长,聚类的时间和空间复杂度迅速上升从而导致算法的性能下降;高维数据集中存在大量无关的属性,并且在这些不相关的维上十分稀疏,这就使得在所有维中存在簇的可能性几乎为零,所以传统的聚类算法不适合对高维数据进行聚类;距离函数难于定义,聚类操作的基础是数据对象之间相似性的度量,相似度高的对象归为一类[28]。但在高维情况下距离函数失效,因此必须通过重新定义合适的距离函数或相似性度量函数以避开“维度效应”的影响。对于高维数据而言,针对高维数据的稀疏性、空间和维灾等特征,目前主要有两个研究思路:一个是通过选维、降维技术去除与数据簇不相关的维,然后再使用聚类算法对转换后的数据进行聚类,这里给出目前最新的投影寻踪法。另一类是子空间聚类,该类算法从数据集中找不同子空间中的簇[29]。
5.总结
聚类算法正在走一条综合了机器学习、数据挖掘、模式识别、物理等领域的研究成果,不断创新发展的道路。本文通过对各种经典聚类算法的基本知识、实例应用、聚类算法的发展等进行了较为翔实的阐述的基础上,给出了聚类算法的发展趋势,没有任何一种聚类技术(聚类算法)可以普遍适用于揭示各种多维数据集所呈现出来的多种多样的结构。根据数据在聚类中的积聚规则以及应用这些规则的方法,有多种聚类算法。聚类算法的聚类结果有一定的不可预见性,在实际应用中应根据数据类型选择合适的聚类算法,以取得最佳的聚类效果。
参考文献
[1]M. R. Rao. Cluster Analysis and Mathematical Programming[J]. M. R. Rao,2012,66(335).
[2]杨佳润.数据挖掘之聚类分析算法综述[J].通讯世界,2017(16):291.
[3]李金广.数据挖掘中聚类算法研究综述[J].中国科技信息,2010(17):48-49.
[4]王玉晗,罗邓三郎.聚类算法综述[J].科技资讯,2018,16(24):10-11.
[5]顾洪博.基于k-means算法的k值优化的研究与应用[J].海南大学学报(自然科学版),2009,27(04):386-389.
[6]李荟娆. K-means聚类方法的改进及其应用[D].东北农业大学,2014.
[7]宋坤.聚类算法综述[J].河南科技,2015(22):254.
[8]伍育红.聚类算法综述[J].计算机科学,2015,42(S1):491-499+524.
[9]高旭,桂志鹏,隆玺等.KDSG-DBSCAN:一种基于K-D Tree和Spark GraphX的高性能DBSCAN算法[J].地理与地理信息科学,2017,33(06):1-7+127.
[10]姜子林.层次聚类的方法及应用[J].电子技术与软件工程,2018(01):179-180.
[11]Satoshi Takumi,Sadaaki Miyamoto. Agglomerative Hierarchical Clustering Without Reversals on Dendrograms Using Asymmetric Similarity Measures[J]. Journal of Advanced Computational Intelligence and Intelligent Informatics,2012,16(7).
[12]孙昭颖,刘功申.面向短文本的神经网络聚类算法研究[J].计算机科学,2018,45(S1):392-395.
[13]高亚鲁,宋余庆,朱玉全.改进的CLIQUE优化算法[J].计算机工程与设计,2009,30(16):3801-3804.
[14]杨天鹏,陈黎飞.基于概率模型的非均匀数据聚类算法[J].计算机应用,2018,38(10):2844-2849+3029.
[15]徐泉清,朱玉文,李亮,刘万春.一种结合粗糙集和Cobweb的聚类器[J].计算机应用,2005(06):1350-1352.
[16]李秀萍,杨德刚,韩剑萍.应用主成分分析、聚类分析划分新疆绿洲生态经济类型的初步研究[J].干旱区地理,2002(03):264-271.
[17]张昳. 基于凝聚层次聚类的城市道路交通运行状态评价研究[D].哈尔滨工业大学,2018.
[18]秦松柏,欧阳正平,程天舜.分层聚类分析在水文地球化学分类中的应用[J].地下水,2008, 30(1):21-24.
[19]海沫,张书云,马燕林.分布式环境中聚类问题算法研究综述[J].计算机应用研究,2013,30(09):2561-2564.
[20]邓林培.经典聚类算法研究综述[J].科技传播,2019,11(05):108-110.
[21] 周涛,陆惠玲.数据挖掘中聚类算法研究进展[J].计算机工程与应用 , 2012, 48(12):100-111.
[22]章永来,周耀鉴.聚类算法综述[J].计算机应用,2019,39(07):1869-1882.
[23] 卜东波,白硕,李国杰.聚类/分类中的粒度原理[J].计算机学报,2002,25(8):810-816.
[24] 徐丽,丁世飞.粒度聚类算法研究[J].计算机科学,2011,38(8):25-29.
[25] Buhmann J M.Data clustering,learning[M]//Arbib M A.The Handbook of Brain Theory and Neural Networks.[S.l.]:MIT Press,1995.
[26] 王玲,薄列峰,焦李成.密度敏感的谱聚类[J].电子学报,2007,35(8):1577-1581.
[27] 王玲,薄列峰,焦李成.密度敏感的半监督谱聚类[J].软件学报,2007,18(10):2412-2422.
[28]陈俊芬,张明,赵佳成.复杂高维数据的密度峰值快速搜索聚类算法[J].计算机科学,2020,47(03):79-86.
[29]周开乐,杨善林,丁帅,罗贺.聚类有效性研究综述[J].系统工程理论与实践,2014,34(09):2417-2431.