机器学习(周志华) 第九章聚类

关于周志华老师的《机器学习》这本书的学习笔记
记录学习过程
本博客记录Chapter9

1 聚类任务

聚类任务(clustering)是一类典型的”无监督学习“任务,其训练样本的标记信息是未知的,目标是通过对无标记训练样本的学习来揭示数据的内在性质及规律:将数据集中的样本划分为若干个通常是互不相交的子集,每个子集称为一个簇。

形式化地说,假定样本集 D = { x 1 , x 2 , … , x m } D=\{x_1,x_2,…,x_m\} D={x1,x2,,xm}包含 m m m个无标记样本,每个样本 x i = ( x i 1 , x i 2 , … , x i n ) x_i=(x_{i1},x_{i2},…,x_{in}) xi=(xi1,xi2,,xin)是一个 n n n维地特征向量。则聚类算法将样本集 D D D划分为 k k k个不相交的簇 { C l ∣ l = 1 , 2 , … , k } \{C_l|l=1,2,…,k\} {Cll=1,2,,k}。我们用 λ j ∈ { 1 , 2 , … , k } \lambda_j\in \{1,2,…,k\} λj{1,2,,k}表示样本 x j x_j xj的”簇标记“(cluster label),即 x j ∈ C λ j x_j \in C_{\lambda_j} xjCλj。于是聚类的结果可以用包含 m m m个元素的簇标记向量 λ = { λ 1 , λ 2 , … , λ j } \lambda = \{\lambda_1,\lambda_2,…,\lambda_j\} λ={λ1,λ2,,λj}表示。

2 性能度量

聚类性能度量亦称为”有效性指标“(validity index)。针对聚类问题,直观上看,我们希望”物以类聚“,即同一簇的样本尽可能彼此相似,不同簇的样本尽可能不同。换言之,聚类结果的”簇内相似度“应该比较高,并且”簇间相似度“应该比较低。

聚类性能度量的指标大致有两类:

  • 外部指标(external index):将聚类结果与某个参考模型(reference model)进行比较
  • 内部指标(internal index):直接考察聚类结果而不利用任何参考模型

对于数据集 D = { x 1 , x 2 , … , x m } D=\{x_1,x_2,…,x_m\} D={x1,x2,,xm},假定通过聚类得出的簇划分为 C = { C 1 , C 2 , … , C k } C=\{C_1,C_2,…,C_k\} C={C1,C2,,Ck},参考模型给出的簇划分 C ∗ = { C 1 ∗ , C 2 ∗ , … , C s ∗ } C^*=\{C_1^*,C_2^*,…,C_s^*\} C={C1,C2,,Cs},相应的,令 λ \lambda λ λ ∗ \lambda^* λ表示 C C C C ∗ C^* C的簇标记向量。我们将样本两两配对考虑,定义:
a = ∣ S S ∣ ,    S S = { ( x i , x j ) ∣ λ i = λ j , λ i ∗ = λ j ∗ , i < j } , b = ∣ S D ∣ ,    S D = { ( x i , x j ) ∣ λ i = λ j , λ i ∗ ≠ λ j ∗ , i < j } , c = ∣ D S ∣ ,    D S = { ( x i , x j ) ∣ λ i ≠ λ j , λ i ∗ = λ j ∗ , i < j } , d = ∣ D D ∣ ,    D D = { ( x i , x j ) ∣ λ i ≠ λ j , λ i ∗ ≠ λ j ∗ , i < j } a=|SS|, \space\space SS=\{(x_i,x_j)|\lambda_i=\lambda_j,\lambda^*_i=\lambda_j^*,i<j\},\\ b=|SD|, \space\space SD=\{(x_i,x_j)|\lambda_i=\lambda_j,\lambda^*_i\neq \lambda_j^*,i<j\},\\ c=|DS|, \space\space DS=\{(x_i,x_j)|\lambda_i\neq \lambda_j,\lambda^*_i=\lambda_j^*,i<j\},\\ d=|DD|, \space\space DD=\{(x_i,x_j)|\lambda_i\neq \lambda_j,\lambda^*_i\neq \lambda_j^*,i<j\} a=SS,  SS={(xi,xj)λi=λj,λi=λj,i<j},b=SD,  SD={(xi,xj)λi=λj,λi=λj,i<j},c=DS,  DS={(xi,xj)λi=λj,λi=λj,i<j},d=DD,  DD={(xi,xj)λi=λj,λi=λj,i<j}
其中, S S SS SS表示了在 C C C中隶属于相同簇且在 C ∗ C^* C中也属于相同簇的样本对,其他类似……

