9.聚类

9.1.聚类任务

聚类是一种经典的无监督学习方法,无监督学习的目标是通过对无标记训练样本的学习,发掘和揭示数据集本身潜在的结构与规律,即不依赖于训练数据集的类标记信息。聚类则是试图将数据集的样本划分为若干个互不相交的类簇,从而每个簇对应一个潜在的类别。

聚类直观上来说是将相似的样本聚在一起,从而形成一个类簇(cluster)。那首先的问题是如何来度量相似性(similarity measure)呢?这便是距离度量,在生活中我们说差别小则相似,对应到多维样本,每个样本可以对应于高维空间中的一个数据点,若它们的距离相近,我们便可以称它们相似。那接着如何来评价聚类结果的好坏呢?这便是性能度量,性能度量为评价聚类结果的好坏提供了一系列有效性指标。

9.2.性能度量

聚类性能:评估聚类好坏的指标。

直观的理解:簇内相似度高,簇间相似度低。

一般聚类有两类性能度量指标:外部指标和内部指标。

*外部指标:与某个参考模型比较,如该领域专家给出的划分结果。

*内部指标:不利用外部指标而直接考察聚类结果

外部指标

《西瓜书》-9.聚类

《西瓜书》-9.聚类

a:在C中同簇,C*中也同簇

b:在C中同簇,C*中不同簇

c:在C中不同簇,C*中同簇

d:在C中不同簇,C*中也不同簇

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

对于式(9.5)

给定两个集合《西瓜书》-9.聚类《西瓜书》-9.聚类,则Jaccard系数定义为如下公式

《西瓜书》-9.聚类

现在假设集合《西瓜书》-9.聚类中存放着两个样本都同属于聚类结果同一个类的样本对,即《西瓜书》-9.聚类,集合《西瓜书》-9.聚类中存放着两个样本都同属于参考模型同一个类的样本对,即《西瓜书》-9.聚类,那么根据Jaccard系数的定义有:

《西瓜书》-9.聚类

对于式(9.6)

其中《西瓜书》-9.聚类《西瓜书》-9.聚类为两个非对称指标,《西瓜书》-9.聚类代表两个样本在聚类结果和参考模型中均属于同一类的样本对的个数,《西瓜书》-9.聚类代表两个样本在聚类结果中属于同一类的样本对的个数,《西瓜书》-9.聚类代表两个样本在参考模型中属于同一类的样本对的个数

这两个非对称指标均可理解为样本对中的两个样本在聚类结果和参考模型中均属于同一类的概率。由于指标的非对称性,这两个概率值往往不一样,这里利用几何平均数将这两个非对称指标转化为一个对称指标,即FMI。

对于式(9.7)

Rand Index定义如下

《西瓜书》-9.聚类

可以简单理解为聚类结果与参考模型的一致性。

部指标

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

对于式(9.12)

分子表示任意两个簇的簇内平均距离的和,越小越好;分母表示这两个簇的中心点的距离,越大越好,所以整体这个式子越小越好。

对于式(9.13)

分子表示任意两个簇的最近样本间的距离,越大越好;分母表示这两个簇的簇内样本间的最远距离,越小越好,所以整体这个式子越大越好。

9.3.距离计算

谈及距离度量,最熟悉的莫过于欧式距离了,即对应属性之间相减的平方和再开根号。度量距离还有其它的很多经典方法,通常它们需要满足一些基本性质:

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

式(9.18)即为《西瓜书》-9.聚类《西瓜书》-9.聚类范数《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类时,则得到切比雪夫距离。

 

若我们定义的距离计算方法用来度量相似性,例如下面将要讨论的聚类问题,即距离越小,相似性越大,反之距离越大,相似性越小。这时距离的度量方法并不一定需要满足前面所说的四个基本性质,这样的方法称为:非度量距离(non-metric distance)。

例如有这样的相似度度量:“人”“马”分别与“人马”相似,但“人”与“马”很不相似;要达到这个目的,可以令“人”“马”与“人马”之间的距离都比较小,但“人”与“马”之间的距离很大,如图所示,此时该距离不再满足直递性。

《西瓜书》-9.聚类

9.4.k-means聚类

原型聚类即“基于原型的聚类”(prototype-based clustering),原型表示模板的意思,也就是样本空间具有代表性的点,通过参考一个模板向量或模板分布的方式来完成聚类的过程。

k均值(k-means)算法的思想十分简单,首先随机指定类中心,根据样本与类中心的远近划分类簇,接着重新计算类中心,迭代直至收敛。

《西瓜书》-9.聚类

