文章目录

  • 一:层次聚类算法概述
    • (1)层次聚类
    • (2)聚合和分裂各自研究的重点
    • (3)优缺点
  • 二:聚合方法
    • (1)Single-link方法
      • A:概述
      • B:例子
    • (2)Complete link方法
      • A:概述
      • B:例子
    • (3)簇均值方法
      • A:概述
      • B:例子
    • (4)带权重的簇均值方法
      • A:概述
      • B:例子
    • (5)质心方法
      • A:概述
      • B:例子
    • (6)中间值方法
  • 三:分裂方法

一:层次聚类算法概述

(1)层次聚类

层次聚类:层次聚类算法的出现是为了解决基于划分聚类算法中存在的一些缺陷,主要有

  • 基于划分的聚类算法十分依赖于超参数kkk,并且在很多情况下kkk是无法确定的
  • 基于划分的聚类算法存在初始化的问题,不良的初始化会导致聚类效果低下

层次聚类算法有两种思路,分别是分裂层次聚类算法(DHC)和聚合层次聚类算法(AHC)

  • 分裂层次聚类算法(DHC):先将所有数据视为一个类,然后基于某种准则在已有类中选择一个类将其分割为两个类,重复分割以达到最终聚类目的
  • 聚合层次聚类算法(AHC):先将每个数据视为单独的类,然后按某种距离度量方法选择距离最近的两个或者多个类进行合并,重复合并直到最后剩下一个类

其中,聚合层次聚类算法(AHC)较分裂层次聚类算法(DHC)更多一点,,主要是因为分裂层次聚类算法(DHC)理论复杂度高

(2)聚合和分裂各自研究的重点

聚合层次聚类算法(AHC):重点研究的是如何衡量两个簇之间的距离。也即,如何在已知集合内元素间距离的情况,计算两个集合之间的距离。例如

  • Single-link方法:采用两个簇之间距离最短的数据对间距离作为两个簇的距离
  • Complete-link方法:采用两个簇之间距离最远的数据对间距离作为两个簇的距离

分裂层次聚类算法(DHC):有如下两个重点研究问题

  • 如何选择下一步要分裂的簇:例如DIANA算法建议选择直径最大的簇、DISMEA算法选择平方距离最大的簇
  • 如何将一个簇中的顶点划分到两个集合中,从而生成两个簇:例如DIANA算法通过定义一个函数来判断并决定簇的分割、DISMEA算法则直接使用kkk-均值算法来分割簇

(3)优缺点

优点

  • (相较于基于划分的聚类算法)可以实现聚类过程与参数无关以及更加灵活的目的
  • 给出了数据聚类过程中更加全面丰富的描述
  • 层次聚类可以表示为层次图,在层次图中可以看到任意两个样本合并到一个簇中的过程

缺点

  • 时间复杂度过高,大多都在O(n2)O(n^{2})O(n2)级别
  • 算法没有“回头路”,如果聚类过程中某一步的合并或者分裂是错误的,那么在后续步骤中是没有办法修正的

二:聚合方法

聚合方法:前面说过,这是一个自下而上的过程,通过不断合并完成以完成聚类。在合并过程中最大的问题就是如何衡量两个簇之间的距离,由于聚合方法每次合并距离最近的两个簇,而簇又是数据点的集合,那么问题最后就变成了如何通过簇中的数据点来衡量簇与簇之间的距离。这个问题促成了很多聚合方法的产生,下图展示了两类聚合方法

  • 图方法:一个类可以通过子图或者数据点来表达
  • 几何方法:一个类通过一个原本不存在的中心点来表达

尽管聚合方法有很多种,但所有方法的目标都是计算两个簇之间的距离。Lance-Williams公式将上述方法中涉及的公式做了统一,用于计算两个簇合并后与其他簇之间的距离,如下

D(Ck,Ci∪Cj)=αiD(Ck,Ci)+αjD(Ck,Cj)+βD(Ci,Cj)+γ∣D(Ck,Ci)−D(Ck,Cj)∣D(C_{k},C_{i} \cup C_{j})=\alpha_{i} D(C_{k},C_{i})+\alpha_{j} D(C_{k},C_{j} )+\beta D(C_{i},C_{j})+\gamma|D(C_{k},C_{i}) -D(C_{k},C_{j})|D(Ck​,Ci​∪Cj​)=αi​D(Ck​,Ci​)+αj​D(Ck​,Cj​)+βD(Ci​,Cj​)+γ∣D(Ck​,Ci​)−D(Ck​,Cj​)∣

  • D(,)D(,)D(,)表示两个簇之间的距离

