聚类分析:层次聚类模型的详细搭建步骤及原理

关于聚类分析,在之前《多元分析》中有提及到。聚类分析有很多种方法,层次聚类、kmeans聚类等等。今天和大家分享一下层次聚类(也叫“系统聚类”)的概念以及应用。

聚类分析:层次聚类模型的详细搭建步骤及原理

01、层次聚类简介

我们知道,聚类分析是把相似的个体聚在一起。那么具体我们应该按照什么样的规则来聚类呢?

关于层次聚类,具体可以从两个方向来考虑:凝聚法和分离法。

(1)凝聚法

凝聚法,顾名思义,就是逐步的凝聚在一起。

换句话说,我们是从单个的个体出发的,逐步合并最“相似”的个体,直到所有的个体都合并为一个族群。

聚类分析:层次聚类模型的详细搭建步骤及原理

具体步骤如下:

  • 步骤一:先把n个样本当成n个不同的族群
  • 步骤二:计算n个族群间的距离矩阵
  • 步骤三:合并距离最小的两个族群,计算新的族群间的距离矩阵
  • 步骤四:如果族群数为1,则到步骤5,否则到步骤3
  • 步骤五:绘制系统树图
  • 步骤六:选择族群个数

(2)分离法

分离法,其实是凝聚法的相反方向。

顾名思义,分离法是先把所有的个体看成是一个族群,慢慢分到n个完全不同的族群。

下面,我们这里重点对凝聚法进行分享。

02、凝聚法详情

根据上面的概述我们知道,凝聚法的每一步需要合并“距离最小的两个族群”,而不同族群间距离的定义方法决定了不同的聚类结果,关于凝聚法的距离定义主要有两种思想:连接法和Ward法。

(1)凝聚法之——连接法

连接法又细分了以下四种:

聚类分析:层次聚类模型的详细搭建步骤及原理

  • 简单连接:定义两族群间相隔最近的两个个体间的距离,为两族群的距离
  • 完全连接:定义两族群间相隔最远的两个个体间的距离,为两族群的距离
  • 平均连接:A群中所有的Na个样本与B群中所有的Nb个样本产生的距离(共计Na*Nb个距离),求平均值,作为两个族群的距离
  • 质心连接:两个群中各自的质心(即样本均值向量),之间的欧式距离,作为两个族群的距离

上面的几种方法可以通过下图来理解:

聚类分析:层次聚类模型的详细搭建步骤及原理

上图中分别是:简单连接、完全连接、平均连接、质心连接。

平均连接法和质心连接法的区别在于,平均连接是先将两族群间所有的距离求出来,然后求均值;而质心法是先求族群内所有样本的平均质心,然后看质心距离。

质心法看着更加合理一些,但也是有一些局限的。比如其他三种方法,其实都是单调的(即每一步聚类步骤,都是可以基于之前的距离计算的,不需要重复计算),但质心法是非单调的,有可能出现距离的反复。

另外,由于质心法是所有样本的平均,所以容易受到样本量的影响,聚类后的新的群组质心会出现倾斜。改进的方法是不加权,基于原有两个群的质点连线的中点作为新质心。

(2)凝聚法之——Ward法

连接法是基于两个族群样本间距离作为族群距离,与其不同的是,ward法其实是通过合并前后的族群内方差平方和的差异,来定义群组距离的。

有以下公式:

聚类分析:层次聚类模型的详细搭建步骤及原理

A、B代表了合并之前的两个族群,AB代表了合并之后的族群。I-AB代表合并前后的SSE的差异。关于SSE,就是和方差,回头系统讲讲。

啥意思呢?其实很好理解。如果两个族群比较近,那么合并以后的方差应该也不是很大,因为方差衡量的是离散程度。

但Ward法有一个问题就是,更倾向于合并小的族群。因为大的族群从方差层面,肯定是容易比小族群大的。

03、绘制系统树图

其实根据上面的简介,我们能够了解到,所谓的层次聚类,是一种聚类的路径。那如何利用图表表示层次聚类的过程呢?

对,这就是系统树图。看一个示例图:

聚类分析:层次聚类模型的详细搭建步骤及原理

上图就是一个典型的系统树图,很好地呈现了整体的聚类过程。

根据上面的系统树图,我们可以看出每一步的聚类过程,包括合并族群带来的距离的变化。最底下是所有的待聚类的所有个体,纵轴就是聚类的距离。逐步往上,是一次次的聚类过程。最上面,就是一个类别了。

除了上面这种比较典型的系统树图的呈现外,也有下面的变形:

聚类分析:层次聚类模型的详细搭建步骤及原理

这种系统树图,多在基因的聚类分析中看到。该图包括了两个维度的聚类,一方面是样本的聚类,另一方面是变量(基因信息)的聚类。

04、族群个数的选择

还有最后一个问题,就是我们应该选取多少个族群呢?

单纯从系统树图上看,在不同距离上截取,是可以选择不同族群的。看下面两个图:

聚类分析:层次聚类模型的详细搭建步骤及原理

当我们在不同距离上截取时,聚类的个数也不同。左边的图聚成5类,而右边的图聚成2类。那到底应该选取几个族群合适呢?

这个其实是比较主观的一个过程了。

一方面,可以根据业务情况或者经验,选择比较好解释的聚类;另一方面,也可以通过数据层面,寻找组别差距比较大的距离变化的节点。

另外,从上面的过程中,我们也可以看出来,层次聚类是一个单向的过程,一旦一个个体被分入到某一个群体之后,就没有办法归入到其他群体了。这也决定了层次聚类只能达到局部最优的这样一个结论,而一般不可能是全局最优。这是层次聚类的一个很大的缺点。

业界动态

技能篇:从0到1做一款短视频的小程序

2021-4-1 13:29:31

业界动态

企业级产品设计:稳定高复用的企业产品信息架构设计

2021-4-1 13:46:12

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索