K-means后数据聚类的50年发展
1. 引言
传感和存储技术的进步以及像互联网搜索、数字成像、视频监控等技术应用的迅猛发展产生了大量的高维数据集。
数据数量和类别两方面的增长迫切的需要自动理解、处理和概括数据的方法的进步。数据分析方法可以概括的分为
在模式识别中,数据分析涉及预测建模:给定一些训练数据,我们想要预测未知测试数据的行为。这个任务也被叫
图1. 学习问题:圆点表示不带有标签的点。带有标签的点由加号、星号和叉号表示。在图(c)中,必须连接
2. 数据聚类
数据聚类或者说聚类分析的目标是发现一系列模式、点或者对象的天然的分组情况。Webster(Merri
图2. 各种各样的簇。图(a)(在图1(b)中由7种不同的颜色表示)中的7个簇在形状、大小和密度上都
聚类的一种实用性定义可以表示如下:给定n个对象的某种表示,找到基于相似度测量的K个分组使得在
2.1. 为什么要聚类?
在任何涉及多变量数据分析的学科中聚类分析都是很普遍的。通过谷歌学术搜索引擎(2009)搜索关
数据聚类主要被用在以下三个地方:
(a)构造底层结构:获得对数据的深入了解,产生假设,侦测异常,识别特征。
(b)自然分类:识别形式或生物间的相似程度(系统发育关系)。
(c)压缩:通过聚类原型作为一种组织和概括数据的方法。
图3是类别发现的一个例子。这里聚类被用在一个在线手写字符识别应用程序中来发现不同的子类(Connel
图3. 使用数据聚类找到子簇。图(a)和(b)以两种不同的方式写数字2;图(c)是字符‘f’的三种不
给定大量的英特网上的网页,很多查询词条会典型的返回大量的网页可点击数。这产生了对组织搜索结果的需要。
2.2. 历史发展
聚类方法的发展确实是多学科共同努力的结果。分类学家、社会科学家、心理学家、生物学家、统计学家、数学家
聚类算法可以粗略的分为两组:基于层次的和基于划分的。基于层次的聚类算法使用凝聚的模式(从将每个数据点
最著名的基于层次的算法是单一连接和完全链接;最受欢迎也最简单的基于划分的算法是K-means。由于可
2.3. K-means算法
令X={xi},i=1,...,n是要用来分成K个簇C={ck,k=2,...,K}的d维点集。K-
1.选择一个有K个簇的初始划分;重复步骤2和3直到每个聚类中的对象稳定。
2.通过将每个模式分配给各距离簇中心最近的簇产生一个新的划分。
3.计算新簇中心。
图4是一个有三类的2维数据集K-means算法的例子。
图4. K-means算法的例子。图(a)表示有三个簇的二维输入数据;图(b)表示了用作簇中心的三个
2.4. K-means的参数
K-means算法需要用户确定三个参数:类的数目K、类的初始化、距离尺度。其中最重要的参数是K。因为
K-means一般会选择欧几里得距离作为距离尺度来计算点和簇中心之间的距离。因此K-means找到的
2.5. K-means的扩展
基础的K-means算法已经被很多不同的方式扩充了。有些扩充使用额外的试探性方法处理簇尺寸最小化,合
2.6. 聚类的主要方法
就像之前提到的一样,在很多不同的学科的文献中提出了数以千计的聚类算法。这使得回顾所有这些已经发表的方
簇可以被定义为在特征空间中由低密度区域分开的高密度区域。算法根据这个簇的定义直接搜索特征空间中连通的
虽然基于密度的方法,尤其是无参数的基于密度的方法因为可以处理任意形状的簇的内在性质而很有吸引力,但是
图论聚类,有时也被叫做谱聚类,用一个加权的图代表数据点。连接两个节点之间的边由对间相似度加权。主要思
有些聚类算法有一个信息理论公式。比如,Roberts et al.(2001)提出的最小熵方法假设数
3. 用户的困境
尽管有如此大量的聚类算法,而且这些算法也在许多不同的领域成功应用,聚类仍然是一个困难的问题。这可以归
(Jain和Dubes,1998)强调以下聚类的主要挑战,这即使到今天来看依然是中肯的。
(a)什么是一个簇?
(b)应该使用哪些特征?
(c)数据需要标准化吗?
(d)数据是否有异常值?
(e)怎样定义对间相似度?
(f)数据中有多少簇?
(g)应该使用哪个聚类方法?
(h)数据是否有聚类趋势?
(i)发现的簇和划分是否有效?
以下我们会强调和举例说明其中一些挑战。
3.1. 数据表示法
数据表示是影响聚类算法性能最重要的因素之一。如果表示法(特征的选择)很好,那么簇很有可能是紧凑而孤立
图5. 一个好的表示法的重要性。图(a)表示K-means无法找出“自然”簇的“两环”数据集;虚线表
3.2. 分组的目的
数据的表示和分组的目的密切联系。表示法必须和用户最终的目的相配合。(Pampalk et al.,2
图6. 数据特征的不同权重导致数据的不同划分。16种动物由与外形和活动相关的13个布尔特征值表示。图
3.3. 簇的数目
自动确定簇的数目是数据聚类中最困难的问题之一。大部分自动确定簇数目的方法是将其转化为模型选择问题。通
图7. 簇数目K的自动选择。图(a)表示由6个高斯分布混合产生的输入数据;图(b)-(d)各自表示适
3.4. 簇的有效性
聚类算法倾向于找到数据中的簇而不考虑是否有簇的存在。图8a展示了一个没有自然聚集的数据集;这里所有的
图8. 聚类有效性。图(a)表示没有自然聚集情况的数据集;图(b)表示K-means当K = 3时的
聚类有效性指标可以基于3个不同的准则来定义:内部的、外部的和相对的(Jain和Dubes,1988)
图9. 15个二维模式的几个聚类结果:图(a)表示15个模式;图(b)表示15个模式的最小生成树;图
3.5. 比较聚类算法
即使对于相同的数据不同的聚类算法往往会产生完全不同的划分。在图9中,7种不同的算法被用来聚类15个二
图10. 聚类算法的聚类结果。图(a)表示35种不同算法的层次聚类结果;图(b)表示通过将35种算法
一个有趣的问题是如何确定不管数据如何变化,都能产生相似划分的算法。换句话说,我们能对聚类算法进行聚类
聚类算法也可以基于目标函数在理论层面上进行比较。为了进行这样的比较,聚类方法和聚类算法之间的差异应该
以上这些讨论说明了聚类的一个很重要的事实:没有最好的聚类算法。每一种聚类算法都或明确或含蓄的给数据一
3.5. 聚类算法的容许性分析
Fisher和vanNess(1971)正式以比较聚类算法和为选择聚类步骤提供指导为目标分析了聚类算
(a)凸状:一个聚类算法聚类结果的簇的凸壳并不相交则称该聚类算法是是凸状容许的。
(b)簇均衡:如果聚类算法的结果使一些簇复制任意次数情况下,簇的边界都不改变,那么就称这个聚
(c)簇冗余:如果从聚类算法结果中移除其中一个簇的数据,再运行算法,得到的K-1个簇和未再运
(d)单调:如果当相似度矩阵元素单调改变时,聚类算法结果不发生改变,那么就称该聚类算法是单调
Fisher和Van Ness证明不能设计出满足一定容许准则的算法。比如,如果一个算法是单调容许的,
Kleinberg(2002)指出了一个相似的问题,并定义了三个准则:
(a)标度不变性:任意标度的相似度矩阵不改变聚类结果。
(b)丰富性:聚类算法能获得数据的所有可能划分。
(c)一致性:收缩簇内距离和拉伸簇间距离,聚类结果并不改变。
Kleinberg也提供了和(Fisher与VanNess,1971)相似的结论,表明设计出同时满足
4. 数据聚类的趋势
信息爆炸不仅仅是创造了大量的数据,同时也创造了包括有结构的和无结构的多样化的数据。无结构的数据是指一
4.1. 聚类集成
有监督学习的集成方法应用的成功激发了无监督学习集成方法的发展(Fred和Jain,2002)。主要思
图11. 聚类集成。通过多次运行K-means,基于簇中点的“共现”学习对间相似度。这种相似度可以被
有很多方法用于产生聚类集成和综合划分结果。比如多重数据划分可以通过以下方法产生:(i)应用不同的聚类
4.2. 半监督聚类
聚类问题本身是一个病态问题。它的目标是只基于固有的信息将数据划分成不知道簇数目的簇。聚类问题数据驱动
图12是半监督学习在图像分割中应用的一个例子(Lange et al.,2005)。图12a表示用于
图12. 半监督学习。图(a)表示由5种均匀质地区域组成的输入图像;像素点之间必须连接(蓝色实线)和
大部分半监督聚类方法(Bar-Hillel et al.,2003;Basu et al.,2004
图13. 随着对间约束增加BoostCluster(使用标准化的交互信息(NMI)来衡量)的性能变化
4.3. 大规模聚类
大规模数据聚类处理关于由数以千计特征表示的有数以百万计数据点的数据集的聚类问题的挑战。表1展示了一些
表1. 大规模数据聚类应用的例子
基于内容的图像检索(CBIR)的目标是根据给定的查询图像检索出看上去相似的图像。虽然大概过去的15年
图14.使用SIFT关键点表示的三个纹身。图(a)表示一对相似图像间有370个一致的关键点;图(b)
另一方面,文本检索的应用要快很多。在Google大概只需要十分之一秒就能检索100亿的文档。一个图像
能够有效处理大规模数据集的聚类算法已经开发了很多了。大部分这些研究可以被分成四类:
(a)有效最近邻(NN)搜索:在任何聚类算法中的一个基本操作是确定每个数据点的簇身份,而这需
(b)数据概括:它的目标是通过先将大数据集概括为相对小的子集,然后应用聚类算法对概括后的数据
(c)分布式计算:这一类方法(Dhillon和Modha,1999)将数据聚类算法的每个步骤
(d)增量聚类:这类算法,比如(Bradley et al.,1998)设计对数据进行单次扫
(e)基于抽样的方法:像CURE(Guha et al.,1998;Kollios et a
4.4. 多方式聚类
被用来聚类的对象或者实体往往是相关的不同成分的一个组合。比如,一个文档是由字、标题、作者和引文等组成
共同聚类(Hartigan,1972;Mirkin,1996)试图对数据实体和特征同时进行聚类(或者
共同聚类框架被拓展到多方式聚类(Bekkerman et al.,2005),通过聚类对象集的同时也
4.5. 异构数据
在传统的模式识别设定中,一个特征向量由一个对象的不同特性的衡量组成。对几种类型的数据来说这种对象的表
排名数据:考虑不同的人对n部电影排名所生成的数据集,n个对象中只有一些被排名了。任务是聚类排名相似的
动态数据:动态数据和静态数据相反,比如博客、网页等会随着时间进程而发生改变。当数据修改之后,聚类结果
图数据:有些对象,比如说化合物、蛋白质结构等可以非常自然的用图来表示。很多最初的关于图聚类的工作专注
关系型数据:另一个吸引大量兴趣的方面是聚类关系型(网络)数据。不像以划分图集为不相交的组为目的的聚类
5. 总结
对数据进行合理的分组问题很自然的出现在很多科学领域。因此见证数据聚类的不断流行并不令人惊讶。记住聚类
聚类在数据分析领域有许多成功的案例。尽管如此,机器学习和模式识别领域还需要处理许多问题,用于提高我们
(a)研究群体需要可用的一系列基准数据(有地面事实的)来测试评估聚类方法。基准数据应该来自不
(b)我们需要聚类算法和应用需要之间更加紧密的整合。比如,有些应用只需要产生一些紧密结合的簇
(c)无论原则(或目标),大部分聚类方法最后都转化为组合优化问题,它的目的是找到优化目标的数
(d)关于聚类的一个基本问题是它的稳定性和一致性。一个好的聚类原则应该使得在数据中有扰动情况
(e)根据对已有公设的满足来选择聚类原则。尽管有Kleinberg的不可能理论,有些研究已经
(f)考虑到聚类本身的困难,这使得开发半监督聚类算法变得更有意义。它可以使用有标识的数据和(
致谢
我要感谢国家科学基金和海军研究办公室对我关于数据聚类、降维、分类和半监督学习的研究工作的支持。我要感
参考文献