通过选取不同的αi\alpha_{i}αi​,αj\alpha_{j}αj​,β\betaβ和γ\gammaγ,Lance-Williams公式可以表达出大部分的聚合方法对簇间距离的计算,如下表

αi\alpha_{i}αi​ αj\alpha_{j}αj​ β\betaβ γ\gammaγ
Single-link方法 12\frac{1}{2}21​ 12\frac{1}{2}21​ 0 -12\frac{1}{2}21​
Complete-link方法 12\frac{1}{2}21​ 12\frac{1}{2}21​ 0 12\frac{1}{2}21​
簇均值方法 nini+nj\frac{n_{i}}{n_{i}+n{j}}ni​+njni​​ njni+nj\frac{n_{j}}{n_{i}+n{j}}ni​+njnj​​ 0 0
带权重簇均值方法 12\frac{1}{2}21​ 12\frac{1}{2}21​ 0 0
质心方法 nini+nj\frac{n_{i}}{n_{i}+n{j}}ni​+njni​​ njni+nj\frac{n_{j}}{n_{i}+n{j}}ni​+njnj​​ -ninj(ni+nj)2\frac{n_{i}n_{j}}{(n_{i}+n{j})^{2}}(ni​+nj)2ni​nj​​ 0
中间值方法 12\frac{1}{2}21​ 12\frac{1}{2}21​ -14\frac{1}{4}41​ 0
Ward方法 ni+nj∑ijk\frac{n_{i}+n_{j}}{\sum ijk}∑ijkni​+nj​​ ni+nk∑ijk\frac{n_{i}+n_{k}}{\sum ijk}∑ijkni​+nk​​ -nk∑ijk\frac{n_{k}}{\sum ijk}∑ijknk​​ 0

(1)Single-link方法

A:概述

Single-link方法(最近邻方法):使用两个簇中距离最近的样本对之间的距离作为两簇之间的距离。假设Ci,Cj,CkC_{i},C_{j}, C_{k}Ci​,Cj​,Ck​表示三个簇,那么其Lance-Williams公式如下

D(Ck,Ci∪Cj)=12D(Ck,Ci)+12D(Ck,Cj)−12∣D(Ck,Ci)−D(Ck,Cj)∣=min{D(Ck,Ci),D(Ck,Cj)}D(C_{k},C_{i} \cup C_{j})=\frac{1}{2} D(C_{k},C_{i})+\frac{1}{2}D(C_{k},C_{j} )-\frac{1}{2}|D(C_{k},C_{i}) -D(C_{k},C_{j})|=min\{D(C_{k},C_{i}), D(C_{k},C_{j})\}D(Ck​,Ci​∪Cj​)=21​D(Ck​,Ci​)+21​D(Ck​,Cj​)−21​∣D(Ck​,Ci​)−D(Ck​,Cj​)∣=min{D(Ck​,Ci​),D(Ck​,Cj​)}

由上式可得

D(C,C´)=min(d(x,y))D(C,C^{´})=min (d(x,y))D(C,C´)=min(d(x,y))

  • x∈Cx \in Cx∈C
  • y∈C´y \in C^{´}y∈C´

B:例子

下图是一数据集,包含5个样本点


对于该数据集,采用欧几里得距离计算距离矩阵如下

x1x_{1}x1​ x2x_{2}x2​ x3x_{3}x3​ x4x_{4}x4​ x5x_{5}x5​
x1x_{1}x1​ 0 1 4.47 3.61 5
x2x_{2}x2​ 1 0 4.12 2.83 4.24
x3x_{3}x3​ 4.47 4.12 0 2.24 2.24
x4x_{4}x4​ 3.61 2.83 2.24 0 1.41
x5x_{5}x5​ 5 4.24 2.24 1.41 0