由于每个样本对只能出现在其中一种情况,则有 a + b + c + d = m ( m − 1 ) 2 a+b+c+d=\frac{m(m-1)}{2} a+b+c+d=2m(m1)

基于上述四个式子,我们可以推导出下面常用的聚类性能度量外部指标

  • Jaccard系数
    J C = a a + b + c JC=\frac{a}{a+b+c} JC=a+b+ca

  • FM指数
    F M I = a a + b ⋅ a a + c FMI=\sqrt{\frac{a}{a+b}\cdot \frac{a}{a+c}} FMI=a+baa+ca

  • Rand指数
    R I = 2 ( a + d ) m ( m − 1 ) RI=\frac{2(a+d)}{m(m-1)} RI=m(m1)2(a+d)

上述三个外部指标的结果均在 [ 0 , 1 ] [0,1] [0,1]之间,值越大越好

考虑聚类结果的簇划分 C = { C 1 , C 2 , … , C k } C=\{C_1,C_2,…,C_k\} C={C1,C2,,Ck},定义:
a v g ( C ) = 2 ∣ C ∣ ( ∣ C ∣ − 1 ) ∑ 1 ≤ i ≤ j ≤ ∣ C ∣ d i s t ( x i , x j ) d i a m ( C ) = max ⁡ 1 ≤ i ≤ j ≤ ∣ C ∣ d i s t ( x i , x j ) d m i n ( C i , C j ) = min ⁡ x i ∈ C i , x j ∈ C j d i s t ( x i , x j ) d c e n ( C i , C j ) = d i s t ( μ i , μ j ) avg(C)=\frac{2}{|C|(|C|-1)} \sum_{1\le i\le j\le |C|}dist(x_i,x_j)\\ diam(C)=\max_{1\le i\le j\le |C|}dist(x_i,x_j)\\ d_{min}(C_i,C_j)=\min_{x_i\in C_i,x_j\in C_j}dist(x_i,x_j)\\ d_{cen}(C_i,C_j)=dist(\mu_i,\mu_j) avg(C)=C(C1)21ijCdist(xi,xj)diam(C)=1ijCmaxdist(xi,xj)dmin(Ci,Cj)=xiCi,xjCjmindist(xi,xj)dcen(Ci,Cj)=dist(μi,μj)
其中, d i s t dist dist表示两个样本之间的距离, μ \mu μ表示簇的中心点 μ = 1 ∣ C ∣ ∑ 1 ≤ i ≤ ∣ C ∣ x i \mu=\frac{1}{|C|}\sum_{1\le i\le |C|}x_i μ=C11iCxi a v g ( C ) avg(C) avg(C)表示簇 C C C内样本间的平均距离, d i a m ( C ) diam(C) diam(C)表示簇 C C C内样本的最远距离, d m i n d_{min} dmin表示两个簇之间最近样本间的距离, d c e n d_{cen} dcen表示两个簇的中心点之间的距离。