最小化式(9.24)并不容易,找到它的最优解需考察样本集D所有可能的簇划分,这是一个NP难问题。因此,k均值算法采用了贪心策略,通过迭代优化来近似求解式(9.24)

下面以西瓜数据集4.0为例来演示k均值算法的学习过程.为方便叙述,我们将编号为《西瓜书》-9.聚类的样本称为《西瓜书》-9.聚类,这是一个包含“密度”与“含糖率”两个属性值的二维向量。

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

更新当前均值向量后,不断重复上述过程,如下图所示,第五轮迭代产生的结果与第四轮迭代相同,于是算法停止,得到最终的簇划分.

《西瓜书》-9.聚类

《西瓜书》-9.聚类

9.5.学习向量量化(LVQ)

学习向量量化(LVQ)也是基于原型的聚类算法,与K-Means不同的是,LVQ使用样本真实类标记辅助聚类。

首先LVQ根据样本的类标记,从各类中分别随机选出一个样本作为该类簇的原型,从而组成了一个原型特征向量组,接着从样本集中随机挑选一个样本,计算其与原型向量组中每个向量的距离,并选取距离最小的原型向量所在的类簇作为它的划分结果,再与真实类标比较。

若划分结果正确,则对应原型向量向这个样本靠近一些,若划分结果不正确,则对应原型向量向这个样本远离一些。

9.6.高斯混合模型(GMM)

现在可以看出K-Means与LVQ都试图以类中心作为原型指导聚类,高斯混合聚类则采用高斯分布来描述原型。

高斯混合模型(GMM)是一个非常基础并且应用很广的模型。对于它的透彻理解非常重要。

现假设每个类簇中的样本都服从一个多维高斯分布,那么空间中的样本可以看作由k个多维高斯分布混合而成。

下图a表示所有样本数据,b表示利用高斯混合聚类后的样本分类。

《西瓜书》-9.聚类

《西瓜书》-9.聚类《西瓜书》-9.聚类 

假设样本的生成过程由高斯混合分布给出,那么生成过程分为两步:

首先,根据概率《西瓜书》-9.聚类选择第《西瓜书》-9.聚类个高斯混合成分;

然后,根据该混合成分的概率分布《西瓜书》-9.聚类生成样本。

若训练集《西瓜书》-9.聚类中的样本均由某个高斯混合模型生成,而每个样本《西瓜书》-9.聚类是由哪个高斯混合成分生成是未知的,属于一个隐变量,令其为《西瓜书》-9.聚类表示生成样本《西瓜书》-9.聚类的高斯混合成分。结合高斯混合模型生成数据的方式易知《西瓜书》-9.聚类的分布律为《西瓜书》-9.聚类

对于高斯混合模型,下面用两种方式进行推导,分别为EM算法和极大似然估计法。

 

(1)利用EM算法进行推导。

E步:确定《西瓜书》-9.聚类函数

《西瓜书》-9.聚类

其中《西瓜书》-9.聚类表示观测数据,之前学习EM算法时,这里是《西瓜书》-9.聚类,但是意思是一样的。《西瓜书》-9.聚类表示隐变量序列,《西瓜书》-9.聚类为模型的参数《西瓜书》-9.聚类《西瓜书》-9.聚类表示迭代到第《西瓜书》-9.聚类次的《西瓜书》-9.聚类

将上式展开得

《西瓜书》-9.聚类 《西瓜书》-9.聚类

由之前EM推导得

《西瓜书》-9.聚类

再将《西瓜书》-9.聚类展开,即遍历《西瓜书》-9.聚类的所有取值,则变为

《西瓜书》-9.聚类 (1)

接下来,对式中的两项分别讨论

首先对于《西瓜书》-9.聚类,先不考虑《西瓜书》-9.聚类,由贝叶斯公式得

《西瓜书》-9.聚类

其中分母《西瓜书》-9.聚类表示生成《西瓜书》-9.聚类的概率,即式9.29高斯混合分布的表达式

分子中《西瓜书》-9.聚类表示选择第《西瓜书》-9.聚类个混合成分来生成样本的概率,根据生成数据的方式得《西瓜书》-9.聚类《西瓜书》-9.聚类表示已经选定第《西瓜书》-9.聚类个混合成分,然后通过该成分生成样本《西瓜书》-9.聚类的概率,即式9.28。

所以,上式可以变为

《西瓜书》-9.聚类 (2)

上式即为西瓜书的式(9.30)。当考虑《西瓜书》-9.聚类时,也即第《西瓜书》-9.聚类次迭代后的参数,也即这些参数均为已知,上式变为