接着,运行Single-link聚类。首先x1x_{1}x1​ 和 x2x_{2}x2​ 会先聚合,然后计算{x1x_{1}x1​ , x2x_{2}x2​}与 x3x_{3}x3​、 x4x_{4}x4​、 x5x_{5}x5​ 之间的距离

  • D({x1,x2},x3)=min{d(x1,x3),d(x2,x3)}=4.12D(\{x_{1}, x_{2}\}, x_{3})=min\{d(x_{1}, x_{3}), d(x_{2}, x_{3})\}=4.12D({x1​,x2​},x3​)=min{d(x1​,x3​),d(x2​,x3​)}=4.12
  • D({x1,x2},x4)=min{d(x1,x4),d(x2,x4)}=2.83D(\{x_{1}, x_{2}\}, x_{4})=min\{d(x_{1}, x_{4}), d(x_{2}, x_{4})\}=2.83D({x1​,x2​},x4​)=min{d(x1​,x4​),d(x2​,x4​)}=2.83
  • D({x1,x2},x5)=min{d(x1,x5),d(x2,x5)}=4.24D(\{x_{1}, x_{2}\}, x_{5})=min\{d(x_{1}, x_{5}), d(x_{2}, x_{5})\}=4.24D({x1​,x2​},x5​)=min{d(x1​,x5​),d(x2​,x5​)}=4.24

更新距离矩阵

{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} x3x_{3}x3​ x4x_{4}x4​ x5x_{5}x5​
{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} 0 4.12 2.83 4.24
x3x_{3}x3​ 4.12 0 2.24 2.24
x4x_{4}x4​ 2.83 2.24 0 1.41
x5x_{5}x5​ 4.24 2.24 1.41 0

可以看到x4x_{4}x4​与x5x_{5}x5​距离最小,所以合并它们,然后计算{x4x_{4}x4​, x5x_{5}x5​}与其他各簇之间的距离

  • D({x4,x5},{x1,x2})=min{d(x1,x4),d(x2,x4),d(x1,x5),d(x2,x5)}=min{D({x1,x2},x4),D({x1,x2},x5)}=2.83D(\{x_{4}, x_{5}\}, \{x_{1}, x_{2}\})=min\{d(x_{1}, x_{4}), d(x_{2}, x_{4}), d(x_{1}, x_{5}),d(x_{2}, x_{5})\}=min\{D(\{x_{1}, x_{2}\}, x_{4}), D(\{x_{1}, x_{2}\}, x_{5})\}=2.83D({x4​,x5​},{x1​,x2​})=min{d(x1​,x4​),d(x2​,x4​),d(x1​,x5​),d(x2​,x5​)}=min{D({x1​,x2​},x4​),D({x1​,x2​},x5​)}=2.83
  • D({x4,x5},x3)=min{d(x4,x3),d(x5,x3)}=2.24D(\{x_{4}, x_{5}\}, x_{3})=min\{d(x_{4}, x_{3}), d(x_{5}, x_{3})\}=2.24D({x4​,x5​},x3​)=min{d(x4​,x3​),d(x5​,x3​)}=2.24

更新距离矩阵

{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} x3x_{3}x3​ {x4,x5}\{x_{4}, x_{5}\}{x4​,x5​}
{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} 0 4.12 2.83
x3x_{3}x3​ 4.12 0 2.24
{x4,x5}\{x_{4}, x_{5}\}{x4​,x5​} 2.83 2.24 0

合并{x4,x5x_{4}, x_{5}x4​,x5​}与x3x_{3}x3​,再更新距离矩阵

{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} {,x3,x4,x5}\{,x_{3}, x_{4}, x_{5}\}{,x3​,x4​,x5​}
{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} 0 2.83
{,x3,x4,x5}\{,x_{3}, x_{4}, x_{5}\}{,x3​,x4​,x5​} 2.83 0

最后把所有数据合并为一个簇。层次图如下

(2)Complete link方法

A:概述

Complete link方法:与Single-link方法相反,Complete link方法使用两个簇中距离最远的样本对之间的距离作为两簇之间的距离。假设Ci,Cj,CkC_{i},C_{j}, C_{k}Ci​,Cj​,Ck​表示三个簇,那么其Lance-Williams公式如下

D(Ck,Ci∪Cj)=12D(Ck,Ci)+12D(Ck,Cj)+12∣D(Ck,Ci)−D(Ck,Cj)∣=min{D(Ck,Ci),D(Ck,Cj)}D(C_{k},C_{i} \cup C_{j})=\frac{1}{2} D(C_{k},C_{i})+\frac{1}{2}D(C_{k},C_{j} )+\frac{1}{2}|D(C_{k},C_{i}) -D(C_{k},C_{j})|=min\{D(C_{k},C_{i}), D(C_{k},C_{j})\}D(Ck​,Ci​∪Cj​)=21​D(Ck​,Ci​)+21​D(Ck​,Cj​)+21​∣D(Ck​,Ci​)−D(Ck​,Cj​)∣=min{D(Ck​,Ci​),D(Ck​,Cj​)}

由上式可得