基于上述四个式子,可以推导出常用的聚类性能度量内部指标:

  • DB指数
    D B I = 1 k ∑ i = 1 k max ⁡ j ≠ i ( a v g ( C i ) + a v g ( C j ) d c e n ( C i , C j ) ) DBI=\frac{1}{k}\sum_{i=1}^k\max_{j\neq i}(\frac{avg(C_i)+avg(C_j)}{d_{cen}(C_i,C_j)}) DBI=k1i=1kj=imax(dcen(Ci,Cj)avg(Ci)+avg(Cj))

  • Dunn指数
    D I = min ⁡ 1 ≤ i ≤ k { min ⁡ j ≠ i ( d m i n ( C i , C j ) max ⁡ 1 ≤ l ≤ k d i a m ( C l ) ) } DI=\min_{1\le i\le k}\{\min_{j \neq i}(\frac{d_{min}(C_i,C_j)}{\max_{1\le l\le k}diam(C_l)})\} DI=1ikmin{j=imin(max1lkdiam(Cl)dmin(Ci,Cj))}

DBI的值越小越好,而DI的值越大越好。

3 距离计算

对于函数 d i s t ( ⋅ , ⋅ ) dist(\cdot,\cdot) dist(,),若其是一个距离度量,则需要满足一些基本性质:

  • 非负性: d i s t ( x i , x j ) ≥ 0 dist(x_i,x_j)\ge 0 dist(xi,xj)0
  • 同一性: d i s t ( x i , x j ) = 0 dist(x_i,x_j)=0 dist(xi,xj)=0当且仅当 x i = x j x_i=x_j xi=xj
  • 对称性: d i s t ( x i , x j ) = d i s t ( x j , x i ) dist(x_i,x_j)=dist(x_j,x_i) dist(xi,xj)=dist(xj,xi)
  • 直递性: d i s t ( x i , x j ) ≤ d i s t ( x i , x k ) + d i s t ( x k , x j ) dist(x_i,x_j)\le dist(x_i,x_k)+dist(x_k,x_j) dist(xi,xj)dist(xi,xk)+dist(xk,xj),可以理解成”三角不等式“

对于有序属性(例如{1,2,3}中1和2更接近,可以比较顺序,因此是有序属性;但是{飞机,火车,轮船}就很难找到顺序关系,因此不是有序属性),对于给定样本 x i = { x i 1 , x i 2 , … , x i n } x_i=\{x_{i1},x_{i2},…,x_{in}\} xi={xi1,xi2,,xin} x j = { x j 1 , x j 2 , … , x j n } x_j=\{x_{j1},x_{j2},…,x_{jn}\} xj={xj1,xj2,,xjn},最常用的距离函数是”闵可夫斯基距离“:
d i s t m k ( x i , x j ) = ( ∑ u = 1 n ∣ x i u − x j u ∣ p ) 1 p dist_{mk}(x_i,x_j)=(\sum_{u=1}^n |x_{iu}-x_{ju}|^p)^{\frac{1}{p}} distmk(xi,xj)=(u=1nxiuxjup)p1

  • p = 1 p=1 p=1时,该距离为曼哈顿距离
  • p = 2 p=2 p=2时,该距离为欧氏距离

对于无序属性,我们可以采用 V D M VDM VDM来衡量距离。令 m u , a m_{u,a} mu,a表示属性 u u u上取值为 a a a的样本数, m u , a , i m_{u,a,i} mu,a,i表示第 i i i个样本簇中在属性 u u u上取值为 a a a的样本数, k k k为样本簇数,则属性 u u u上两个离散值 a a a b b b之间的 V D M VDM VDM距离为:
V D M p ( a , b ) = ∑ i = 1 k ∣ m u , a , i m u , a − m u , b , i m u , b ∣ VDM_p(a,b)=\sum_{i=1}^k |\frac{m_{u,a,i}}{m_{u,a}}-\frac{m_{u,b,i}}{m_{u,b}}| VDMp(a,b)=i=1kmu,amu,a,imu,bmu,b,i
将闵可夫斯基距离和VDM距离结合起来即可处理混合属性,假定有 n c n_c nc个有序属性、 n − n c n-n_c nnc个无序属性,且有序属性排列在无序属性之前:
M i n k o v D M p ( x i , x j ) = ( ∑ u = 1 n c ∣ x i u − x j u ∣ p + ∑ u = n c + 1 n V D M p ( x i u , x j u ) ) 1 p MinkovDM_p(x_i,x_j)=(\sum_{u=1}^{n_c}|x_{iu}-x_{ju}|^p+\sum_{u=n_c+1}^nVDM_p(x_{iu},x_{ju}))^{\frac{1}{p}} MinkovDMp(xi,xj)=(u=1ncxiuxjup+u=nc+1nVDMp(xiu,xju))p1

