欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

聚类分析 之 凝聚层次聚类

程序员文章站 2022-07-14 11:40:40
...

old , but useful .

两种产生层次聚类的基本方法:

  • 凝聚的: 从点作为个体簇开始,每一步合并两个最近的簇,
    需要定义簇的邻近性概念(开始每个点都是一个簇,然后不断合并减少簇的数量)。

  • 分裂的; 从包含所有点的某个簇开始,每一步分裂一个簇,直到仅剩下单点簇。
    在这种情况下,我们需要确定每一步分裂哪个簇,以及如何分裂?

     下面将先介绍凝聚层次聚类技术。
    

2. 层次聚类

层次聚类常常使用称作树状图(dendrogram)的类似树的图显示,该图显示簇-子簇联系和簇合并(凝聚)或分裂的次序。度域二维点的集合,层次聚类也可以使用嵌套簇图(nested cluster diagram)表示,聚类分析 之 凝聚层次聚类

2.1 基本凝聚层次聚类算法

许多凝聚层次聚类技术都是这个方法的变种,从个体点作为簇开始,相继合并两个最接近的簇,直到剩下一个簇。

2.1.1 如何定义簇之间的邻近性——簇之间满足什么条件才可以认为是邻近的?

簇的邻近性通常用特定的簇类型定义,如许多凝聚层次聚类技术都源于簇的基于图的观点。

  • MIN / 单链(single link) 定义簇的邻近度为不同簇的两个最近的点之间的邻近度,(或者使用图的术语:不同的结点子集中两个结点之间的最短边)
  • MAX / 全链(complete link) 取不同簇中两个最远的点之间的邻近度作为簇的邻近度(或者使用图的术语: 不同的结点子集中两个结点之间的最长边。)
  • 组平均(group average)技术 它定义簇邻近度为取自不同簇的所有点对邻近度的平均值(平均边长)。聚类分析 之 凝聚层次聚类
  • 矩心之间的距离:聚类分析 之 凝聚层次聚类
  • 由目标函数驱动的其他方法,如 Ward 的方法使用平方误差

2.1.2 时间和空间复杂性

基本凝聚层次聚类算法使用邻近度矩阵,这需要存储 m 2 / 2 个邻近度(假定邻近度矩阵是对称的),其中 m 是数据点的个数。 记录簇所需要的空间正比于簇的个数为 m-1,不包括单点簇,因此总的空间复杂度为 O (m2)。总的时间复杂度为 O(m2log m)。
不够详细,实践中总结

凝聚层次聚类过程

  1. 从单个点的簇和邻近矩阵开始:聚类分析 之 凝聚层次聚类
  2. 在一些合并步骤后,我们有一些聚类:聚类分析 之 凝聚层次聚类
  3. 我们想合并两个最近的聚类(C2 和 C5)并更新邻近矩阵
    聚类分析 之 凝聚层次聚类

聚类相似性——MIN 或单链

两个簇的相似性基于不同簇中的两个最相似(最接近)点。

  • 由一对点确定,即由邻近图中的一个链接确定。如果从所有点作为单点簇开始,每次在点之间加上一条链,最短的链先加,则这些链将点合并成簇。
  • 单链 擅长处理非椭圆形状的簇,但对噪声和离群点很敏感(可以从下面的演示过程看出)
  1. 下图中显示了 6 个点的坐标以及他们之间的欧几里得距离矩阵。树状图中两个簇合并出的高度反映了两个簇的距离。如 点 3 和 点 6 的距离是 0.11,这就是他们在树状图里合并处的高度。
    聚类分析 之 凝聚层次聚类聚类分析 之 凝聚层次聚类
  2. 一开始坐标中的 6 个点都作为单点簇。
    聚类分析 之 凝聚层次聚类
  3. 由于点 3 和 点 6 的距离最小,所以先合并点 3 和 点 6 作为一个簇,现在有 5 个簇。