《西瓜书》-9.聚类

将其记为《西瓜书》-9.聚类,因为上式的所有量均为已知,所以《西瓜书》-9.聚类也是已知量。

接着对于《西瓜书》-9.聚类函数的第二项《西瓜书》-9.聚类,可以写为

《西瓜书》-9.聚类

右边的两项在求解式(9.30)时均已介绍,所以

《西瓜书》-9.聚类 (3)

这里的参数均未知,也即我们需要极大化的参数。

将式(2)与(3)代入(1)得

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

接下来,进行M步,极大化《西瓜书》-9.聚类函数,即求使得《西瓜书》-9.聚类函数极大化的《西瓜书》-9.聚类,令其为《西瓜书》-9.聚类,即求参数《西瓜书》-9.聚类

从上式可以看出,只有左边第一项包含《西瓜书》-9.聚类,后面项包含《西瓜书》-9.聚类《西瓜书》-9.聚类,所以极大化《西瓜书》-9.聚类函数可以分别极大化左右两边的项。

《西瓜书》-9.聚类,对《西瓜书》-9.聚类函数关于《西瓜书》-9.聚类求偏导,对于求和符号《西瓜书》-9.聚类,由于求某个特定的《西瓜书》-9.聚类时与其他的项无关,所以这个求和符号可以省略,即

《西瓜书》-9.聚类

《西瓜书》-9.聚类

去掉不含《西瓜书》-9.聚类的项得

《西瓜书》-9.聚类

由于《西瓜书》-9.聚类《西瓜书》-9.聚类均为标量(转置为本身),《西瓜书》-9.聚类为对称矩阵,则

《西瓜书》-9.聚类

代入上式得

《西瓜书》-9.聚类《西瓜书》-9.聚类

根据矩阵微分公式《西瓜书》-9.聚类《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

令上式等于0得

《西瓜书》-9.聚类

由于《西瓜书》-9.聚类不受求和符号的约束,则可以将其提出

《西瓜书》-9.聚类

等式左右两边分别乘以《西瓜书》-9.聚类

《西瓜书》-9.聚类

计算得

《西瓜书》-9.聚类 《西瓜书》-9.聚类 《西瓜书》-9.聚类

上式即为西瓜书式(9.34)

《西瓜书》-9.聚类,对《西瓜书》-9.聚类函数关于《西瓜书》-9.聚类求偏导,同样可以省去求和符号,得

《西瓜书》-9.聚类

《西瓜书》-9.聚类

根据矩阵微分公式《西瓜书》-9.聚类, 《西瓜书》-9.聚类

《西瓜书》-9.聚类

 

因为《西瓜书》-9.聚类为对称矩阵,得

《西瓜书》-9.聚类

令其等于0得

《西瓜书》-9.聚类

等式两边都在右侧乘以《西瓜书》-9.聚类

《西瓜书》-9.聚类

将求和符号分配并移项得

《西瓜书》-9.聚类

同样《西瓜书》-9.聚类不受求和符号的约束,则可以将其提出

《西瓜书》-9.聚类

所以 《西瓜书》-9.聚类

即 《西瓜书》-9.聚类  《西瓜书》-9.聚类  《西瓜书》-9.聚类

上式即为西瓜书式(9.35)

最后,求《西瓜书》-9.聚类,由于《西瓜书》-9.聚类存在约束《西瓜书》-9.聚类,所以使用拉格朗日乘子法,得拉格朗日函数为

《西瓜书》-9.聚类

代入《西瓜书》-9.聚类函数得

《西瓜书》-9.聚类

对拉格朗日函数关于《西瓜书》-9.聚类求偏导,同样可以去掉《西瓜书》-9.聚类的求和符号,得

《西瓜书》-9.聚类

《西瓜书》-9.聚类

令上式等于0得

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

由于《西瓜书》-9.聚类,则对上式两边关于《西瓜书》-9.聚类求和得

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

又因为

《西瓜书》-9.聚类

所以

《西瓜书》-9.聚类

《西瓜书》-9.聚类

这里,还需要满足《西瓜书》-9.聚类,由于《西瓜书》-9.聚类,所以

《西瓜书》-9.聚类《西瓜书》-9.聚类   《西瓜书》-9.聚类

因此《西瓜书》-9.聚类是有效解,可以作为下一次迭代的初始参数,即

《西瓜书》-9.聚类  《西瓜书》-9.聚类  《西瓜书》-9.聚类

上式即为西瓜书式(9.38)

利用上述算法进行迭代,直至收敛(或达到迭代轮数),即为EM算法的过程。