需注意的是,通常我们是基于某种形式的距离来定义“相似度度量”(similarity measure),距离越大,相似度越小。然而,用于相似度度量的距离未必一定要满足距离度量的所有基本性质,尤其是直递性。例如在某些任务中我们可能希望有这样的相似度度量:“人”、“马”分别与“人马”相似,但“人”与“马”很不相似;要达到这个目的,可以令“人”、“马”与”人马”之间的距离都比较小,但“人”与“马”之间的距离很大,如图所示,此时该距离不再满足直递性;这样的距离称为“非度量距离”(non-metric distance)。此外,本节介绍的距离计算式都是事先定义好的,但在不少现实任务中,有必要基于数据样本来确定合适的距离计算式,这可通过“距离度量学习”(distance metric learning)来实现。

在这里插入图片描述

4 原型聚类

原型聚类(prototype-based clustering):假设聚类结构能通过一组原型刻画。通常情形下,算法对原型进行初始化,然后对原型进行迭代更新求解。

4.1 k均值算法

给定样本集 D = { x 1 , x 2 , … , x m } D=\{x_1,x_2,…,x_m \} D={x1,x2,,xm},k均值(k-means)算法针对聚类所得簇划分 C = { C 1 , C 2 , … , C k } C=\{C_1,C_2,…,C_k \} C={C1,C2,,Ck},目标是最小化平方误差:
E = ∑ i = 1 k ∑ x ∈ C i ∣ ∣ x − μ i ∣ ∣ 2 2 E=\sum_{i=1}^k \sum_{x\in C_i}||x-\mu_i||_2^2 E=i=1kxCixμi22
其中 μ i = 1 ∣ C i ∣ ∑ x ∈ C i x \mu_i=\frac{1}{|C_i|}\sum_{x\in C_i}x μi=Ci1xCix是簇 C i C_i Ci的均值向量。直观来看,该式子刻画了簇内样本围绕簇均值向量的紧密程度, E E E值越小则簇内样本相似度越高。

k-means算法流程如下:

在这里插入图片描述

为了避免运行时间过长,通常会设置一个最大运行轮数或最小调整幅度阈值。

4.2 学习向量量化

学习向量量化(Learning Vector Quantization,检查LVQ)是试图找到一组原型向量来刻画聚类结构,但与一般聚类算法不同的是,LVQ假设数据样本带有类别标记,学习过程中用样本的监督信息来辅助聚类。

假定数据集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x m , y m ) } D=\{(x_1,y_1),(x_2,y_2),…,(x_m,y_m) \} D={(x1,y1),(x2,y2),,(xm,ym)},其中每个样本 x i x_i xi n n n个属性 ( x i 1 ; x i 2 ; … ; x i n ) (x_{i1};x_{i2};…;x_{in}) (xi1;xi2;;xin) y i y_i yi是样本 x i x_i xi的类别标记。LVQ算法的目标是学习到一组 n n n维原型向量 { p 1 , p 2 , … , p n } \{p_1,p_2,…,p_n\} {p1,p2,,pn},每个原型向量代表一个聚类簇,簇标记 t i ∈ Y t_i\in Y tiY

LVQ算法描述如下:
在这里插入图片描述

