9.1 聚类任务
在“无监督学习”中,训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律,为进一步的分析提供基础。这种学习任务中应用最广的是“聚类”。
聚类试图将数据集中的样本划分为若干个通常是不相交的子集,每个子集称为一个“簇”。通过这样的划分,每个簇可能对应于一些潜在的概念(类别)。聚类算法对这些概念是未知的,聚类仅能自动形成簇结构,簇所对应的概念需要由使用者来把握。聚类既能作为一个单独过程,用于找寻数据内在的分布结构,也可作为分类等其他学习任务的前驱过程。
下文讨论聚类的两个基本问题:性能度量和距离计算。
9.2 性能度量
聚类性能指标也称为“有效性指标”。直观上,好的聚类结果应当是同一簇的样本尽可能彼此相似,不同簇的样本尽可能不同。即,聚类结果的“簇内相似度”高且“簇间相似度”低。聚类性能指标有两类,一类是将聚类结果与某个“参考模型”进行比较,称为“外部指标”,一类是直接考察聚类结果而不利用任何参考模型,称为“内部指标”。
对数据集
D={x1,x2,...,xm}
,假定通过聚类给出的簇划分为
C={C1,C2,..,Ck}
,参考模型给出的簇划分为
C∗={C∗1,C∗2,...,C∗s}
。相应的,令
λ
与
λ∗
分别表示
C
和
由于每个样本对仅能出现在一个集合中,因此有 a+b+c+d=m(m−1)/2 成立。有以上各式可导出以下几个指标
1、Jaccard系数(简称JC)
2、FM指数(简称FMI)
3、Rand指数(简称RI)
上述性能度量的结果值均在[0,1]区间,值越大越好。
考虑聚类结果的簇划分 C={C1,C2,...,Ck} ,定义
其中, dist(⋅,⋅) 用于计算两个样本之间的距离; μ 代表簇C的中心点。显然有 avg(C) 对应于簇C内样本间的平均距离, diam(C) 对应于簇C内样本的最远距离, dmin(Ci,Cj) 对应于簇 Ci 与簇 Cj 最近样本间的距离, dcen(Ci,Cj) 对应于簇 Ci 与簇 Cj 中心点间的距离。基于式(9.8-9.11)可得到以下性能度量内部指数
1、DB指数(简称DBI)
2、Dunn指数(简称DI)
显然,DBI的值越小越好,DI的值越大越好
9.3 距离计算
对函数 dist(⋅,⋅) ,若它是一个距离度量,则应当满足非负性、对称性、同一性、直递性(三角形,两边之和大于第三边)等性质。给定样本 xi=(xi1,xi2,...,xin) 与样本 xj=(xj1,xj2,..,xjn) ,最常用的是“闵可夫斯基距离”,即
p=2时,闵可夫斯基距离即欧氏距离
p=1时,闵可夫斯基距离即曼哈顿距离
在讨论距离计算时,重要的是属性上是否定义了“序”关系。能够直接计算距离的是有序属性,不能直接计算距离的是无序属性。闵可夫斯基距离可用于计算有序属性。
对无序属性可采用VDM,令 mu,a 表示在属性 u 上取值为a的样本数,
将闵可夫斯基距离和VDM距离结合可处理混合属性。假定有 nc 个有序属性, n−nc 个无序属性,不失一般性,令有序属性排列在无序属性之前,则
通常我们是基于某种形式的距离来定义“相似度度量”,距离越大,相似度越小。但相似度度量的距离不一定满足距离度量的所有性质,比如直递性。这样的距离称为“非度量距离”。
9.4 原型聚类
原型聚类也被称为“基于原型的聚类”,这一类算法假设聚类结构能通过一组原型刻画,在现实聚类任务中很常用。通常,算法先对原型进行初始化,然后对原型进行迭代更新求解。下面是几种比较著名的原型聚类算法
9.4.1 k均值算法
给定样本集
D={x1,x2,...,xm}
,“k均值”(k-means)算法针对聚类所得簇划分
C={C1,C2,...,Ck}
最小化平方误差
其中 μi=1|Ci|∑x∈Cix 是簇 Ci 的均值向量。上式在一定程度上刻画了簇内样本围绕簇均值向量的紧密程度,E值越小则簇内样本相似度越高。找到上式的最优解需要考察样本集D的所有可能的簇划分,这是一个NP难问题。因此,k均值算法采用了贪心策略,通过迭代优化来近似求解。在迭代过程中,若迭代更新后聚类结果保持不变,则返回结果。
9.4.2 学习向量量化
与k均值算法类似,“学习向量量化”(Learning Vector Quantization)也是试图找到一组原型向量来刻画聚类结构。但与一般聚类算法不同,LVQ假设数据样本带有类别标记,学习过程利用这些监督信息来辅助聚类。
给定样本集
D={(x1,y1),(x2,y2),...,(xn,yn)}
,每个样本
xj
是由n个属性描述的特征向量
(xj1,xj2,...,xjn)
.LVQ的目标是学得一组n维原型向量
{p1,p2,...,pq}
,每个原型向量代表一个聚类簇,簇标记
ti∈y
。
在学的一组原型向量
{p1,p2,..,pq}
后,即可实现对样本空间的簇划分。对任意样本x,它将被划入与其距离最近的原型向量多代表的簇中。换言之,每个原型向量
pi
定义了与之相应的一个区域
Ri
,该区域中每个样本与
pi
的距离不大于它与其他原型向量
pi′
的距离。即
由此形成了对样本空间 χ 的簇划分 {R1,R2,...,Rq} ,该划分通常称为“Voronoi”剖分。
9.4.3 高斯混合聚类
与K均值、LVQ用原型向量来刻画聚类结构不同,高斯混合(Mixture of Gaussian)聚类采用概率模型来表达聚类原型。多元高斯分布的定义是,对n维样本空间
χ
中的随机向量x,若x服从高斯分布,其概率分布密度函数为
其中 μ 是n维均值向量, ∑ 是 n×n 的协方差矩阵。由上式可以看出,高斯分布完全由均值向量 μ 和协方差矩阵 ∑ 这两个参数确定。下文中将高斯分布的概率密度函数记为 p(x|μ,∑)
我们可定义高斯混合分布
该分布由k个高斯混合分布组成,每个混合成分对应一个高斯分布。从原型聚类的角度看,高斯混合聚类是采用概率模型(高斯分布)对原型进行刻画,簇划分则由原型对应后验概率确定。
9.5 密度聚类
密度聚类也被称为“基于密度的聚类”,这类算法假定聚类结构能通过样本分布的紧密程度确定。通常情况下,密度聚类算法从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终的聚类结果。
DBSCAN是一种著名的密度聚类算法,它基于一组“领域”参数来刻画样本分布的紧密程度。给定数据集
D={x1,x2,..,xn}
,该算法给出了以下概念:
1.
ε
邻域:对
xj∈D
,其
ε
邻域包含样本集D中与
xj
的距离不大于
ε
的样本,即
Nε(xj)={xi∈D|dist(xi,xj)≤ε}
;
2. 核心对象:若
xj
的
ε
邻域至少包含MinPts个样本,即
|Nε(xj)|≥MinPts
,则
xj
是一个核心对象;
3. 密度直达:若
xj
位于
xi
的
ε
邻域中,且
xi
是核心对象,则称
xj
由
xi
密度直达;
4. 密度可达:对
xi
与
xj
,若存在样本序列
p1,p2,..,pn
,其中
p1=xi,pn=xj
且
pi+1
由
pi
密度直达,则称
xj
由
xi
密度可达。
5. 密度相连:对
xi
与
xj
,若存在
xk
使得
xi
与
xj
均由
xk
密度可达,则称
xi
与
xj
密度相连。
![](https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1504109621840&di=9d0f683f7efa305b65f9ef437db5f309&imgtype=0&src=http%3A%2F%2Fimages.cnitblog.com%2Fblog2015%2F343064%2F201503%2F151606491522809.jpg)
图1 DBSCAN定义的基本概念(MinPts=3): 实线是 ε 邻域,m和o是核心对象,p/q由m密度直达,s由o密度可达,s与r密度相连。
基于这些概念,DBSCAN将簇定义为:由密度可达关系导出的最大的密度相连样本集合。在计算时,该算法随机选取数据集中的一个核心对象,生成聚类簇后,将簇中包含的核心对象从数据集中去除,再从更新后的数据集中随机选取一个核心对象来生成聚类簇,直到没有可用的核心对象。
9.6 层次聚类
层次聚类试图在不同层次对数据集进行划分,从而形成树形的聚类结构。数据集的划分可使用“自底向上”的聚合策略,也可以采用“自顶向下”的分拆策略。
AGNES是一种采用自底向上的聚合策略的层次聚类算法。它先将数据集中的每个样本都看做一个初始聚类簇,然后再算法运行的每一步中找出距离最近的两个聚类簇进行合并,该过程不断重复,直至达到预设的聚类簇个数。当聚类簇距离由最小距离/最大距离/平均距离计算时,AGNES算法被相应的称为“单连接”、“全连接”或“均连接”。