D(C,C´)=max(d(x,y))D(C,C^{´})=max (d(x,y))D(C,C´)=max(d(x,y))

  • x∈Cx \in Cx∈C
  • y∈C´y \in C^{´}y∈C´

B:例子

继续在上述数据集上运行Complete link聚类。首先x1x_{1}x1​ 和 x2x_{2}x2​ 会先聚合,然后计算{x1x_{1}x1​ , x2x_{2}x2​}与 x3x_{3}x3​、 x4x_{4}x4​、 x5x_{5}x5​ 之间的距离

  • D({x1,x2},x3)=max{d(x1,x3),d(x2,x3)}=4.47D(\{x_{1}, x_{2}\}, x_{3})=max\{d(x_{1}, x_{3}), d(x_{2}, x_{3})\}=4.47D({x1​,x2​},x3​)=max{d(x1​,x3​),d(x2​,x3​)}=4.47
  • D({x1,x2},x4)=max{d(x1,x4),d(x2,x4)}=3.61D(\{x_{1}, x_{2}\}, x_{4})=max\{d(x_{1}, x_{4}), d(x_{2}, x_{4})\}=3.61D({x1​,x2​},x4​)=max{d(x1​,x4​),d(x2​,x4​)}=3.61
  • D({x1,x2},x5)=min{d(x1,x5),d(x2,x5)}=5D(\{x_{1}, x_{2}\}, x_{5})=min\{d(x_{1}, x_{5}), d(x_{2}, x_{5})\}=5D({x1​,x2​},x5​)=min{d(x1​,x5​),d(x2​,x5​)}=5

更新距离矩阵

{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} x3x_{3}x3​ x4x_{4}x4​ x5x_{5}x5​
{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} 0 4.47 3.61 5
x3x_{3}x3​ 4.47 0 2.24 2.24
x4x_{4}x4​ 3.61 2.24 0 1.41
x5x_{5}x5​ 5 2.24 1.41 0

下一步合并x4x_{4}x4​与x5x_{5}x5​,并计算{x4x_{4}x4​, x5x_{5}x5​}与其他各簇之间的距离

  • D({x4,x5},{x1,x2})=max{d(x1,x4),d(x2,x4),d(x1,x5),d(x2,x5)}=max{D({x1,x2},x4),D({x1,x2},x5)}=5D(\{x_{4}, x_{5}\}, \{x_{1}, x_{2}\})=max\{d(x_{1}, x_{4}), d(x_{2}, x_{4}), d(x_{1}, x_{5}),d(x_{2}, x_{5})\}=max\{D(\{x_{1}, x_{2}\}, x_{4}), D(\{x_{1}, x_{2}\}, x_{5})\}=5D({x4​,x5​},{x1​,x2​})=max{d(x1​,x4​),d(x2​,x4​),d(x1​,x5​),d(x2​,x5​)}=max{D({x1​,x2​},x4​),D({x1​,x2​},x5​)}=5
  • D({x4,x5},x3)=max{d(x4,x3),d(x5,x3)}=2.24D(\{x_{4}, x_{5}\}, x_{3})=max\{d(x_{4}, x_{3}), d(x_{5}, x_{3})\}=2.24D({x4​,x5​},x3​)=max{d(x4​,x3​),d(x5​,x3​)}=2.24

更新距离矩阵

{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} x3x_{3}x3​ {x4,x5}\{x_{4}, x_{5}\}{x4​,x5​}
{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} 0 4.47 5
x3x_{3}x3​ 4.47 0 2.24
{x4,x5}\{x_{4}, x_{5}\}{x4​,x5​} 5 2.24 0

合并{x4,x5x_{4}, x_{5}x4​,x5​}与x3x_{3}x3​,再更新距离矩阵

{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} {,x3,x4,x5}\{,x_{3}, x_{4}, x_{5}\}{,x3​,x4​,x5​}
{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} 0 5
{x3,x4,x5}\{x_{3}, x_{4}, x_{5}\}{x3​,x4​,x5​} 5 0

最后把所有数据合并为一个簇。层次图如下

(3)簇均值方法

A:概述

簇均值方法(UPGMA方法):簇均值方法将两组数据之间所有的数据对间的距离求均值后作为两簇之间的距离。假设Ci,Cj,CkC_{i},C_{j}, C_{k}Ci​,Cj​,Ck​表示三个簇,那么其Lance-Williams公式如下