通过该流程图,我们可以看出LVQ算法的关键在于上图中的6-10行,即原型向量的更新。直观上看,若样本 x j x_j xj的类别与原型向量 p i p_i pi相同,则令 p i ∗ p_i* pi x j x_j xj的方向靠拢:
p ′ = p i ∗ + η ( x j − p i ∗ ) p'=p_i*+\eta (x_j-p_i*) p=pi+η(xjpi)
p ′ p' p x j x_j xj之间的距离为:
∣ ∣ p ′ − x j ∣ ∣ 2 = ∣ ∣ p i ∗ + η ( x j − p i ∗ ) − x j ∣ ∣ 2 = ( 1 − η ) ⋅ ∣ ∣ p i ∗ − x j ∣ ∣ 2 ||p'-x_j||_2 =||p_i*+\eta(x_j-p_i*)-x_j||_2 =(1-\eta)\cdot||p_i* -x_j||_2 pxj2=pi+η(xjpi)xj2=(1η)pixj2
其中, η \eta η是学习率,位于 ( 0 , 1 ) (0,1) (0,1)之间。类似地,如果样本 x j x_j xj的类别与原型向量 p i p_i pi不同,则将距离增大为 ( 1 + η ) ∣ ∣ p i ∗ − x j ∣ ∣ 2 (1+\eta)||p_i*-x_j||_2 (1+η)pixj2,令原型向量和 x j x_j xj的距离增大。