聚类分析 之 凝聚层次聚类

  1. 之后 点 2 和 点 5 合并成一个簇。
    聚类分析 之 凝聚层次聚类

  2. 之前的新簇(点 3 和 点 6 合并)与刚才形成的簇(点 2 和 点 5 合并) 继续合并成新簇。

聚类分析 之 凝聚层次聚类

6.最终形成如图的一个簇。
聚类分析 之 凝聚层次聚类

聚类相似性——全链或MAX或团

  • 对于层次聚类的全链或 MAX版本,两个簇的邻近度定义为两个不同簇中任意两个之间的最长距离(最小相似度)。
  • 如果所有点作为单点簇开始,每次在点之间加上一条链,最短的链先加,则一组点直到其中所有的点都完全被连接(即形成团)才形成一个簇。挑选两簇(两簇中之间最长的链与其他簇的最长相比链最短)
  • 完全连接对噪声和离群点不太敏感,但是它可能使大的簇破裂,并且偏好球形。
    聚类分析 之 凝聚层次聚类
    聚类分析 之 凝聚层次聚类
    聚类分析 之 凝聚层次聚类

聚类相似性——组平均

对于层次聚类的组平均版本,两个簇的邻近度定义为不同簇的所有点对邻近度的平均值。这是一种界于单链和全链之间的折中办法。对于组平均,簇 C i 和 Cj 的邻近度 proximity(Ci,Cj)由下式定义:
聚类分析 之 凝聚层次聚类
聚类分析 之 凝聚层次聚类
mi ,mj 为簇的点个数,分子为两个簇点与点的链距离之和。

聚类相似性分析——Ward方法和质心方法

对于 Ward 方法,两个簇的邻近度定义为两个簇合并时导致的平方误差的增量。,这样一来,该方法使用的目标函数和K均值相同,好像这一特点让Ward 方法不同与其他层次聚类技术,但是可以从数学上证明,当两个点之间的邻近度取它们之间距离的平方是, Ward 方法与组平均非常相似。

质心方法通过计算簇质心之间的距离来计算两个簇之间的邻近度。看起来和 K 均值类似,但是只有 Ward 方法才真正与它类似。

质心方法还具有一种我们讨论过的其他层次聚类技术所不具备的特性(常被认为是坏的):倒置(inversion)的可能性。合并的两个簇可能比前一步合并的簇对更相似。对于其他方法,被合并的簇之间的距离随层次聚类进展单调地增加(或者,在最坏的情况下不增加)。

簇邻近度的 Lance-Williams公式

本节讨论的任何簇邻近度都可以看做簇 Q 和 R 之间邻近度的不同参数(Lance-Williams公式)的一种选择,其中 R 是合并簇 A 和 簇 B 形成的。
聚类分析 之 凝聚层次聚类
任何可以使用 Lance-Williams 公式表示的层次聚类技术都不需要保留原来的数据点。

层次聚类——时间和空间要求

  • O(n)空间复杂度,因为它使用邻近矩阵。n 是点数。
  • O(n3)在多数情况下的时间复杂度,有 n 个步骤,并且每个步骤,必须更新和搜索大小 n2 ,邻近矩阵。
  • 对于一些方法,时间复杂度可以减少到 O(n2log n)。

层次聚类的主要问题

  1. 一旦决定组合两个集群,无法退回。
  2. 没有目标函数被直接最小化。
    凝聚层次聚类不能被视为全局优化目标函数,凝聚层次聚类技术使用各种标准,在每一步局部地确定哪些簇应当合并(或分裂),这种方法产生的聚类算法避开了解决困难的组合优化问题,这样的方法没有局部极小问题或很难选择初始点的问题。
  3. 不同的方案具有以下一个或多个问题:
  • 对噪声和异常值的敏感性
  • 难以处理不同大小的簇和凸形
  • 分离大集群

就计算量和存储需求而言,凝聚层次算法是昂贵的,所有合并都是最终的,对于噪声、高维数据,这也可能造成问题,先使用其他技术进行部分聚类,这两个问题都可以在某种程度上解决。