D(Ck,Ci∪Cj)=∣Ci∣∣Ci∣+∣Cj∣D(Ck,Ci)+∣Ci∣∣Ci∣+∣Cj∣D(Ck,Cj)D(C_{k},C_{i} \cup C_{j})=\frac{|C_{i}|}{|C_{i}|+|C_{j}|} D(C_{k},C_{i})+\frac{|C_{i}|}{|C_{i}|+|C_{j}|}D(C_{k},C_{j} )D(Ck​,Ci​∪Cj​)=∣Ci​∣+∣Cj​∣∣Ci​∣​D(Ck​,Ci​)+∣Ci​∣+∣Cj​∣∣Ci​∣​D(Ck​,Cj​)

  • |C|表示簇C中数据点的数量

由上式可得

D(C,C´)=1∣C∣∣C´∣(d(x,y))D(C,C^{´})=\frac{1}{|C||C^{´}|} (d(x,y))D(C,C´)=∣C∣∣C´∣1​(d(x,y))

  • x∈Cx \in Cx∈C
  • y∈C´y \in C^{´}y∈C´

B:例子

继续在上述数据集上运行簇均值聚类。首先x1x_{1}x1​ 和 x2x_{2}x2​ 会先聚合,然后计算{x1x_{1}x1​ , x2x_{2}x2​}与 x3x_{3}x3​、 x4x_{4}x4​、 x5x_{5}x5​ 之间的距离

  • D({x1,x2},x3)=12d(x1,x3)+12d(x2,x3)=4.30D(\{x_{1}, x_{2}\}, x_{3})=\frac{1}{2}d(x_{1},x_{3}) + \frac{1}{2}d(x_{2},x_{3})=4.30D({x1​,x2​},x3​)=21​d(x1​,x3​)+21​d(x2​,x3​)=4.30
  • D({x1,x2},x4)=12d(x1,x4)+12d(x2,x4)=3.22D(\{x_{1}, x_{2}\}, x_{4})=\frac{1}{2}d(x_{1},x_{4}) + \frac{1}{2}d(x_{2},x_{4})=3.22D({x1​,x2​},x4​)=21​d(x1​,x4​)+21​d(x2​,x4​)=3.22
  • D({x1,x2},x5)=12d(x1,x5)+12d(x2,x5)=4.62D(\{x_{1}, x_{2}\}, x_{5})=\frac{1}{2}d(x_{1},x_{5}) + \frac{1}{2}d(x_{2},x_{5})=4.62D({x1​,x2​},x5​)=21​d(x1​,x5​)+21​d(x2​,x5​)=4.62

更新距离矩阵

{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} x3x_{3}x3​ x4x_{4}x4​ x5x_{5}x5​
{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} 0 4.30 3.22 4.62
x3x_{3}x3​ 4.30 0 2.24 2.24
x4x_{4}x4​ 3.22 2.24 0 1.41
x5x_{5}x5​ 4.62 2.24 1.41 0

下一步合并x4x_{4}x4​与x5x_{5}x5​,并计算{x4x_{4}x4​, x5x_{5}x5​}与其他各簇之间的距离

  • D({x4,x5},{x1,x2})=12D({x1,x2},x4)+12D({x1,x2},x5)=3.92D(\{x_{4}, x_{5}\}, \{x_{1}, x_{2}\})=\frac{1}{2}D(\{x_{1},x_{2}\},x_{4})+\frac{1}{2}D(\{x_{1},x_{2}\},x_{5})=3.92D({x4​,x5​},{x1​,x2​})=21​D({x1​,x2​},x4​)+21​D({x1​,x2​},x5​)=3.92
  • D({x4,x5},x3)=12d(x3,x5)+12d(x3,x1)=2.24D(\{x_{4}, x_{5}\}, x_{3})=\frac{1}{2}d(x_{3},x_{5}) + \frac{1}{2}d(x_{3},x_{1})=2.24D({x4​,x5​},x3​)=21​d(x3​,x5​)+21​d(x3​,x1​)=2.24

更新距离矩阵

{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} x3x_{3}x3​ {x4,x5}\{x_{4}, x_{5}\}{x4​,x5​}
{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} 0 4.30 3.92
x3x_{3}x3​ 4.30 0 2.24
{x4,x5}\{x_{4}, x_{5}\}{x4​,x5​} 3.92 2.24 0

合并{x4,x5x_{4}, x_{5}x4​,x5​}与x3x_{3}x3​,再更新距离矩阵

{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} {,x3,x4,x5}\{,x_{3}, x_{4}, x_{5}\}{,x3​,x4​,x5​}
{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} 0 4.05
{x3,x4,x5}\{x_{3}, x_{4}, x_{5}\}{x3​,x4​,x5​} 4.05 0