通过上述过程,对任意的样本 x j x_j xj,它将被划入到与其距离最近的原型向量所代表的簇中;换言之,每个原型向量 p i p_i pi定义了与之相关的一个区域 R i R_i Ri,该区域中每个样本与 p i p_i pi的距离不大于它与其他原型向量的距离,即
R i = { x ∈ X ∣   ∣ ∣ x − p i ∣ ∣ 2 ≤ ∣ ∣ x − p i ′ ∣ ∣ 2 , i ≠ i ′ } R_i=\{x\in X|\space||x-p_i||_2 \le||x-p_{i'}||_2,i\neq i' \} Ri={xX xpi2xpi2,i=i}
由此形成了对样本空间 X X X的簇划分 { R 1 , R 2 , … , R q } \{R_1,R_2,…,R_q\} {R1,R2,,Rq},通常该划分称为“Voronoi剖分”。

4.3 高斯混合聚类

高斯混合聚类(Mixture-of-Gaussian)采用概率模型来表达聚类原型

高斯分布的概率密度函数如下:
p ( x ) = 1 ( 2 π ) n 2 ∣ ∑ ∣ 1 2 e − 1 2 ( x − μ ) T ∑ − 1 ( x − μ ) p(x)=\frac{1}{(2\pi)^{\frac{n}{2}}|\sum|^{\frac{1}{2}}} e^{-\frac{1}{2}(x-\mu)^T\sum^{-1}(x-\mu)} p(x)=(2π)2n211e21(xμ)T1(xμ)
其中, μ \mu μ n n n维均值向量, ∑ \sum n × n n \times n n×n的协方差矩阵(对称正定矩阵)。

为了明确显示高斯分布与相应参数的依赖关系,我们将概率密度函数记为 p ( x ∣ μ , ∑ ) p(x|\mu,\sum) p(xμ,),定义高斯混合分布,其中 α i \alpha_i αi为混合系数(mixture coefficient),:
p M ( x ) = ∑ i = 1 k α i ⋅ p ( x ∣ μ i , ∑ i ) ∑ i = 1 k α i = 1 p_M(x)=\sum_{i=1}^k \alpha_i\cdot p(x|\mu_i,\sum_i)\\ \sum_{i=1}^k \alpha_i=1 pM(x)=i=1kαip(xμi,i)i=1kαi=1
假设样本的生成过程由高斯混合分布给出,根据 α i \alpha_i αi定义的先验分布选择高斯混合分布( α i \alpha_i αi表示选择第 i i i个分布的概率),然后根据被选择的混合成分的概率密度函数进行采样,从而生成相应的样本。

若训练集 { x 1 , x 2 , … , x m } \{x_1,x_2,…,x_m\} {x1,x2,,xm}由上述过程给出,令随机变量 z j ∈ 1 , 2 , … , k z_j\in {1,2,…,k} zj1,2,,k表示生成样本 x j x_j xj的高斯混合成分,其取值未知。显然 z j z_j zj的先验概率 P ( z j = i ) P(z_j=i) P(zj=i)对应于 α i \alpha_i αi。其后验概率对应于下式,并记为 γ j i \gamma_{ji} γji
p M ( z j = i ∣ x j ) = P ( z j = i ) ⋅ p M ( x j ∣ z j = i ) p M ( x j ) = α i ⋅ p ( x j ∣ μ i , ∑ i ) ∑ l = 1 k α l ⋅ p ( x j ∣ μ l , ∑ l ) p_M(z_j=i|x_j)=\frac{P(z_j=i)\cdot p_M(x_j|z_j=i)}{p_M(x_j)} =\frac{\alpha_i\cdot p(x_j|\mu_i,\sum_i)}{\sum_{l=1}^k \alpha_l\cdot p(x_j|\mu_l,\sum_l)} pM(zj=ixj)=pM(xj)P(zj=i)pM(xjzj=i)=l=1kαlp(xjμl,l)αip(xjμi,i)
当混合高斯分布已知时,高斯混合聚类将样本集划分为 k k k个簇,每个样本 x j x_j xj的簇标记 λ j \lambda_j λj如下确定(即高斯混合聚类采用概率模型对圆形进行刻画,簇划分由原型对应的后验概率确定):
λ j = arg ⁡ max ⁡ i ∈ { 1 , 2 , … , k } γ j i \lambda_j=\mathop{\arg \max}_{i\in \{1,2,…,k\}} \gamma_{ji} λj=argmaxi{1,2,,k}γji
由最大化对数似然和EM算法,我们可以求解 α i \alpha_i αi
α i = 1 m ∑ j = 1 m γ j i \alpha_i=\frac{1}{m}\sum_{j=1}^m\gamma_{ji} αi=m1j=1mγji
即每个高斯分布的混合系数由样本属于改成份的平均后验概率确定。

高斯混合聚类的流程如下:

在这里插入图片描述

5 密度聚类

密度聚类(density-based clustering):假设聚类结构能通过样本的分布的紧密程度决定。通常情况下,密度聚类算法从样本密度的角度来考察样本之间的可连接性,并基于可连接样本不断扩展聚类簇以获得最终的聚类结果。

DBSCAN是一种著名的密度聚类算法,其基于一组“邻域”(neighborhood)参数( ϵ , M i n P t s \epsilon,MinPts ϵ,MinPts)来刻画样本分布的紧密程度。给定数据集 D = { x 1 , x 2 , … , x m } D=\{x_1,x_2,…,x_m\} D={x1,x2,,xm},定义以下几个概念:

  • ϵ − \epsilon- ϵ邻域:对于 x j ∈ D x _j\in D xjD,其 ϵ − \epsilon- ϵ邻域包含样本集 D D D中与 x j x_j xj的距离不大于 ϵ \epsilon ϵ的样本,即
    N ϵ ( x j ) = { x j ∈ D ∣ d i s t ( x i , x j ) ≤ ϵ } N_\epsilon(x_j)=\{x_j\in D|dist(x_i,x_j)\le \epsilon \} Nϵ(xj)={xjDdist(xi,xj)ϵ}

  • 核心对象(core object):若 x j x_j xj ϵ − \epsilon- ϵ邻域至少包含 M i n P t s MinPts MinPts个样本,即 ∣ N ϵ ( x j ) ∣ ≥ M i n P t s |N_\epsilon(x_j)|\ge MinPts Nϵ(xj)MinPts,则 x j x_j xj是一个核心对象。

  • 密度直达(directly density-reachable):若 x j x_j xj位与 x i x_i xi ϵ − \epsilon- ϵ邻域内,且 x i x_i xi是核心对象,则称 x i x_i xi x j x_j xj密度直达。

  • 密度可达(density-reachable):对 x i x_i xi x j x_j xj,存在样本序列 p 1 , p 2 , … , p n p_1,p_2,…,p_n p1,p2,,pn,其中 p 1 = x i , p n = x j p_1=x_i,p_n=x_j p1=xi,pn=xj,且 p i + 1 p_{i+1} pi+1 p i p_i pi密度直达,则称 x i x_i xi x j x_j xj密度可达。

  • 密度相连(density-connected):对 x i x_i xi x j x_j xj,若在 x k x_k xk使得 x i x_i xi x j x_j xj均由 x k x_k xk密度可达,则称 x i x_i xi x j x_j xj密度相连。

在这里插入图片描述

基于上述概念,DBSCAN将“簇”定义为:由密度可达关系导出的最大密度相连样本集合。形式化的说就是,给定邻域参数( ϵ , M i n P t s \epsilon,MinPts ϵ,MinPts),簇 C ⊆ D C \subseteq D CD是满足以下性质的非空样本子集:

  • 连接性: x i ∈ C x_i \in C xiC x j ∈ C ⇒ x i x_j\in C \Rightarrow x_i xjCxi x j x_j xj密度相连
  • 最大性: x i ∈ C , x j x_i \in C, x_j xiC,xj可由 x i x_i xi密度可达 ⇒ x j ∈ C \Rightarrow x_j\in C xjC

x x x是核心对象,由 x x x密度可达的所有样本组成的集合记为 X = { x ′ ∈ D ∣ x ′ 由 x 密 度 可 达 } X = \{x' \in D|x'由x密度可达 \} X={xDxx}是满足最大型和连接性的簇。

DBSCAN算法先任选数据集中一个核心对象为种子(seed),再由此出发确定相应的聚类簇。算法描述如下:

在这里插入图片描述

6 层次聚类

层次聚类(hierarchical clustering)试图在不同层次对数据集进行划分,从而形成树形的聚类结构。数据集的划分可以采用 “自底向上”的聚合策略,也可采用 “自顶向下”的分拆策略

AGNES是一种采用自底向上聚合策略的层次聚类算法。它先将数据集的每个样本看作一个初始聚类簇,然后再算法运行的每一步中找出距离最近的两个聚类簇进行合并,该过程不断重复,直至达到预设的聚类簇个数。

在这里插入图片描述

给定聚类簇 C i C_i Ci C j C_j Cj,其距离公式如下:

  • 单链接:最小距离 d m i n ( C i , C j ) = min ⁡ x ∈ C i , z ∈ C j d i s t ( x , z ) d_{min}(C_i,C_j)=\min_{x\in C_i,z\in C_j} dist(x,z) dmin(Ci,Cj)=minxCi,zCjdist(x,z)
  • 全链接:最大距离 d m a x ( C i , C j ) = max ⁡ x ∈ C i , z ∈ C j d i s t ( x , z ) d_{max}(C_i,C_j)=\max_{x\in C_i,z\in C_j} dist(x,z) dmax(Ci,Cj)=maxxCi,zCjdist(x,z)
  • 均链接:平均距离 d a v g ( C i , C j ) = 1 ∣ C i ∣ ∣ C j ∣ ∑ x ∈ C i ∑ z ∈ C j d i s t ( x , z ) d_{avg}(C_i,C_j)=\frac{1}{|C_i||C_j|}\sum_{x\in C_i}\sum_{z\in C_j} dist(x,z) davg(Ci,Cj)=CiCj1xCizCjdist(x,z)

在这里插入图片描述

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值