由上述推导即可获得高斯混合模型的EM算法:在每步迭代中,先根据当前参数来计算每个样本属于每个高斯成分的后验概率《西瓜书》-9.聚类(E步),再根据式(9.34)、(9.35)和(9.38)更新模型参数《西瓜书》-9.聚类(M步),直至收敛(或达到迭代轮数)。

 

(2)利用极大似然法推导

首先,引入公式

《西瓜书》-9.聚类

 

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

对于上式(9.33)进行推导:

《西瓜书》-9.聚类

将式(9.28)代入得

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

所以上式可化为

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

上式即为式(9.33)

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

对于上式(9.35)进行推导:

《西瓜书》-9.聚类

由式(9.28)可得

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

移项推导有:

《西瓜书》-9.聚类

所以

《西瓜书》-9.聚类

上式即为式(9.35)

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

对于上式(9.38)进行推导:

对公式(9.37)两边同时乘以《西瓜书》-9.聚类可得

《西瓜书》-9.聚类

两边对所有混合成分求和可得

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

又因为

《西瓜书》-9.聚类

《西瓜书》-9.聚类《西瓜书》-9.聚类,所以

《西瓜书》-9.聚类

 

《西瓜书》-9.聚类

上面即为通过极大似然估计得出的结果。

以西瓜数据集4.0为例,利用高斯混合聚类,经过不同轮数迭代后的结果如图所示

《西瓜书》-9.聚类

《西瓜书》-9.聚类

《西瓜书》-9.聚类

9.7.密度聚类

密度聚类则是基于密度的聚类,它从样本分布的角度来考察样本之间的可连接性,并基于可连接性(密度可达)不断拓展疆域(类簇)。其中最著名的便是DBSCAN算法。

简单来理解DBSCAN便是:找出一个核心对象所有密度可达的样本集合形成簇。即该簇内,任意两点为密度相连。且能密度可达的点都包含进来了。

首先从数据集中任选一个核心对象A,找出所有A密度可达的样本集合,将这些样本形成一个密度相连的类簇,然后从剩余数据中再找一个核心对象,直到所有的核心对象都遍历完。

《西瓜书》-9.聚类

如上图,虚线表示邻域。令MinPts=3(核心对象邻域至少包含MinPts个样本),《西瓜书》-9.聚类是核心对象,《西瓜书》-9.聚类《西瓜书》-9.聚类密度直达,《西瓜书》-9.聚类《西瓜书》-9.聚类密度可达,《西瓜书》-9.聚类《西瓜书》-9.聚类密度相连。

以西瓜数据集4.0为例的密度聚类过程如图所示

《西瓜书》-9.聚类《西瓜书》-9.聚类 

《西瓜书》-9.聚类

9.8.层次聚类

层次聚类是一种基于树形结构的聚类方法,常用的是自底向上的结合策略(AGNES算法)。

假设有N个待聚类的样本,其基本步骤是:

1.初始化:把每个样本归为一类,计算每两个类之间的距离,也就是样本与样本之间的相似度;

2.寻找各个类之间最近的两个类,把他们归为一类(这样类的总数就少了一个);

3.重新计算新生成的这个类与各个旧类之间的相似度;

4.重复2和3直到所有样本点都归为预设的聚类簇数,结束。

可以看出其中最关键的一步就是计算两个类簇的相似度,这里有多种度量方法:

《西瓜书》-9.聚类

显然,最小距离由两个簇的最近样本决定,最大距离由两个簇的最远样本决定,而平均距离则为两个簇的所有样本的平均距离。

三种距离下,AGNES分别称为单链接,全链接,均链接算法。

下面,以西瓜数据集4.0为例,令AGNES算法(采用《西瓜书》-9.聚类)一直执行到所有样本出现在同一个簇中,即k=1,则可得到如图所示的“树状图”。

 

《西瓜书》-9.聚类

以图中所示虚线分割树状图,将得到包含7个聚类簇的结果。

将分割层逐步提升,则可得到聚类簇逐渐减少的聚类结果。例如下图为产生7至4个聚类簇的划分结果。

 

《西瓜书》-9.聚类《西瓜书》-9.聚类 

 

相关文章:

  • 2022-12-23
  • 2021-11-22
  • 2021-11-30
  • 2021-11-19
  • 2022-12-23
  • 2021-04-02
  • 2021-09-01
猜你喜欢
  • 2022-01-05
  • 2022-12-23
  • 2021-11-29
  • 2021-08-07
  • 2021-05-31
  • 2021-10-18
  • 2021-10-01
相关资源
相似解决方案