最后把所有数据合并为一个簇。层次图如下

(4)带权重的簇均值方法

A:概述

带权重簇均值方法:相较于簇均值方法,带权重簇均值方法处理方式更为简单,将αi\alpha_{i}αi​和βi\beta_{i}βi​设为12\frac{1}{2}21​即可。假设Ci,Cj,CkC_{i},C_{j}, C_{k}Ci​,Cj​,Ck​表示三个簇,那么其Lance-Williams公式如下

D(Ck,Ci∪Cj)=12D(Ck,Ci)+12D(Ck,Cj)D(C_{k},C_{i} \cup C_{j})=\frac{1}{2} D(C_{k},C_{i})+\frac{1}{2}D(C_{k},C_{j} )D(Ck​,Ci​∪Cj​)=21​D(Ck​,Ci​)+21​D(Ck​,Cj​)

B:例子

  • 和簇均值方法中的例子一致,这里只给出距离矩阵

距离矩阵更新过程如下

{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} x3x_{3}x3​ x4x_{4}x4​ x5x_{5}x5​
{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} 0 4.30 3.22 4.62
x3x_{3}x3​ 4.30 0 2.24 2.24
x4x_{4}x4​ 3.22 2.24 0 1.41
x5x_{5}x5​ 4.62 2.24 1.41 0
{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} x3x_{3}x3​ {x4,x5}\{x_{4}, x_{5}\}{x4​,x5​}
{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} 0 4.30 3.92
x3x_{3}x3​ 4.30 0 2.24
{x4,x5}\{x_{4}, x_{5}\}{x4​,x5​} 3.92 2.24 0
{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} {,x3,x4,x5}\{,x_{3}, x_{4}, x_{5}\}{,x3​,x4​,x5​}
{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} 0 4.11
{x3,x4,x5}\{x_{3}, x_{4}, x_{5}\}{x3​,x4​,x5​} 4.11 0

(5)质心方法

A:概述

质心方法:其Lance-Williams公式如下

D(Ck,Ci∪Cj)=∣Ci∣∣Ci∣+∣Cj∣D(Ck,Ci)+∣Cj∣∣Ci∣+∣Cj∣D(Ck,Cj)−∣Ci∣∣Cj∣(∣Ci∣+∣Cj∣)2D(Ci,Cj)D(C_{k},C_{i} \cup C_{j})=\frac{|C_{i}|}{|C_{i}|+|C_{j}|} D(C_{k},C_{i})+\frac{|C_{j}|}{|C_{i}|+|C_{j}|}D(C_{k},C_{j} )-\frac{|C_{i}||C_{j}|}{(|C_{i}|+|C_{j}|)^{2}} D(C_{i},C_{j})D(Ck​,Ci​∪Cj​)=∣Ci​∣+∣Cj​∣∣Ci​∣​D(Ck​,Ci​)+∣Ci​∣+∣Cj​∣∣Cj​∣​D(Ck​,Cj​)−(∣Ci​∣+∣Cj​∣)2∣Ci​∣∣Cj​∣​D(Ci​,Cj​)

设CCC和C´C^{´}C´表示两个非空且不相交的簇,也即C⋂C´=∅C \bigcap C^{´} = \emptyC⋂C´=∅,则有下列关系成立

D(C,C´)=1∣C∣∣C´∣∑x∈C,y∈C´Kd(x,y)−12∣C∣2∑x,y∈Cd(x,y)−12∣C´∣2∑x,y∈C´d(x,y)D(C,C^{´} )=\frac{1}{|C||C^{´}|}\sum_{x\in C,y\in C^{´}}^{K}d(x, y)-\frac{1}{2|C|^{2}} \sum_{x, y\in C}d(x, y)-\frac{1}{2|C^{´}|^{2}} \sum_{x, y\in C^{´}}d(x, y)D(C,C´)=∣C∣∣C´∣1​x∈C,y∈C´∑K​d(x,y)−2∣C∣21​x,y∈C∑​d(x,y)−2∣C´∣21​x,y∈C´∑​d(x,y)

B:例子

继续在上述数据集上运行质心聚类。首先x1x_{1}x1​ 和 x2x_{2}x2​ 会先聚合,然后计算{x1x_{1}x1​ , x2x_{2}x2​}与 x3x_{3}x3​、 x4x_{4}x4​、 x5x_{5}x5​ 之间的距离

  • D({x1,x2},x3)=12(d(x1,x3)+d(x2,x3))−14d(x1,x2)=4.05D(\{x_{1}, x_{2}\}, x_{3})=\frac{1}{2}(d(x_{1},x_{3})+d(x_{2},x_{3})) - \frac{1}{4}d(x_{1},x_{2})=4.05D({x1​,x2​},x3​)=21​(d(x1​,x3​)+d(x2​,x3​))−41​d(x1​,x2​)=4.05
  • D({x1,x2},x4)=12(d(x1,x4)+d(x2,x4))−14d(x1,x2)=2.97D(\{x_{1}, x_{2}\}, x_{4})=\frac{1}{2}(d(x_{1},x_{4})+d(x_{2},x_{4})) - \frac{1}{4}d(x_{1},x_{2})=2.97D({x1​,x2​},x4​)=21​(d(x1​,x4​)+d(x2​,x4​))−41​d(x1​,x2​)=2.97
  • D({x1,x2},x5)=12(d(x1,x5)+d(x2,x5))−14d(x1,x2)=4.37D(\{x_{1}, x_{2}\}, x_{5})=\frac{1}{2}(d(x_{1},x_{5})+d(x_{2},x_{5})) - \frac{1}{4}d(x_{1},x_{2})=4.37D({x1​,x2​},x5​)=21​(d(x1​,x5​)+d(x2​,x5​))−41​d(x1​,x2​)=4.37

更新距离矩阵

{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} x3x_{3}x3​ x4x_{4}x4​ x5x_{5}x5​
{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} 0 4.05 2.97 4.37
x3x_{3}x3​ 4.05 0 2.24 2.24
x4x_{4}x4​ 2.97 2.24 0 1.41
x5x_{5}x5​ 4.37 2.24 1.41 0

下一步合并x4x_{4}x4​与x5x_{5}x5​,并计算{x4x_{4}x4​, x5x_{5}x5​}与其他各簇之间的距离

  • D({x4,x5},{x1,x2})=3.32D(\{x_{4}, x_{5}\}, \{x_{1}, x_{2}\})=3.32D({x4​,x5​},{x1​,x2​})=3.32
  • D({x4,x5},x3)=1.89D(\{x_{4}, x_{5}\}, x_{3})=1.89D({x4​,x5​},x3​)=1.89

更新距离矩阵

{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} x3x_{3}x3​ {x4,x5}\{x_{4}, x_{5}\}{x4​,x5​}
{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} 0 4.05 3.32
x3x_{3}x3​ 4.05 0 1.89
{x4,x5}\{x_{4}, x_{5}\}{x4​,x5​} 3.32 1.89 0

合并{x4,x5x_{4}, x_{5}x4​,x5​}与x3x_{3}x3​,再更新距离矩阵

{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} {,x3,x4,x5}\{,x_{3}, x_{4}, x_{5}\}{,x3​,x4​,x5​}
{x1,x2}\{x_{1}, x_{2}\}{x1​,x2​} 0 3.14
{x3,x4,x5}\{x_{3}, x_{4}, x_{5}\}{x3​,x4​,x5​} 3.14 0

最后把所有数据合并为一个簇。层次图如下

(6)中间值方法

中间值方法:质心方法对应中间值方法就如同簇均值方法对应带权重的簇均值方法。其Lance-Williams公式如下

D(Ck,Ci∪Cj)=12D(Ck,Ci)+12D(Ck,Cj)−14D(Ci,Cj)D(C_{k},C_{i} \cup C_{j})=\frac{1}{2} D(C_{k},C_{i})+\frac{1}{2}D(C_{k},C_{j} )-\frac{1}{4} D(C_{i},C_{j})D(Ck​,Ci​∪Cj​)=21​D(Ck​,Ci​)+21​D(Ck​,Cj​)−41​D(Ci​,Cj​)

三:分裂方法

分裂方法:前面说过,这是一个自上而下的过程。首先将所有数据标记为一个类,然后按照某种准则每次将一个已有的类分割为两个类。但分裂方法研究的很少,因为时间复杂度非常高。分类方法可以分为以下两种

  • 一元的:分割时考虑某一单一的属性
  • 多元的:考虑了数据的所有属性

【数据聚类】第六章第一节:层次聚类算法概述、聚合和分裂方法相关推荐

  1. 经济法基础——第三章第一节、支付结算概述

    第一节.支付结算概述

  2. 高一计算机算法教案,高一信息技术第六章“第一节程序设计的基本方法”教案设计...

    一.教学目标 1.理解算法的概念: 2.知道两种算法的描述方法-语言描述法和流程图的区别 3.能初步利用算法解决简单的问题. 4.培养学生的理论联系实际能力和动手操作能力. 二.教学重难点 1.重点: ...

  3. 第六章 第一节 文本控件

    第一节   文本控件 与文本有关的控件有两个,即标签和文本框. 在标签中只能显示文本,不嫩进行编辑,而在文本框中即可显示文本,又可输入文本. 一.标签 1.标签主要用来显示文本信息,它所显示的内容只能 ...

  4. 【数据聚类】第六章第二节:层次聚类算法之BIRCH算法(算法概述、流程和sklearn实现)

    注意:文章中部分内容来自刘建平博客,多谢多谢:刘建平:BIRCH聚类算法原理 文章目录 一:BIRCH算法概述 (1)聚类特征CF (2)聚类特征树 CF Tree (3)聚类特征树的生成 A:生成规 ...

  5. 如何建立图像数据矩阵和图像显示灰度之间的关系!_放射技术考试第四章第一节 数字图像的特征...

    第四章第一节   数字图像的特征 一.模拟与数字 (一)模拟信号 在信息科学中,能够计数的离散量称为数字信号(整数),不能计数的连续量称为模拟信号. 模拟是以某种范畴的表达方式如实地反映另一种范畴.例 ...

  6. 《啊哈!算法》第二章 - 第一节 - 解密QQ号(Java实现)

    <啊哈!算法>第二章 - 第一节- 解密QQ号(Java实现) 解密QQ号--队列 解密QQ号--队列 新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问 QQ号, 小 ...

  7. 第一章 第一节:Python基础_认识Python

    Python基础入门(全套保姆级教程) 第一章 第一节:Python基础_认识Python 1. 什么是编程 通俗易懂,编程就是用代码编写程序,编写程序有很多种办法,像c语言,javaPython语言 ...

  8. 软件构造 第二章 第一节 软件生命周期和版本控制

    软件构造第二章 第一节 软件生命周期和版本控制 基本内容 Software Development Lifecycle (SDLC) Traditional software process mode ...

  9. 思维导图下载 注册安全_2019安全工程师《建筑实务》第二章第一节考点:物料提升机思维导图...

    2019安全工程师<安全生产专业实务-建筑施工安全>第二章第一节考点:物料提升机思维导图,本节的大部分知识点前两节塔式起重机和施工升降机相似,大家可以对比之前考点的思维导图来理解记忆,本知 ...

最新文章

  1. 平流式隔油池计算_广州隔油池清理公司讲述清理隔油池程序和标准_新闻中心...
  2. 算法设计与分析 1 递推与递归
  3. 原生js实现发短信~chat
  4. 关于mysql数据库的备份和还原
  5. python3 正则 去除 html标签、提取正文内容_Python通过正则表达式去除(过滤)HTML标签,提取文字...
  6. java空白页,[求教]JSP页面显示为空白页,请高手赐教!
  7. Bias-Variance Tradeoff解释
  8. 验证邮箱是否合法php,验证邮箱字段是否合法
  9. [转]编程语言与宗教
  10. 〖Python〗-- 函数闭包的理解
  11. StanfordDB class自学笔记 (13) Views and Authorization
  12. Physics Bodies(中文翻译)—UE4官方文档
  13. HFSS - WLAN双频单极子天线设计与仿真
  14. 大数据数据仓库-简介
  15. 用c语言做判断题题库及答案,C语言题库及答案(选择题)
  16. ThinkPad键盘拆解与清理(附图详解)
  17. Tmall商品详情API接口
  18. android开发常用工具类、高仿客户端、附近厕所、验证码助手、相机图片处理等源码...
  19. CAD常见问题之创建一个新的键盘快捷方式
  20. jquery实现div的隐藏和显示和点击空白显示隐藏

热门文章

  1. MATLAB 解决:数据比较多的矩阵赋值,耗时太长的问题
  2. centos7 设置阿里云yum源、docker源和docker镜像加速
  3. XBoot前后端分离开发平台springboot 2.x iview admin vue 集成activiti工作流 模型设计器 动态数据权限 权限按钮显示 s...
  4. Request 获取请求的 URL
  5. oracle ora 01691,ORA-01691错误分析
  6. 维生素B2和维生素B6
  7. 蒲公英内测托管受到开发者偏爱的5个理由
  8. ISTA算法-图像压缩感知算法之ISTA算法
  9. Vue开发实例(07)之编写头部页面
  10. WEB前端开讲啦!!!!